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,直到改動完為止。
vim學習之以退為進——可反復移動和可反復改動的美妙結合