2012-02-07 24 views
1

我剛開始潛入vi,到目前爲止只學習了基本的移動/編輯命令。在我閱讀本書的過程中,有沒有一種快速的方法可以在與光標位置相同的列中對-#進行註釋(相應地縮進行)?如何在vi中的haml段落中註釋/?

比方說,我有一段代碼:

%table 
    - unless paginate(@clients).nil? 
    %tr 
     %th 
     =t('index.name') 
     %th 
     =t('index.address') 
     %th 
     =t('index.phone') 
    =render :partial => 'client', :collection => @clients 

,我想與-#在一列- unless=render :partial之間的註釋行,然後才能發表評論他們一次。那是什麼命令?

回答

2

在塊式選擇模式下,您可以按I插入塊的前面,然後按A插入塊的後面。

設置'relativenumber':set rnu)可以幫助計數線。

開始CTRL-V切換到列塊選擇模式,然後8j下井八條線,然後I#Esc鍵插入#

刪除它:dCTRL-V 8j將以塊爲單位刪除。

警告,如果你碰巧在Windows上使用香草的gvim.exe,你可能有mswin.vim激活其重新映射CTRL-V,如果你經常使用它,然後用CTRL-Q代替(或禁用此插件)

+0

唔...使用'I'(當我處於按塊選擇模式時)將我拋出該塊模式,並且我只設法在當前光標位置插入符號(當然,我已經處於插入模式)。 – 2012-02-07 12:31:04

+1

您必須點擊「」才能將更改應用於所有行。 – romainl 2012-02-07 12:35:33

+0

它的工作,hurraya!我越來越喜歡它! – 2012-02-07 12:41:07

0

,然後你可以在vi在.vimrc

command -range=% C :<line1>,<line2>s/^/-#/ 

定義一個命令,你可以用通常的方式應用:<range>C。你可以用:10,20C.,+10C來做到這一點。您可以使用以下命令取消註釋。

command -range=% D :<line1>,<line2>s/^-#// 

因爲我用vi與不同類型的評論的語言,我也我們這些命令:

command -range=% -nargs=1 Ca :<line1>,<line2>s/^/<args>/ 
command -range=% -nargs=1 Da :<line1>,<line2>s/^<args>// 

允許你只是做:10,20Ca-#,在那裏你可以發表評論的方法代替-#選擇。

+0

謝謝,我發現它很有用(但必須習慣它)。 – 2012-02-10 15:57:28

1

如果你不太關心它的工作方式並只是想讓它工作,有很多插件可以爲各種語言提供(不)評論功能。 Tim Pope的commentary.vim是我最近剛開始使用的,作爲nerdcommenter的替代品。

我剛剛安裝了它,所以我不能說任何缺陷,但蒂姆波普的東西(幾乎?)總是優秀的。通過插件,您可以選擇一個視覺塊並鍵入\\\來評論Haml段落。它也需要運動,例如\\ap

鏈接:
https://github.com/tpope/vim-commentary