Vim formatoptions- =或

时间:2013-04-16 06:56:51

标签: vim

我的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

5 个答案:

答案 0 :(得分:11)

如果您在启动后发现标记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-=

答案 1 :(得分:7)

@ 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

答案 2 :(得分:6)

如果您的'formatoptions'包含不同顺序的选项,例如ro,那么-=or将无效。尝试

set formatoptions-=o
set formatoptions-=r

来自help remove-option-flags

  

请注意,您应该一次添加或删除一个标志。如果'guioptions'的值为“ab”,则使用“set guioptions- = ba”将不起作用,因为字符串“ba”不会出现。

答案 3 :(得分:4)

我意识到: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

答案 4 :(得分:0)

谢谢,这对我有用 - 但我禁用恼人的格式化功能......

autocmd!
autocmd BufEnter * setlocal formatoptions-=c formatoptions-=q formatoptions-=n formatoptions-=r formatoptions-=o formatoptions-=l

似乎vimrc只是忽略了组合语法,例如。 formatoptions- = CQN