Предотвратить (g) vim от комментариев авто-отступа - PullRequest
11 голосов
/ 17 февраля 2012

Некоторое время назад пришлось поставить

filetype plugin on

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

Но это вызвало изменение в автоиндентировании: всякий раз, когда я пишу комментарий «//», а затем нажимаю ввод, автообозначение vim автоматически вводит еще один «//» в следующей строке.

// This is a comment. <ENTER>
// <-- vim automatically puts '// ' there

Что я могу сделать, чтобы избежать этого? Я использую настройку autoindent в моем файле vim. Я уже попробовал

filetype plugin indent off

но это не работает.

Ответы [ 3 ]

8 голосов
/ 17 февраля 2012

Взгляните на :h formatoptions и :h fo-table. Опции, которые вам нужно отключить: r и o. Отключение их не позволяет vim автоматически вставлять заголовок комментария (в данном случае «//») при нажатии клавиши ввода в режиме вставки или при нажатии o или O в обычном режиме.

5 голосов
/ 17 февраля 2012

См. :help 'formatoptions' - Я знаю, как это раздражает!

Попробуйте это:

:set fo-=or
3 голосов
/ 14 января 2019

Я отвечаю на ваш заголовок, а не на основной текст вашего вопроса, поскольку ваш заголовок приводит на эту страницу людей, которые хотят помешать Vim оставлять комментарии.

Переменная, определяющая, будет ли Vim автоматически вставлять новый символ, indentkeys. Я заметил неправильный отступ только в Python и Yaml, поэтому я отключил авто-отступ только для символа "#" в начале строки: :set indentkeys-=0#

Так как при загрузке плагина отступа для типа файла будут отменены любые настройки .vimrc, вы можете установить autocmd для изменения отступов после создания или загрузки файла. Вот мой:

autocmd BufNewFile,BufReadPost * if &filetype == "python" | set indentkeys-=0# | endif
autocmd BufNewFile,BufReadPost * if &filetype == "yaml" expandtab shiftwidth=2 indentkeys-=0# | endif

См. : h indentkeys

Обратите внимание, что из-за (возможно) ошибки, если вы используете Neovim, вы должны также указать filetype plugin indent on, иначе тип файла не будет установлен.

...