16

.{cpp,h}当我在文件中的单行注释末尾开始新行时,vim会自动对其进行注释。例如:

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

我不确定这是插件还是设置。我在 my 中看不到任何看起来会执行此操作的内容~/.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
4

3 回答 3

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

在你的 vimrc 中,应该在//不影响块注释的情况下,在 {cpp,h} 文件中。

要在当前缓冲区中临时尝试,请使用:

:setlocal comments-=:// comments+=f://
于 2012-05-23T19:17:49.033 回答
6

这种与特定文件类型相关的配置通常是通过文件类型插件设置的。.cppVim 附带了许多用于常见文件类型(例如 )的文件类型。您可以使用 . 检查缓冲区的文件类型:set ft?

'comments'正如 pb2q 所说,开始新行后继续评论的设置来自 option 。默认文件类型为.{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}, 和标志的列表,fO避免扩展注释新行。

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://

应该解决问题。

于 2012-05-23T20:41:46.233 回答
0

您可以使用在 FileType 事件上触发的自动命令:

  au Filetype * set formatoptions=xyz

这至少应该在你的 vimrc 中的 "filetype on" 之后。最好是把它放在你的“myfiletypefile”文件中,这样它就一直在最后。

如果要覆盖特定文件类型的设置,则在 ~/.vim/after/ftplugin 目录中创建一个与原始文件类型插件同名的文件 例如,覆盖 c.vim 文件类型插件中的设置,在 ~/.vim/after/ftplugin 目录中创建一个 c.vim 文件,并在此文件中添加您的首选项。所以创建文件 ~/.vim/after/ftplugin/c.vim

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

于 2020-05-21T18:21:55.450 回答