1. 程式人生 > >vim學習之以退為進——可反復移動和可反復改動的美妙結合

vim學習之以退為進——可反復移動和可反復改動的美妙結合

光標移動 點號 popu blog 運行 har clas 14. you

時間:2014.06.29

地點:基地

----------------------------------------------------------------------------------

一、任務1:使改動可反復

? 在指定字符前後各加入一個字符。比方在連接字符串的 + 號操作前後均流出一個空格( [ ]+[ ] )

我們知道 s命令能夠刪除光標下的字符進入插入模式,如今我們還能夠總結一下進入插入模式的幾種方式:

1. i 命令:當前光標前插入 ??

2. a命令:當前光標後插入

3. s命令

:當前光標下刪除後插入

4.大寫i命令:當前光標所在行首插入

5.大寫a命令:當前光標所在行尾插入

6.大寫S命令:刪除當前光標所在行插入

7. dd命令:不過刪除當前行,不會進入插入模式

於是小s命令可刪除光標下的字符進入插入模式後的功能後,為了完畢任務我們可先運行小s命令刪除光標下的字符,然後鍵入:空格+空格,然後退出,這樣。按鍵集合:

[ s 空格 + 空格 Esc ]將被記錄下來形成一個改動單元,於是接下來就可採用點號命令了。

如今,我們所要做的事情就是把光標移動到下一個 + 號處。然後用 . 命令反復運行這一操作。

----------------------------------------------------------------------------------


二、任務2:使移動可反復

? 為了查找本行中某指定字符。我們能夠使用 f{char}命令,比方 f+ 後光標將移動到下一個 + ?號所在位置。

於是,我們沒完畢一次改動後都能夠使用 f+ 跳轉到該行的下一個 + 號所在位置。可是,更好的方法是使用 。 號 命令反復查找上次f命令所查找的字符。於是就不是必需多次輸入 f+ ?了。

----------------------------------------------------------------------------------

三、綜合上述兩種移動和改動模式

? 通過上面,我們知道 ;命令可幫我們定位到下一個目標字符上。而 . 命令可反復上次改動,這樣我們配合使用 ;. 就可完畢將 + 號改動成 [ ]+[ ]了。

如今比方有一行這種代碼:

string str="You"+"are"+"my"+"world";
我們想將 + 號所有改為 [ ]+[ ] 。過程例如以下:

1.先 f+ ?光標定位到第一個 + 號

2.小s命令。刪除光標下的+ 號字符 進入插入模式。然後鍵入: [ ]+[ ]

3.Esc退出改動

4.使用 ;號命名反復上次查找,將光標定位

5.使用 . 號命令反復上次改動

6.不斷反復步驟4和5,直到改動完為止。


vim學習之以退為進——可反復移動和可反復改動的美妙結合