我的 vimrc 中有以下几行:
" Don't add the comment prefix when I hit enter or o/O on a comment line.
set formatoptions-=or
它曾经在某个时候起作用。我不知道我做了什么,但现在不知道了,创建换行符时我仍然会收到评论。什么可以禁用它?这是我的 vimrc: http: //pastebin.com/kVWWeQWW
我的 vimrc 中有以下几行:
" Don't add the comment prefix when I hit enter or o/O on a comment line.
set formatoptions-=or
它曾经在某个时候起作用。我不知道我做了什么,但现在不知道了,创建换行符时我仍然会收到评论。什么可以禁用它?这是我的 vimrc: http: //pastebin.com/kVWWeQWW
@mm2703 的解决方案对我不起作用,尤其是对于 java 文件,但是这种更改确实有效。我还将它包装在augroup
, 声明中,因此资源.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
如果您发现标志在启动o
后被重新插入formatoptions
,您应该找出发生这种情况的原因并修复它。这似乎比总是执行 更干净autocmd
,即使在删除选项之后也是如此。
您可以使用以下命令检查选项的设置位置:
:5verbose set fo?
:5verbose setl fo?
编辑:
如果您的问题ftplugin
在于位于 Vim 目录 ( $VIMRUNTIME/ftplugin
) 中的文件,则不应更改该文件,因为更新 Vim 时该更改将被撤消。更改它的正确方法是在您的after
目录中,如:h after-directory
.
假设文件类型出现问题c
,请创建~/.vim/after/ftplugin/c.vim
包含您的setlocal formatoptions-=
命令的文件。
如果您'formatoptions'
包含不同顺序的选项,例如ro
,那么-=or
将不起作用。尝试
set formatoptions-=o
set formatoptions-=r
来自help remove-option-flags
:
请注意,您应该一次添加或删除一个标志。如果 '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
谢谢,这对我有用 - 但我正在禁用烦人的格式化功能......
autocmd!
autocmd BufEnter * setlocal formatoptions-=c formatoptions-=q formatoptions-=n formatoptions-=r formatoptions-=o formatoptions-=l
似乎 vimrc 只是忽略了组合语法,例如。格式选项-=cqn