我想映射\ c來評論vim中的當前行(將'//'添加到第一個非空行到行之前)和\ d刪除'//'行首(取消註釋)。在Vim中評論C++代碼
我在我的vimrc加入以下兩行:
imap \c <Esc>:s/^/\/\/ <CR>j$a
imap \d <Esc>:s/^\/\/ /<CR>j$a
,但是當我把這種在這一行:
for (int i = 0; i < n; i++)
然後將其轉換爲:
// for (int i = 0; i < n; i++)
但我想將其轉換爲:
// for (int i = 0; i < n; i++)
我想這種情況的原因之一是,當我想vim的縮進這一行,它會在該行的開頭添加一個額外的選項卡並將其轉換爲:
// for (int i = 0; i < n; i++)
我該怎麼辦?我認爲^指的是第一個非空白字符的行,但它不是真的。
P.S:我發現了這兩個命令,但我不知道他們在做什麼。你能否向我解釋他們(因爲我需要記住他們,當我知道他們是什麼時他們更容易記住)。如果其中的任何一部分是不必要的,請告訴我:
imap \c <ESC>:s,^\(\s*\)[^/ \t]\@=,\1// ,e<CR>j$a
imap \d <ESC>:s,^\(\s*\)// \s\@!,\1,e<CR>j$a
如果我想向'[^#\ t] \ @ ='組添加'//',以及爲什麼在此組中需要\ t和空格,我應該怎麼做(不是(\ s *)捕獲它們?) – Farzam 2012-01-09 13:33:31
我會在答案中說明替換的結果,但是它現在會在空格之後和第一個非空白字符之前放置'//'...如果這不是您想要的行爲,也許你可以展示想要的結果? – Useless 2012-01-09 13:36:17