Это прямо не отвечает на вопрос (sarnold уже сделал это), но я хотел бы предложить, что есть более эффективные способы (не) комментирования блоков кода.У меня есть функция CommentToggle, которая либо комментирует, либо комментирует текущую строку, в зависимости от того, начинается ли она с «comchar».
function! CommentToggle(comchar)
let firstchar = matchstr(getline("."),"[^ ]")
if firstchar == a:comchar
sil exe 'normal ^xx'
else
sil exe 'normal ^i' . a:comchar . ' '
endif
endfunction
Итак, для файлов perl вы можете отобразить:
nnoremap <silent> <leader>c :call CommentToggle('#')<CR>
и нажатие 3 \ c (un-) комментирует три строки с позиции курсора.
Вы также можете написатьотображение в визуальном режиме:
vnoremap <silent> <leader>c :call CommentToggle('#')<CR>
, позволяющее выбрать визуальную область и нажать \ c , чтобы (не) комментировать их все.
Эта конкретная функция работает только для односимвольных комментариев ("#", "%" и т. Д.), Но ее просто расширить на более длинные строки (например, "//") и даже на более сложные замены, напримеркак комментарии HTML.
Надеюсь, это поможет.