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

Mer*_*ijn 11 vim

如果我在这样的gVim中输入评论

// this is a comment

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

// this is a comment
//
Run Code Online (Sandbox Code Playgroud)

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

Ben*_*oit 28

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

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

:help 'formatoptions':help fo-table.

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


Ben*_*oit 3

我的另一个答案,因为您不想为/*\xe2\x80\xa6*/评论触发此问题。

\n\n

使用:

\n\n
inoremap <expr> <enter> getline('.') =~ '^\\s*//' ? '<enter><esc>S' : '<enter>'\n
Run Code Online (Sandbox Code Playgroud)\n\n

对于oO

\n\n
nnoremap <expr> O getline('.') =~ '^\\s*//' ? 'O<esc>S' : 'O'\nnnoremap <expr> o getline('.') =~ '^\\s*//' ? 'o<esc>S' : 'o'\n
Run Code Online (Sandbox Code Playgroud)\n