8

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

4

5 回答 5

12

@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
于 2014-04-27T17:17:32.990 回答
12

如果您发现标志在启动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-=命令的文件。

于 2013-04-16T11:25:31.467 回答
8

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

set formatoptions-=o
set formatoptions-=r

来自help remove-option-flags

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

于 2013-04-16T08:40:06.193 回答
5

我意识到: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
于 2013-04-16T09:13:07.193 回答
0

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

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

似乎 vimrc 只是忽略了组合语法,例如。格式选项-=cqn

于 2014-11-18T19:56:41.090 回答