Vim格式选项-=或
我的vimrc中有以下行:Vim格式选项-=或,vim,Vim,我的vimrc中有以下行: " Don't add the comment prefix when I hit enter or o/O on a comment line. set formatoptions-=or 它曾经在某个时候起作用。我不知道我做了什么,但现在不知道了,我在创建新行时仍然会收到评论。什么能使它失效?这是我的vimrc:如果您的'formatoptions'包含顺序不同的选项,如ro,那么-=或将无法工作。试一试 set formatoptions-=o set for
" Don't add the comment prefix when I hit enter or o/O on a comment line.
set formatoptions-=or
它曾经在某个时候起作用。我不知道我做了什么,但现在不知道了,我在创建新行时仍然会收到评论。什么能使它失效?这是我的vimrc:如果您的
'formatoptions'
包含顺序不同的选项,如ro
,那么-=或将无法工作。试一试
set formatoptions-=o
set formatoptions-=r
从帮助中删除选项标志
:
请注意,您应该一次添加或删除一个标志。如果“guioptions”的值为“ab”,则使用“set guioptions-=ba”将不起作用,因为字符串“ba”不会出现
我通过:set formatoptions?
意识到,尽管启动时禁用了o
标志,但在打开文件时它会返回。我的vimrc中有一个修复了它:
" Don't add the comment prefix when I hit enter or o/O on a comment line.
autocmd FileType * setlocal formatoptions-=c formatoptions-=r formatoptions-=o
如果在启动后发现标志o
被插入到formatoptions
中,您应该找出原因并修复它。这似乎比总是执行autocmd
更干净,即使在删除该选项之后也是如此
您可以使用以下命令检查选项的设置位置:
:5verbose set fo?
:5verbose setl fo?
编辑:
如果您的问题是Vim目录中的ftplugin
文件($VIMRUNTIME/ftplugin
),您不应该更改该文件,因为当Vim更新时,该更改将被撤消。更改它的正确方法是在目录
之后的中,如目录
之后的:h中所述
假设问题发生在c
filetype上,创建包含setLocalFormatOptions-=
命令的文件~/.vim/after/ftplugin/c.vim
。@mm2703的解决方案对我不起作用,特别是对java文件,但这一更改确实起到了作用。我还将它包装在一个augroup
语句中,这样resourcing.vimrc
就不会重新注册autocmd
:
augroup Format-Options
autocmd!
autocmd BufEnter * setlocal formatoptions-=c formatoptions-=r formatoptions-=o
" This can be done as well instead of the previous line, for setting formatoptions as you choose:
autocmd BufEnter * setlocal formatoptions=crqn2l1j
augroup END
谢谢,这对我很有效-但我正在禁用恼人的格式化功能
autocmd!
autocmd BufEnter*setlocal formatoptions-=c formatoptions-=q formatoptions-=n formatoptions-=r formatoptions-=o formatoptions-=l
也不是这样:(不过谢谢。这解决了我的问题。谢谢。注意,你也可以在一行中完成:set formatoptions-=o formatoptions-=r
每次打开文件时都会添加它。我怎么知道是什么启用了它呢?我的vimrc中没有其他内容更改formatoptions.ohhhhhh。是的,我有。但我没有删除autocmd
行。我刚做了,这次你的命令让我找到了罪魁祸首,那就是ftplugin
。谢谢!除了你的。例如,在ftplugins上,vimrc
——之外,配置还可以在许多其他地方更改。如果你禁用基于autocmds
的修复程序,并输入一个缓冲区,其中显示:set formatoptions?
发出上述命令的o
选项应显示类似“Last set from”的内容编辑:事实上,我在~/.vim/ftplugin文件夹中有一个vimOutliner
文件,所以我做的第一件事就是卸载它。但问题仍然存在,因为问题确实来自$VIMRUNTIME/ftplugin
。因为问题几乎发生在我正在编辑的每个代码文件中de>autocmd
毕竟是最好的选择?您怎么看?如果您更改$VIMRUNTIME/ftplugin
,您的更改将丢失,如果Vim更新和/或更改到另一台机器,即使您复制.Vim
和.vimrc
。我在编辑中提出的解决方案更好,因为它避免了这些问题,并且n用于以推荐的方式(参见目录后的:h)对每种文件类型进行进一步定制,并与之相关:在Vim SEUgh,这终于成功了。我想我在到达这里之前尝试了4个答案。谢谢。