[Vim] 操作模式
TL;DR
參考資料
本篇有些圖片取自高見龍老師在IT幫的鐵人賽文章中。
僅供紀錄學習用途,如有不妥麻煩告知。
相關連結
模式介紹
操作方式主要分為normal模式,insert模式,visual模式。
我們一般在移動都是使用normal模式。
insert模式顧名思義就是插入(即在輸入文字時會使用的模式。
而visual模式則是需要選取複製貼上時會使用的模式。
可以在不同模式之間切換,如果要回到normal模式的時候可以使用esc按鍵,或是使用ctrl+[。
normal:一般模式insert:插入(輸入)模式visual:選取模式
esc( orctrl+[):退回一般模式
在windows系統上,如果是使用注音輸入法則無法使用ctrl+[
必須切換成純英文輸入法才可以使用ctrl+[跳脫不同模式。
移動
基本上不推薦在insert模式下移動,如果要移動或是選取的話要先回到normal模式之下再移動。 以下沒有特別說明模式皆為normal模式移動。
在vim裡面有很多種方法,所以可以根據自己的需求選擇最適合自己的指令
基礎上下左右
我們移動可以使用上下左右按鍵,但是因為使用上下左右時,右手需要離開鍵盤主要打字區域,所以不建議使用,可以使用hjkl來移動。
上,下,左,右分別對應k,j,h,l
折行上下控制
有時候在同一行的時候,只是礙於寬度的關係導致明明是同一行,卻折到第二行。這時候Vim仍然會將其視為同一行,所以j,k的上下切換會無效,但是如果這時候仍想切換的時候,可以使用g+j、g+k來上下切換。
- 折行時可以使用
g+j、g+k來在同一行內上下切換
跳往指定行號
可以直接使用行號+G去前往該行,例如輸入15G可以直接前往15行
行號+G前往該行號第一個文字的位置(等同前往該行+^)
切換文章頂端/底部
可以使用gg回到文字頂端,G回到文字底部
gg回到文字頂端,G回到文字底端
切換下(上)一段落(paragraph)
}跳到下一個段落(利用空白行來區分段落),{回到上一個段落。
}跳到下一個段落,{回到上一個段落
切換下(上)文字(word)
使用w可以前往下一個Word,b前往上一個Word
但是使用小寫時,如果像是Andy’s或是有“、‘等等含標點符號時,就會沒辦法跳到下一個字
這時候可以使用大寫W,忽略標點符號並跳到下個Word,大寫B跳到前一個Word
另外還有一個比較少使用的,可以使用e跳到字尾(如果已在該字字尾會跳到下一個文字字尾),E忽略標點跳到字尾。
w前往下一個Word、W忽略標點前往下一個Wordb前往上一個Word、B忽略標點前往上一個Worde跳到字尾、E忽略標點跳到字尾
同行指定文字跳躍
如果想要在該行快速跳到下一個指定的字時,可以使用f+key,但是只能在同一行內使用
相對的可以使用F+key回到上一個指定的字
f+key可直接跳到該行的下一個指定keyF+key跳到上一個指定的key
跳往行首(末)
行內可以使用0來跳到行首,^跳到該行第一個文字,$跳到行末(包含空白)
0跳到行首(包含空白)^跳到該行第一個字$跳到行末(包含空白)
調整所在行視窗位置
可以使用zz,zt,zb來調整目前所在行在整個視窗的位置,並且可以搭配設定檔來設置zt,zb的位置(會參考滾動時距離多少就會開始滾動的設定)
zz可以將目前所在行設定在畫面中間區域
zt(t代表top的意思)可以將目前所在行設定到畫面上方區域(如果下方已經沒有段落了,可能會出現~符號代表沒有資料的區域)
zb可以將目前所在行設定到畫面下方區域
zz調整目前所在行到畫面中間zt調整目前所在行到畫面上方zb調整目前所在行到畫面下方