从 Gedit 使用命令到 Manage Snippets 插件
Use commands onto the Manage Snippets plugin from Gedit
我有 gedit 和 Manage Snippets 插件,我想创建一个片段来注释一行(这很简单,只需添加:“# $GEDIT_CURRENT_LINE”,对于 python 的代码示例)但是,如果该行曾经被注释过,我想取消注释它。
是否有特殊的语法可以使用,我不知道, python 或 c++ 语句,如 if 条件 $GEDIT_CURRENT_LINE ?因为写在片段上的任何代码都只会被打印出来。
好的,实际上,我只是找到了一种方法。
要在管理片段插件上使用 bash 命令,只需使用 `
。
例如,在我的例子中,要知道行中的第一个字符是什么:`${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 :这里是 comment/uncomment 所有带有 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)
>
我有 gedit 和 Manage Snippets 插件,我想创建一个片段来注释一行(这很简单,只需添加:“# $GEDIT_CURRENT_LINE”,对于 python 的代码示例)但是,如果该行曾经被注释过,我想取消注释它。 是否有特殊的语法可以使用,我不知道, python 或 c++ 语句,如 if 条件 $GEDIT_CURRENT_LINE ?因为写在片段上的任何代码都只会被打印出来。
好的,实际上,我只是找到了一种方法。
要在管理片段插件上使用 bash 命令,只需使用 `
。
例如,在我的例子中,要知道行中的第一个字符是什么:`${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 :这里是 comment/uncomment 所有带有 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)
>