411
技術社區[雲棲]
《Vim實用技巧(第2版)》——1.3 以退為進
本節書摘來自異步社區《Vim實用技巧(第2版)》一書中的第1章,第1.3節,作者:【英】Drew Neil(尼爾)著,更多章節內容可以訪問雲棲社區“異步社區”公眾號查看
1.3 以退為進
我們可以用一種常用的Vim操作習慣在一個字符前後各添加一個空格。乍一看,這種方法有點古怪,不過其好處是可重複,這將使我們可以事半功倍地完成工作。
假設有一行代碼看起來是這樣的:
the_vim_way/3_concat.js
var foo = "method("+argument1+","+argument2+")";
在JavaScript裏把字符串連接到一起從來都不美觀,但可以像下麵這樣在 + 號前後各添加一個空格,讓肉眼更容易識別。
var foo = "method(" + argument1 + "," + argument2 + ")";
使修改可重複
下麵的慣用方法可以解決這個問題。
s 命令把兩個操作合並為一個:它先刪除光標下的字符,然後進入插入模式。在刪除 + 號後,先輸入␣+␣,然後退出插入模式。
先後退一步,然後前進三步,這是個奇怪的小花招,看起來可能不夠直接。但這樣做最大的好處是:我們可以用 . 命令重複這一修改。我們所要做的隻是把光標移到下一個 + 號處,然後用 . 命令重複這一操作即可。
使移動可重複
本例中還有另外一個小竅門。f{char} 命令讓Vim查找下一處指定字符出現的位置,如果找到了,就直接把光標移到那裏(參見 :h f)。因此,輸入 f+ 時,光標會直接移到下一個 + 號所在的位置。我們將會在技巧50裏學到更多關於 f{char} 命令的知識。
完成第一處修改後,可以重複按 f+ 命令跳到下一個 + 號所在的位置。不過,還有一種更好的方法可以用。; 命令會重複查找上次 f 命令所查找的字符,因此不用輸入4次 f+,而是隻輸入一次,後麵跟著再用3次 ; 命令。
合而為一
; 命令帶我們到下一個目標字符上, . 命令則重複上次的修改。因此,可以連續輸入3次 ;. 來完成全部修改。看起來是不是很熟悉?
與其和Vim區分模式的編輯模型做鬥爭,倒不如與它一起協同工作。然後,你就會發現它能把特定任務變得多麼的容易。
最後更新:2017-06-06 07:38:12
上一篇:
《Vim實用技巧(第2版)》——1.4 執行、重複、回退
下一篇:
《Vim實用技巧(第2版)》——1.2 不要自我重複
Jackson 高性能的JSON處理 android/移動開發必備jackson
c++ c# java 區別小匯
一步一步寫正則 1:金額正則表達式
自定義帶圖標的Preferecnce-----類ListPreference實現
SQL2005附加數據庫提示——版本為655,無法打開,此服務器支持611版本
vmware安裝係統注意點
windows media player 控件的常用屬性及方法
阿裏雲RDS PostgreSQL OSS 外部表 - 並行寫提速案例
Couldn't get connection because we are at maximum connection count (150/150) and there are none 異常解決
Openstack neutron 報錯503故障排查