如何阻止Vim在ENTER按下自动创建注释?

时间:2011-02-04 08:39:18

标签: vim

如果我在gVim中输入评论

// this is a comment

然后按ENTER键,它将自动以//开始下一行,所以它看起来像这样:

// this is a comment
//

但通常我不想在使用这种评论风格时写更多评论。我可以阻止gVim自动执行此操作,同时仍然保持自动完成/ * .. * /评论风格吗?

4 个答案:

答案 0 :(得分:28)

要在插入模式下按ENTER键禁用它,请执行:set formatoptions-=r

要在正常模式下按o或O时禁用它,请执行:set formatoptions-=o

请参阅:help 'formatoptions':help fo-table

或者,如果要删除从行开头到光标的字符,仍然可以在插入模式下按 CTRL-U

答案 1 :(得分:3)

我的另一个答案,因为您不希望触发/* ... */评论。

使用:

inoremap <expr> <enter> getline('.') =~ '^\s*//' ? '<enter><esc>S' : '<enter>'

oO

nnoremap <expr> O getline('.') =~ '^\s*//' ? 'O<esc>S' : 'O'
nnoremap <expr> o getline('.') =~ '^\s*//' ? 'o<esc>S' : 'o'

答案 2 :(得分:1)

要在每次使用vim时禁用它,请打开.vimrc文件并添加以下行:

autocmd BufNewFile,BufRead * setlocal formatoptions-=r

答案 3 :(得分:0)

添加:

set fo-=ro
<{1}}中的

就足够了,

在自动配置的正常模式下禁用 R eturn和 o / O键。

~/.vimrcfo的简写,formatoptions是在保留原始值的其余部分时减去某些键。

-=的值可以在命令(fo)模式下使用set fo?显示。

问题ex可在vim的内部手册页中阅读有关选项的更多信息。