1

有没有办法在 Pluma 中注释掉一段代码(显然是 Gedit fork)?例如在python中,我想选择一个代码块:

def foo(bar):
    return bar * 2

并将其注释掉:

#    def foo(bar):
#        return bar * 2
4

6 回答 6

1

基于 MO Kitzka 的回答,我使用了以下紧凑片段:

$<
lines = $PLUMA_SELECTED_TEXT.split("\n");
output = "";
for line in lines:
    output += "#" + line + "\n";

return output
>

您可以在片段管理器的窗口内使用任何 python 代码。

于 2014-02-15T00:32:55.177 回答
0

基于 bAnEEd_meeY-dL0 的较早答案,这就是我想出的。

  1. 激活片段插件
  2. 添加看起来像的片段,

    $<
    selected_txt = $PLUMA_SELECTED_TEXT
    output = "" 
    for line in selected_txt.split("\n"):
        line = "#" + line
        output = output + line+ "\n" 
    
    return output
    >
    
  3. 不要忘记填写“激活”部分。您不需要填写所有内容。我把 Ctrl+M 放在了快捷方式。

注意:这将注释多行,但在最底线添加了一个额外的行。

于 2013-11-23T16:29:48.217 回答
0
  1. 激活片段插件
  2. 添加可能如下所示的代码段:“# $PLUMA_SELECTED_TEXT”

欲了解更多信息: http ://www.tuxradar.com/content/save-time-gedit-snippets

于 2013-11-18T15:07:47.347 回答
0

根据之前的答案和一些研究,我想出了一个更具“特色”的片段版本:-)

在选中或有光标时注释当前行,例如:

from requests import post # cursor currently here or this line selected
from collections import defaultdict

按 CTRL+M

#from requests import post
from collections import defaultdict

选择时按 CTRL+M 或将光标置于注释行中,再次取消注释

注释多行并切换块的注释,例如:

#from requests import post # both lines selected
from collections import defaultdict

按 CTRL + M

from requests import post # both lines selected
#from collections import defaultdict

注释行时,您始终可以按 CTRL+M 取消注释。这是片段:

$<
lines = $PLUMA_SELECTED_TEXT.split("\n")
if lines == ['']:
    # Already commented line ...
    if $PLUMA_CURRENT_LINE.startswith("#"):
        return $PLUMA_CURRENT_LINE[1:]
    else:   # ... then uncomment it
        return "#" + $PLUMA_CURRENT_LINE
else:
    output = "";
    for line in lines:
        if line.startswith("#"):
            output += line[1:] + "\n"
        else:
            output += "#" + line + "\n"
    return output.rstrip()
>
于 2015-04-23T20:27:11.997 回答
0

以上所有答案目前(2022 年 1 月)都不起作用。

应从 STDIN 读取所选文本。

在 python 中,这将是: selected = sys.stdin.readlines()

你的输出应该是简单的 print() 编辑。

于 2022-01-03T19:23:07.070 回答
0

这是我的解决方案。特征:

  • 切换代码的​​注释/取消注释
  • 注释/取消注释时保留缩进
  • 如果未选择文本,则注释/取消注释当前行

享受。

$<
import re

def get_lines():
    selected = $PLUMA_SELECTED_TEXT
    if selected:
        return selected
    else:
        return $PLUMA_CURRENT_LINE

def toggle(selected_txt):
    lines = [] 
    for line in selected_txt.split("\n"):
        if not line:
            lines.append(line)
            continue
        try:
            spaces, content = re.findall(r'^\s+|.+', line)
        except:
            spaces = ""
            content = line

        if content.startswith("#"):
            lines.append("{}{}".format(spaces, content[1:]))
        else:
            lines.append("{}#{}".format(spaces, content))

    return "\n".join(lines)

return toggle(get_lines())
>
于 2019-01-16T06:57:07.033 回答