利用 Xcode 13 的 Vim 模式寫程式,比方 duplicate line(複製貼上行)
江湖傳說程式高手都會用 Vim 打程式,因為它有以下好處:
- 不用動到滑鼠,手指完全在鍵盤上操作,達到神人般快如閃電的開發速度。
- 有許多特別的指令,比方它有 Xcode 沒有的 duplicate line,輸入 yy5p 可複製貼上 5 行程式。
從 Xcode 13 開始,我們也可以在 Xcode 用 vim 模式打程式了。彼得潘雖然不是 vim 高手,接下來也來試試 vim 打字的滋味,假裝自己是程式高手。(ps: 彼得潘跟 Vim 最熟的時候應該是研究所用 Linux 時候,其實離現在也沒有很久啦。)
打開 Xcode 的 Vim 編輯模式
方法 1: 從 Quick Actions 啟動 Vim Mode。
方法 2: 點選 Xcode menu 的 Editor > Vim Mode。
Vim 操作畫面
Vim 操作畫面一開始是指令模式,此時不能打字,但可以輸入一些特別的指令。如下圖所示,黑色長條是游標,下方紅色框框區塊是 Vim 常用的指令說明。
編輯模式 & 指令模式的切換
在指令模式時,輸入 i 可進入編輯模式( i 是 insert 的縮寫),此時可以開始打字。在編輯模式時,按下 esc 可回到指令模式,開始輸入一些特殊的指令。
接下來讓我們玩玩一些 Vim 常用的指令吧。
刪除整行程式的 dd
輸入 dd
可刪除整行程式,比方我們想將 helicopter 的前兩行歌詞刪除,連續按兩次 dd 後,前兩行歌詞被刪除了。(ps: d 是 delete 的縮寫,意思是刪除。)
duplicate line 的 yyp
輸入 yyp
可複製貼上整行程式,比方我們想將感人的最後一句歌詞 I’m a helicopter ’cause I love you so 再寫一次,輸入 yyp 後,它被複製貼上了。(ps: y 是 yank 的縮寫,意思是複製。p 是 paste 的縮寫,意思是貼上。)
yy 是複製,p 是貼上,所以如果想再多打幾行 I’m a helicopter ’cause I love you so,只要再按 p 即可。比方再按 3 次 p,現在我們有滿滿五行的 I’m a helicopter ’cause I love you so。
搭配數字指定次數
Vim 的指令通常前方可加上數字指定次數。
- 複製貼上多行程式
輸入 yy5p 複製 I’m a helicopter ’cause I love you so,然後將它連貼 5 行。
我們也可以複製多行程式,比方輸入 2yyjp 將複製兩行程式,將游標下移一行,然後貼上兩行程式。(ps: j 可下移游標)
- 刪除多行程式
輸入 3dd 刪除 3 行程式。
- 向上 / 向下移動 n 行
輸入 3k 可向上移動 3 行,輸入 3j 可向下移動 3 行。
參考連結
Vim 還有許多強大的指令,有興趣的朋友可進一步參考 Vim Cheat Sheet 的說明。