利用 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 的說明。

--

--

彼得潘的 iOS App Neverland
彼得潘的 Swift iOS App 開發問題解答集

彼得潘的iOS App程式設計入門,文組生的iOS App程式設計入門講師,彼得潘的 Swift 程式設計入門,App程式設計入門作者,http://apppeterpan.strikingly.com