2014-10-06 28 views
8

在Vim中,我喜歡允許您在啓動註釋塊後自動插入註釋的功能。你如何做到這一點,以便在換行符後面得到註釋字符,但是在獲得第二個換行符時,該註釋將被刪除,並且您將開始一個沒有註釋字符的換行符。如果你正在處理一個註釋塊並且不希望在此之後再發表評論(在我的情況下,我也希望將相同的事物應用於降價列表,將*/- 視爲註釋字符),這將會很有幫助。Vim:雙輸入後刪除註釋字符

例如

// typing a comment 
// (cursor here after hitting enter once) 

而且

// typing a comment 

(cursor here after hitting enter twice) 

回答

3

這種映射檢查當前行只包含註釋領導人決定,如果它確實<C-u><CR>前:

inoremap <expr> <CR> getline(".") =~ '^\s*\(\*\|//\|#\|"\)\s*$' ? "\<C-u>" : "\<CR>" 
+0

我把那在我的vimrc中,並嘗試鍵入//然後輸入我得到:'E15:無效的表達式:^ R = getline(「。」)=〜'^ \ s * \(\ * | // |#|「\)\ s * $'? 「\^U」:「\^M」 – Keiga 2014-10-13 17:32:46

+0

同樣在Vim 7.2上。刪除' ='修復E15。我無法得到表達式的「或」部分,但這適用於我的目的:'inoremap getline(「。」)=〜'^ \ s * \(#\)\ s * $'? 「\ 」:「\ 」(如果它與語言的註釋語法集成在一起會很好) – 2015-07-23 05:26:45