繁体   English   中英

从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命令用于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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM