[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
調整目前所在行到畫面下方