[英]Use commands onto the Manage Snippets plugin from Gedit
我有gedit和Manage Snippets插件,我想创建一个片段来注释一行(很简单,只需添加:“#$ GEDIT_CURRENT_LINE”,例如python代码),但是,如果该行曾被注释过,我会喜欢取消评论。 我不知道,是否有特殊的语法使用python或c ++语句,例如if,其条件为$ GEDIT_CURRENT_LINE? 因为在代码段上写入的任何代码都只能打印出来。
好的,实际上,我只是找到一种方法。 要将bash命令用于manage snippets插件,只需使用`
。 例如,在我的情况下,要知道什么是第一个角色: `${GEDIT_CURRENT_LINE:0:1}`
并带有if语句:
``if [ ${GEDIT_CURRENT_LINE:0:1} == "#" ]; then echo ${GEDIT_CURRENT_LINE:2}; else GEDIT_CURRENT_LINE_STR=$GEDIT_CURRENT_LINE; echo "# $GEDIT_CURRENT_LINE_STR"; fi``
该代码段将注释该行或取消注释该行(如果曾经对其进行注释)。 (就像Notepad ++一样)。
编辑:您必须使用该行创建一个新变量以将其重写: GEDIT_CURRENT_LINE_STR=$GEDIT_CURRENT_LINE;
。 如果没有该新变量,则可以将当前行文本解释为命令,然后仅由于错误而删除该行。 (我更新了上面的代码)
Edit2:这是一个片段,用于用python注释/取消注释所有选定的行(而不是像以前一样):
$<
AllLines = $GEDIT_SELECTED_TEXT.split('\n')
if AllLines == ['']:
AllLines = $GEDIT_CURRENT_LINE.split('\n')
NewLines = []
for line in AllLines:
if line[0:2] == '# ':
NewLines += [line.replace('# ', '')]
elif line[0] == '#':
NewLines += [line.replace('#', '')]
elif line[0] != '#':
NewLines += ['# ' + line]
return '\n'.join(NewLines)
>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.