vim學習之以退爲進——可重複移動和可重複修改的美妙結合

時間: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,直到修改完爲止。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章