如果我在gVim的输入评论这样如何阻止Vim在ENTER按钮上自动创建注释?
// this is a comment
,我敲回车,它会自动启动以//下一行,所以它看起来是这样的:
// this is a comment
//
但通常我不想在使用此评论风格时写更多评论。我是否可以停止gVim自动执行此操作,同时仍然保留/ * .. */commenting样式的自动完成?
如果我在gVim的输入评论这样如何阻止Vim在ENTER按钮上自动创建注释?
// this is a comment
,我敲回车,它会自动启动以//下一行,所以它看起来是这样的:
// this is a comment
//
但通常我不想在使用此评论风格时写更多评论。我是否可以停止gVim自动执行此操作,同时仍然保留/ * .. */commenting样式的自动完成?
从我的另一个答案,因为你不想让这个触发/*
... */
评论。
用途:
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'
要禁用它,而敲回车在插入模式下,做:set formatoptions-=r
要禁用它,而在普通模式按o或O,做:set formatoptions-=o
见:help 'formatoptions'
和:help fo-table
。
或者,如果要从行首开始删除字符,直到光标,仍然可以在插入模式下按CTRL-U。
有它禁用每次使用vim的时候,打开你的.vimrc文件,并添加以下行:
autocmd BufNewFile,BufRead * setlocal formatoptions-=r
添加:
set fo-=ro
在~/.vimrc
足够,
禁用ř E打开和从autocommenting在正常模式下ö/O键。
fo
是formatoptions
的简写,-=
是扣除某些键,同时保留原始值的其余部分。
fo
的值可以使用set fo?
命令(ex
)模式显示。
问题help fo
在vim的内部手册页阅读更多关于选项的内容。
谢谢,但是这也会禁止在进行`/ *`-style注释后敲击ENTER时自动完成。我想保留这个选项,但在进行'//'风格的注释后禁用类似的行为。这可能吗? – Merijn 2011-02-04 09:00:47
我喜欢这个解决方案。我在.vim中有以下行。rc: `autocmd BufRead,BufNewFile * set formatoptions- = o` 所以默认情况下,我仍然可以使用回车来创建多行注释。当我完成评论时,我输入'o'。 – adampasz 2016-05-24 02:18:38