Автоматически комментировать новую строку в Vim только для блочных комментариев

Когда я начинаю новую строку в конце однострочного комментария в файле .{cpp,h}, vim автоматически его комментирует. Например:

// This is a comment<CR>
// | <- Cursor is moved to `|`, `//` is automatically inserted. 

Я не уверен, что это плагин или настройка. Я не вижу ничего похожего на это в моем ~/.vimrc, а загруженные плагины перечислены ниже.

Мне нравится это для многострочных комментариев в стиле /* */, но я не хочу, чтобы мои однострочные комментарии занимали несколько строк по умолчанию.

Какой параметр (или плагин) делает это и можно ли его отключить только для этого типа комментариев?

:scriptnames дает это:


  1: /Users/simont/.vimrc
  2: /usr/local/share/vim/vim73/syntax/syntax.vim
  3: /usr/local/share/vim/vim73/syntax/synload.vim
  4: /usr/local/share/vim/vim73/syntax/syncolor.vim
  5: /usr/local/share/vim/vim73/filetype.vim
  6: /usr/local/share/vim/vim73/ftplugin.vim
  7: /usr/local/share/vim/vim73/syntax/nosyntax.vim
  8: /Users/simont/repositories/config-files/vim/colors/solarized.vim
  9: /usr/local/share/vim/vim73/plugin/getscriptPlugin.vim
 10: /usr/local/share/vim/vim73/plugin/gzip.vim
 11: /usr/local/share/vim/vim73/plugin/matchparen.vim
 12: /usr/local/share/vim/vim73/plugin/netrwPlugin.vim
 13: /usr/local/share/vim/vim73/plugin/rrhelper.vim
 14: /usr/local/share/vim/vim73/plugin/spellfile.vim
 15: /usr/local/share/vim/vim73/plugin/tarPlugin.vim
 16: /usr/local/share/vim/vim73/plugin/tohtml.vim
 17: /usr/local/share/vim/vim73/plugin/vimballPlugin.vim
 18: /usr/local/share/vim/vim73/plugin/zipPlugin.vim
 19: /usr/local/share/vim/vim73/scripts.vim
 20: /usr/local/share/vim/vim73/ftplugin/vim.vim
 21: /usr/local/share/vim/vim73/syntax/vim.vim

person simont    schedule 23.05.2012    source источник


Ответы (3)


au FileType c,cpp setlocal comments-=:// comments+=f://

В вашем vimrc должно выполняться трюк для //, не затрагивая блочные комментарии, в файлах {cpp,h}.

Чтобы временно попробовать его в текущем буфере, используйте:

:setlocal comments-=:// comments+=f://
person pb2q    schedule 23.05.2012
comment
Что делает comments+=f://? - person Brian McCutchon; 27.08.2014

Этот тип конфигурации, относящийся к определенным типам файлов, обычно задается через плагин для файлового типа. Существует ряд типов файлов для распространенных типов файлов (таких как .cpp), которые поставляются с Vim. Вы можете проверить тип файла для буфера с помощью :set ft?.

Как сказал pb2q, настройка продолжения комментариев после начала новой строки происходит из опции 'comments'. Для .{cpp,h} типом файла по умолчанию является «cpp», а для параметра 'comment' установлено значение $VIMRUNTIME/ftplugin/c.vim, так как cpp.vim находится в том же каталоге. Из файла c.vim:

  " Set 'comments' to format dashed lists in comments.
  setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,://

Опция comments представляет собой список из {flags}:{string}, а флаги f и O позволяют избежать расширения комментариев на новые строки.

Из часто задаваемых вопросов о Vim:

  You can use an autocommand triggered on the FileType event:

      au Filetype * set formatoptions=xyz

  This should at least be after "filetype on" in your vimrc. Best is to put
  it in your "myfiletypefile" file, so that it's always last.


  If you want to override a setting for a particular filetype, then create a
  file with the same name as the original filetype plugin in the
  ~/.vim/after/ftplugin directory For example, to override a setting in the
  c.vim filetype plugin, create a c.vim file in the ~/.vim/after/ftplugin
  directory and add your preferences in this file.

Итак, создайте файл ~/.vim/after/ftplugin/c.vim с

  setlocal comments-=://
  setlocal comments+=fO://

должен решить проблему.

person mMontu    schedule 23.05.2012

Вы можете использовать автокоманду, запускаемую по событию FileType:

  au Filetype * set formatoptions=xyz

Это должно быть по крайней мере после «filetype on» в вашем vimrc. Лучше всего поместить его в файл «myfiletypefile», чтобы он всегда был последним.

Если вы хотите переопределить настройку для определенного типа файла, создайте файл с тем же именем, что и у исходного подключаемого модуля типа файла, в каталоге ~/.vim/after/ftplugin. Например, чтобы переопределить настройку в подключаемом модуле типа файла c.vim , создайте файл c.vim в каталоге ~/.vim/after/ftplugin и добавьте в этот файл свои настройки. Поэтому создайте файл ~/.vim/after/ftplugin/c.vim с

установить локальные комментарии-=:// установить локальные комментарии+=fO://

person 8769430891    schedule 21.05.2020