энергия или энергия могут использоваться, чтобы прокомментировать или расположить с отступом одновременно много строк? Например:
for item in Lista:
ind = int(floor(1.0*(item-lmin)/width))
if ind==nintervals:
ind=ind-1
print item,ind
прокомментируйте это к:
#for item in Lista:
#ind = int(floor(1.0*(item-lmin)/width))
#if ind==nintervals:
#ind=ind-1
#print item,ind
или отступ это к:
for item in Lista:
ind = int(floor(1.0*(item-lmin)/width))
if ind==nintervals:
ind=ind-1
print item,ind
P.D. Релевантно различие между VI и VIM?
type :set number
. запишите номер начальной и конечной строки блока, который вы хотите прокомментировать. затем выполните подстановку диапазона адресов, например
:12,17s/^/#
Я знаю, что здесь уже есть миллион ответов, объясняющих, как использовать >
и <
для отступов, так что я не буду утруждать себя этим. Что касается комментирования, то, хотя вы можете сделать это быстро и грязно с помощью вставки блока или замены, вы можете сделать гораздо лучше с помощью плагина NERD Commenter. Он предоставляет команды для комментирования и разкомментирования различными способами, он знает, какой символ комментария вставить, основываясь на синтаксисе, и он может делать довольно многострочные комментарии, если язык поддерживает их.
Здесь много ответов, все по теме. Лучший способ сделать это действительно зависит от контекста (потому что контекст определяет самый простой метод навигации), поэтому я сделаю некоторые предположения о контексте.Если раздел, в котором вы хотите сделать отступ или комментарий, представляет собой один абзац (например, вы хотите сделать отступ или прокомментировать все, от курсора до следующей пустой строки), вы можете сделать отступ с помощью:
>)
Если курсор находится не в начале абзаца, но раздел, в котором вы хотите сделать отступ, представляет собой один абзац, а курсор находится посередине, используйте
>ip
Наконец, предположим, что вы хотите сделать отступ для блока кода, разделенного {}, а курсор находится посередине этого блока. Используйте
>i{
Для комментариев, в каждом случае просто замените> на v и используйте приведенные выше команды для выбора блока, а затем выполните замену текста, например s / ^ / # /.
Ключ - это команды навигации. Я настоятельно рекомендую
:help v_a
Выберите линии в визуальном режиме.
Для однократного отступа введите >>
или <<
для отступа вправо или влево соответственно. Чтобы сделать отступ n раз, введите n >>
или n <<
.
Чтобы закомментировать, замените начало строки комментарием:
: '<,'> s / ^ / # /
'<,'>
означает «с начала выбор до конца.
s / ^ / # /
заменяет начало каждой строки в диапазоне на #
, предполагая, что #
превращает строку в комментарий.
Мое обычное решение:
<ESC>
<q><a> => start a macro and save it as macro a
<^> => to get to the start of the line
<i> => insert mode
<#> => Add the #
<ESC> => End insert mode
<down> => Move to the next line
<q> => End macro
Затем один раз:
<[at]><a> => repeat macro a
Затем просто повторите <[at]><[at]> (повторите последний выполненный макрос), пока все строки не будут прокомментированы. Вы можете просто удерживать <[at]> и позволить клавиатуре повторить все остальное.
BTW: Как вы пишете знак [at] здесь без stackoverflow, превращая его в «> blockquote»?
Отступ:
[shift] + [v] => line select mode
[down] => until all lines to indent are selected
затем:
[>] => indent once
или:
[2..x][>] => indent 2..x levels
Чтобы оставить комментарий, нажмите заглавную V , чтобы войти в режим ВИЗУАЛЬНОЙ ЛИНИИ, выберите все строки, затем нажмите : для входа в командный режим и использования команды (обратите внимание, что VIM уже включает метки '<,'>
для вас):
:'<,'>s/^/#/
Если вы предпочитаете использовать решетки рядом с текстом, а не рядом с левым полем, команда следующая:
:'<,'>s/^\(\s*\)/\1#/
Для отступа выберите тот же блок, затем введите >
для отступа, <
для удаления.
Для комментирования вы можете использовать выделение ВИЗУАЛЬНЫЙ БЛОК (Ctrl-V) и выбрать начало строк, затем нажать Shift-I и написать один #. После нажатия Esc все строки получат #.
Поместите курсор в первую строку, посчитайте, сколько строк должно быть с отступом, в приведенном выше примере это 5, затем для хеша (#) введите
:.,. + 5% s / ^ \ ([
или для отступа табуляции
:.,. + 5% s / ^ \ ([< tab>] * \) /
,
Есть, наверное, более изящные способы сделать это, но что-то вроде этого - вещь быстро и безвкусно.