Предотвратить (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
файла, иначе тип файла не будет установлен.