2009-06-30 2 views
6

Я не уверен, что это возможно, но я заинтересован в том, чтобы это произошло.
В идеале, я хотел бы, чтобы отобразить эту функцию SHIFT + CTRL + .У Vim есть функция автокомментации, основанная на синтаксисе файла?

Я ищу способ, чтобы Vim вводил комментарий (одна строка), который соответствует синтаксису файла, который я редактирую. Если существует несколько однострочных стилей комментариев, Vim может либо автоматически выбрать один, либо дать мне выбор. Если однострочный комментарий состоит из двух частей (например /* и */), то нажатие SHIFT + CTRL + впервые начнет комментарий, и второй раз будет закрывать комментарий.

Примеры:

  • Python: #
  • JavaScript: //
  • C, C++: /* с */ или //

Я знаю, что есть сценарии, которые будут вставлять комментарии для вас, но я не видел никого, кто сделает это ed в синтаксисе файла.

ответ

5

Сортировка: Я не верю, что vim сделает это из коробки, но вы можете установить плагины, которые будут делать довольно интеллектуальные комментарии (используя клавиши перемещения, визуальное выделение строк и т. Д.), Которые специфичны для редактируемого типа файла. Вы можете отключить эти плагины от vim.org, и вы должны иметь возможность создавать собственные сопоставления ключей в файле .vimrc, если вам не нравятся те, с которыми они связаны.

tComment довольно хорошо рассматривается и работал для меня.

Я слышал, что EnhCommentify может быть лучше, но я не использовал его сам.

+0

Спасибо! Оба выглядят довольно хорошо. Я попробую их когда-нибудь сегодня. –

2

См: this script, который обеспечивает функцию, чтобы прокомментировал выделенную область в визуальном режиме.

Вы хотите, чтобы начать комментарий в режиме вставки так что ваша функция будет выглядеть как:

fun CommentLines() 
    exe ":[email protected]^@".g:Comment."@g" 
endfun 
-1

Не совсем то, что вы ищете, но эффективно, и я полагаю, вы знаете, какой комментарий использовать. (все это в командном режиме) Наведите курсор на первую строчку, которую вы хотите прокомментировать.Затем мы Willl установить маркер называется (действительные имена А.З., одного символа), набрав

ma 

поместить курсор на последнюю строку, а затем установить маркер, называемый б набрав

mb 

Тогда комментарий всего блока (путем поиска новой строки и вставить символ комментария (обратите внимание на использование «#» в качестве разделителя поиска, так как в противном случае дите придется бежать «/»)

:'a,'bs#^#//# 

или Python:

:'a,'bs/^/#/ 

раскомментировать:

:'a,'bs#^//## 

Как мы выравниваем комментарии, это не имеет значения, если у нас есть другие комментарии уже в файле, они будут сохранены.

Смежные вопросы