Есть ли способ закомментировать блок кода в Pluma (видимо, форк Gedit)? Например, в python я хотел бы выбрать блок кода:
def foo(bar):
return bar * 2
И закомментируйте это:
# def foo(bar):
# return bar * 2
Есть ли способ закомментировать блок кода в Pluma (видимо, форк Gedit)? Например, в python я хотел бы выбрать блок кода:
def foo(bar):
return bar * 2
И закомментируйте это:
# def foo(bar):
# return bar * 2
На основании М.О. Kitzka, я использовал следующий компактный фрагмент:
$<
lines = $PLUMA_SELECTED_TEXT.split("\n");
output = "";
for line in lines:
output += "#" + line + "\n";
return output
>
Вы можете использовать любой код Python внутри окна менеджера сниппетов.
для получения дополнительной информации: http://www.tuxradar.com/content/save-time-gedit-snippets
Основываясь на предыдущем ответе bAnEEd_meeY-dL0, вот что я придумал.
добавить фрагмент, который выглядит так,
$<
selected_txt = $PLUMA_SELECTED_TEXT
output = ""
for line in selected_txt.split("\n"):
line = "#" + line
output = output + line+ "\n"
return output
>
Не забудьте заполнить раздел «Активация». Вам не нужно заполнять все. Я поставил Ctrl + M в ярлыке.
Примечание. Это прокомментирует несколько строк, но добавит дополнительную строку в самой нижней строке.
Основываясь на предыдущих ответах и некоторых исследованиях, я придумал более «избранную» версию фрагмента :-)
Прокомментируйте текущую строку, когда она выбрана или когда на ней есть курсор, например:
from requests import post # cursor currently here or this line selected
from collections import defaultdict
Нажмите CTRL+М
#from requests import post
from collections import defaultdict
Снова раскомментируйте его, нажав CTRL+M при выборе или наведя курсор на закомментированную строку.
Комментируйте несколько строк и переключайте комментарии к блокам, например:
#from requests import post # both lines selected
from collections import defaultdict
Нажмите CTRL + М
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()
>
Это мое решение. Функции:
Наслаждаться.
$<
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())
>