Python 如何在Pluma(Gedit fork)中注释掉多行?
有没有一种方法可以注释掉Pluma(Gedit)中的代码块? 例如,在python中,我想选择一段代码:Python 如何在Pluma(Gedit fork)中注释掉多行?,python,comments,editor,text-editor,gedit,Python,Comments,Editor,Text Editor,Gedit,有没有一种方法可以注释掉Pluma(Gedit)中的代码块? 例如,在python中,我想选择一段代码: def foo(bar): return bar * 2 评论一下: # def foo(bar): # return bar * 2 激活代码片段插件 添加类似于“#$PLUMA_SELECTED_TEXT”的代码段 有关更多信息: 激活代码片段插件 添加类似于“#$PLUMA_SELECTED_TEXT”的代码段 有关更多信息: 根据贝内德·米伊·dL0
def foo(bar):
return bar * 2
评论一下:
# def foo(bar):
# return bar * 2
根据贝内德·米伊·dL0早些时候的回答,以下是我的想法
$<
selected_txt = $PLUMA_SELECTED_TEXT
output = ""
for line in selected_txt.split("\n"):
line = "#" + line
output = output + line+ "\n"
return output
>
$<
选定的文本=$PLUMA\u选定的文本
output=“”
对于选定的_txt.split(“\n”)中的行:
line=“#”+行
输出=输出+行+“\n”
返回输出
>
注意:这将注释多行,但在最底行中添加一行额外内容 根据贝内德·米伊·dL0早些时候的回答,以下是我的想法
$<
selected_txt = $PLUMA_SELECTED_TEXT
output = ""
for line in selected_txt.split("\n"):
line = "#" + line
output = output + line+ "\n"
return output
>
$<
选定的文本=$PLUMA\u选定的文本
output=“”
对于选定的_txt.split(“\n”)中的行:
line=“#”+行
输出=输出+行+“\n”
返回输出
>
注意:这将注释多行,但在最底行中添加一行额外内容 根据M.O.Kitzka的回答, 我使用了以下压缩代码段:
$<
lines = $PLUMA_SELECTED_TEXT.split("\n");
output = "";
for line in lines:
output += "#" + line + "\n";
return output
>
$<
lines=$PLUMA_SELECTED_TEXT.split(“\n”);
输出=”;
对于行中的行:
输出+=“#”+行+“\n”;
返回输出
>
您可以在snippet manager的窗口中使用任何python代码。基于M.O.Kitzka的答案, 我使用了以下压缩代码段:
$<
lines = $PLUMA_SELECTED_TEXT.split("\n");
output = "";
for line in lines:
output += "#" + line + "\n";
return output
>
$<
lines=$PLUMA_SELECTED_TEXT.split(“\n”);
输出=”;
对于行中的行:
输出+=“#”+行+“\n”;
返回输出
>
您可以在snippet manager的窗口中使用任何python代码。基于前面的答案和一些研究,我提出了一个更具“特色”的代码片段版本:-) 当当前行被选中或有光标时,对其进行注释,例如:
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()
>
$<
lines=$PLUMA\u SELECTED\u TEXT.split(“\n”)
如果行==['']:
#已注释行。。。
如果$PLUMA_CURRENT_LINE.startswith(“#”):
返回$PLUMA\u当前\u行[1:]
其他:#。。。然后取消注释它
返回“#”+$PLUMA_当前_行
其他:
输出=”;
对于行中的行:
如果line.startswith(“#”):
输出+=行[1:][+“\n”
其他:
输出+=“#”+行+“\n”
返回输出。rstrip()
>
根据前面的答案和一些研究,我提出了一个更具“特色”的片段版本:-)
当当前行被选中或有光标时,对其进行注释,例如:
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()
>
$<
lines=$PLUMA\u SELECTED\u TEXT.split(“\n”)
如果行==['']:
#已注释行。。。
如果$PLUMA_CURRENT_LINE.startswith(“#”):
返回$PLUMA\u当前\u行[1:]
其他:#。。。然后取消注释它
返回“#”+$PLUMA_当前_行
其他:
输出=”;
对于行中的行:
如果line.startswith(“#”):
输出+=行[1:][+“\n”
其他:
输出+=“#”+行+“\n”
返回输出。rstrip()
>
这是我的解决方案。特点:
- 切换代码注释/取消注释
- 注释/取消注释时保留缩进
- 如果未选择文本,则注释/取消注释当前行
$<
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())
>
$<
进口稀土
def get_行():
选定=$PLUMA\u选定的\u文本
如果选择:
返回选定的
其他:
返回$PLUMA\u当前\u行
def切换(选定的文本):
行=[]
对于选定的_txt.split(“\n”)中的行:
如果不是直线:
行。追加(行)
持续
尝试:
空格,content=re.findall(r'^\s++.+',行)
除:
空格=“”
内容=行
如果content.startswith(“#”):
lines.append(“{}{}.”格式(空格,内容[1:]))
其他:
行。追加(“{}}{}”。格式(空格、内容))
返回“\n”。连接(行)
返回切换(获取线()
>
这是我的解决方案。特点:
- 切换代码注释/取消注释
- 注释/取消注释时保留缩进
- 如果未选择文本,则注释/取消注释当前行
$<
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())
>
$<
进口稀土
def get_行():
选定=$PLUMA\u选定的\u文本
如果选择:
返回选定的
其他:
返回$PLUMA\u当前\u行
def切换(选定的文本):
行=[]
对于选定的_txt.split(“\n”)中的行:
如果不是直线:
行。追加(行)
持续
尝试:
空格,content=re.findall(r'^\s++.+',行)
除:
空格=“”
内容=行
如果content.startswith(“#”):
lines.append(“{}{}.”格式(空格,内容[1:]))
其他:
行。追加(“{}}{}”。格式(空格、内容))
返回“\n”。连接(行)
返回切换(获取线()
>
您是否尝试过我们的建议