我正在编辑我的.vimrc文件,其中包括注释。当我有这样的评论时:

" example comment


然后在完成评论后按回车在行的末尾,下一行将自动设置为评论(自动插入引号):

" example comment
" 


如何停止这种行为?

#1 楼

这由formatoptions设置控制;从:help fo-table开始:


您可以使用'formatoptions'选项来影响Vim格式化文本的方式。
'formatoptions'是可以包含以下任何字母的字符串。
的默认设置为tcq。您可以使用逗号分隔选项字母,以提高可读性。


请注意,有关“默认值”的声明有些令人误解,因为许多文件类型都会更改formatoptions以使其最适合文件类型;例如在/usr/share/vim/vim74/ftplugin/vim.vim中:

" Set 'formatoptions' to break comment lines but not other lines,
" and insert the comment leader when hitting <CR> or using "o".
setlocal fo-=t fo+=croql


您可以使用以下命令查看当前的formatoptions

:set fo?
  formatoptions=jcroql


并查看在哪里它们的设置如下:

:verbose set fo?
  formatoptions=jcroql
      Last set from /usr/share/vim/vim74/ftplugin/vim.vim


在这种情况下,您要删除r标志,但可能还要删除co标志: />
r       Automatically insert the current comment leader after hitting
        <Enter> in Insert mode.
c       Auto-wrap comments using textwidth, inserting the current comment
        leader automatically.
o       Automatically insert the current comment leader after hitting 'o' or
        'O' in Normal mode.


可以这样操作: ,它将按该顺序查找字符串:set formatoptions-=cro,但通常不起作用。)。

要仅对当前缓冲区设置更改,请使用cro而不是:setlocal。如果您想一直使用这些选项,最好在vimrc中使用:set。例如:

:set formatoptions-=r formatoptions-=c formatoptions-=o


这将仅设置'vim'文件类型的选项,而不会干扰其他文件类型。

如果要始终设置它,请使用:

au FileType vim setlocal fo-=c fo-=r fo-=o


仅使用autocmd是行不通的,因为设置/扩展了许多文件类型set fo-=cro(如上图所示);加载文件类型文件后,将执行FileType autocmd。

评论


已确认。另外,它的答案在这里:stackoverflow.com/questions/16030639/vim-formatoptions-or

–瓜
2015年2月19日在16:48

添加au FileType *将fo- = o设置为我的.vimrc无效。我在带注释的行中按o,但它仍然也有注释。

– Ixx
18年3月30日在19:39

很久以来,这一直困扰着我。默认格式选项是包装我的txt文件。我在围绕textwidth和wrapmargin的过程中不知所措,但没有任何效果。甚至将我的vim从8.1降级到8.0并认为这是一个错误。这解决了我的问题,谢谢。

–anishjp
19年7月10日在11:01

#2 楼

将此添加到您的vimrc中:

au BufEnter * set fo-=c fo-=r fo-=o


由于其他插件设置了FileType,因此无法使用formatoption

评论


即使我禁用了Vundle中的所有插件,这似乎也是我唯一的解决方案。使用neovim。知道为什么会这样吗?

– andrewgazelka
19年11月4日在21:52

@andrewgazelka这可能是由标准Vim安装中的ftplugin设置的(即,不是通过Vundle添加的内容)。使用:verbose设置?查看设置选项的位置。

–丰富
20-2-7在12:18

#3 楼

我的回答与Martin Tournoij非常相似(完全归功于他)。
这仅是单行命令。运行此命令时,它将永久禁用继续注释:

echo 'au FileType * set fo-=c fo-=r fo-=o' >> ~/.vimrc