2015-12-04 54 views
0

如果我有下面的代碼,其中的點是空間,如何讓Vi插入一列字符?

....def foobar(): 
........foo = x 
........bar = y 

如何獲得Vim的插入磅(#),並在這樣的每一行同一列一個空格(。):

....#.def foobar(): 
....#.....foo = x 
....#.....bar = y 

我知道我可以打^ v進入列插入模式,然後我打了「J」鍵兩次選擇在同一列中的以下兩行,但所有的文章我讀過這說你應該點擊「I」鍵進入插入模式。但是,當我這樣做時,我只進入第一行的插入模式,而不是全部三行。我錯過了什麼?順便說一句,我不想​​數空間並做替換命令。我知道我可以做到這一點。必須有一個更簡單的方法。

謝謝。

回答

0
:1-3s/^.../^...#./ 

從線1〜3(調整自己的目的),由三個空格,一個#和一個額外的空間,在該行的開頭代替(S指令)三個空格。

+0

謝謝,但再次,這不是一個好的答案。該解決方案不應該需要計算空間。必須通過Vi的列模式來做到這一點。 – William

0

你將在那裏嘗試的每個命令都會修改實際的行或者一組執行命令的行(如其他答案所示)。

的另一種方法可能是一個替代,如:

:地圖的z/....的M4 ...#[

(M是CTRL-V M到sinalize一個輸入,並[是CTRL-V轉義,以結束替換)

映射'z'後,您可以按'z'在您想要的每一行。

相關問題