Как прокомментировать блок кода Python в Vim
Мне было интересно, есть ли какое-либо ключевое сопоставление в Vim, чтобы я мог отступать от определенных строк кода (были ли эти строки выбраны в визуальном режиме или n строк выше/ниже текущей позиции курсора).
Итак, в основном что-то, что преобразует следующие
def my_fun(x, y):
return x + y
к
#def my_fun(x, y):
# return x + y
Я согласен с использованием #
или """
для комментирования соответствующих строк. В идеале мне также хотелось бы, чтобы одно и то же keymapping раскололо строки, если данные строки были прокомментированы.
Ответы
Ответ 1
Шаг 1: Перейдите к первому столбцу первой строки, которую вы хотите прокомментировать.
![Initial State]()
Шаг 2: Нажмите: Ctrl + v и выберите строки, которые вы хотите прокомментировать:
![Select lines]()
Шаг 3: Shift - I
# space (Введите режим Insert-at-left, введите символы для вставки. исчезнут, но все строки внутри него будут изменены после шага 4.)
![Comment]()
Шаг 4: Esc
![<Esc>]()
Ответ 2
в одну сторону вручную
:set number
:10,12s/^/#
Ответ 3
Вы можете добавить следующее отображение в ваш .vimrc
vnoremap <silent> # :s/^/#/<cr>:noh<cr>
vnoremap <silent> -# :s/^#//<cr>:noh<cr>
Выделите свой блок:
Shift+v
#
, чтобы прокомментировать ваши строки из первого столбца.
-#
, чтобы раскомментировать тот же самый способ.
Ответ 4
Выделите свой блок: Shift+v
Прокомментируйте выбранный блок с помощью: :norm i#
(нижний регистр i)
Чтобы раскомментировать, снова выделите свой блок и раскомментируйте: :norm ^x
Команда :norm
выполняет действие для каждой выбранной строки. Комментирование введет #
в начале каждой строки, и раскомментирование удалит это #
.
Ответ 5
Есть несколько хороших плагинов, которые помогают прокомментировать/раскомментировать строки. Например Комментарий NERD.
Ответ 6
Я обычно выделяю визуальный блок (<C-V>
), затем выполняю поиск и замену первого символа:
:'<,'>s/^/#
(Ввод командного режима с выбранным визуальным блоком автоматически помещает '<,' > в командную строку). Затем я могу раскомментировать блок, выметая один и тот же визуальный блок и:
:'<,'>s/^#//
Ответ 7
У меня есть следующие строки в .vimrc
:
" comment line, selection with Ctrl-N,Ctrl-N
au BufEnter *.py nnoremap <C-N><C-N> mn:s/^\(\s*\)#*\(.*\)/\1#\2/ge<CR>:noh<CR>`n
au BufEnter *.py inoremap <C-N><C-N> <C-O>mn<C-O>:s/^\(\s*\)#*\(.*\)/\1#\2/ge<CR><C-O>:noh<CR><C-O>`n
au BufEnter *.py vnoremap <C-N><C-N> mn:s/^\(\s*\)#*\(.*\)/\1#\2/ge<CR>:noh<CR>gv`n
" uncomment line, selection with Ctrl-N,N
au BufEnter *.py nnoremap <C-N>n mn:s/^\(\s*\)#\([^ ]\)/\1\2/ge<CR>:s/^#$//ge<CR>:noh<CR>`n
au BufEnter *.py inoremap <C-N>n <C-O>mn<C-O>:s/^\(\s*\)#\([^ ]\)/\1\2/ge<CR><C-O>:s/^#$//ge<CR><C-O>:noh<CR><C-O>`n
au BufEnter *.py vnoremap <C-N>n mn:s/^\(\s*\)#\([^ ]\)/\1\2/ge<CR>gv:s/#\n/\r/ge<CR>:noh<CR>gv`n
Ярлыки сохраняют позицию курсора и ваши комментарии до тех пор, пока они начинаются с #
(пробел после #). Например:
# variable x
x = 0
После комментирования:
# variable x
#x = 0
После uncomennting:
# variable x
x = 0
Ответ 8
Честно говоря, я использую плагин tcomment для этой ссылки. Он может обрабатывать почти каждый синтаксис. Он определяет приятные движения, используя его с некоторыми текстовыми блоками, специфичными для python, делает его мощным инструментом.
Ответ 9
NERDcommenter - отличный плагин для комментирования, который автоматически определяет количество типов файлов и их соответствующие символы комментария. Смешно легко установить с помощью Pathogen.
Комментарий <leader>cc
. Раскомментировать с помощью <leader>cu
. И переключите комментарии с помощью <leader>c<space>
.
(по умолчанию <leader>
в vim есть \
)
Ответ 10
Там много плагинов комментариев для vim - ряд из которых - многоязычный, а не только python. Если вы используете диспетчер плагинов, например Vundle, вы можете их искать (после установки Vundle), используя, например:
:PluginSearch comment
И вы получите окно результатов. В качестве альтернативы вы можете просто искать vim-скрипты для комментариев плагинов.
Ответ 11
Ctrl + k для комментария (визуальный режим):
vnoremap <silent> <C-k> :s#^#\##<cr>:noh<cr>
Ctrl + u для раскола (визуальный режим):
vnoremap <silent> <C-u> :s#^\###<cr>:noh<cr>
Ответ 12
Очень минимальный легкий вес плагин: vim-commentary.
gcc, чтобы прокомментировать строку
gcgc для расторжения. еще раз просмотрите страницу плагина.
v+k/j выделите блок, затем gcc, чтобы прокомментировать этот блок.