Предотвратить (g) vim от комментариев с автоматическим отступом

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

filetype plugin on

в моем .vimrc для плагина я использую.

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

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

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

filetype plugin indent off

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

Ответ 1

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

Ответ 2

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

Попробуйте следующее:

:set fo-=or

Ответ 3

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

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

Поскольку при загрузке плагина autocmd для типа файла будут переопределены любые настройки .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 файла, иначе тип файла не будет установлен.