如果我在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