如果我在gVim中输入评论
// this is a comment
然后按ENTER键,它将自动以//开始下一行,所以它看起来像这样:
// this is a comment
//
但通常我不想在使用这种评论风格时写更多评论。我可以阻止gVim自动执行此操作,同时仍然保持自动完成/ * .. * /评论风格吗?
答案 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>'
o
和O
:
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键。
~/.vimrc
是fo
的简写,formatoptions
是在保留原始值的其余部分时减去某些键。
-=
的值可以在命令(fo
)模式下使用set fo?
显示。
问题ex
可在vim的内部手册页中阅读有关选项的更多信息。