2014年3月26日 星期三

Vim - 在畫面中移動

Vim中把整篇文章當作一個超長字串來看的時候, 有這些編輯移動方式

四方向移動(hjkl)
hjkl, 用直覺聯想 h 與 l 分別將游標往左與右移動一個字元, j 往下一行, k 往上一行, 如果習慣用標準鍵位打字會發現在文章中上下移動不過就是右手食指與中指的事, 很方便.

行內移動(0^$)
0|$, 將游標移動到行內第一及最後一個字元, ^則是移動到行內第一個不是空白的字元

尋找同行字元x(fx|tx)
fx|Fx 與 tx|Tx, 游標移動到同一行中的下一個x字元, Fx與Tx則是往回移動,
fx|Fx 與 tx|Tx 的差別是fx|Fx(Find)將游標停在字元上, tx|Tx(To)則是停在字元前

括號間移動
% - 尋找下一個出現的括號 例如(), [] 或 {} 並將游標停在上面, 繼續按游標會在與之成對的括號間來回移動
[( | [{ - 往回找沒關好的(或是{
]) | ]} - 往前找沒關好的)或是}

文章內移動
?G - 移動到文章內第?行
gg - 移動到文章頭
G - 移動到文章尾
?% - 移動到文章百分之?處

跳躍點(Jump)間移動
命令能造成游標移動出本行稱之為一個Jump(字元搜尋fx|tx 與四方向移動造成的
不算跳躍),
此時的位置會被記錄下來成為跳躍點
`` - 在當前位置與上一跳躍點間移動
Ctrl+O|I - 跳回上|下一個跳躍點
:jumps - 列出跳躍點
:marks - 列出位置標記
m[a-z] - 標記當前位置, 總共可以記錄26個
`[a-z] - 跳回先前紀錄的跳躍點
'[a-z] - 跳回先前紀錄的紀錄點所在行首
特殊mark:
' - Jump前的游標位置
" - 上次編輯檔案時的游標位置
[ - 上次變動的開頭
] - 上次變動的結尾

同畫面內移動
H - 移動到畫面內第一行
M - 移動到畫面內中間行
L - 移動到畫面內最下一行

翻頁(Scrolling)
Ctrl+E|Y - 上下翻一行
Ctrl+U|D - 上下翻半頁
Ctrl+F|B - 上下翻一頁
zt - 畫面往下翻直到游標所在行變成第一行
zz - 捲動畫面畫面直到游標所在行位於畫面中間
zb - 畫面往上翻直到游標所在行變成最後一行

了解現在游標相對於全部文章的位置
.Ctrl+G - 顯示在螢幕下方, 順序為 檔名 行數 總行數 位於文章內%處 第幾個字
.:set number - 每行前方顯示行數的開關
.:set ruler - 常駐顯示在右下角, 順序為 行數 第幾個字 位於文章內%處

沒有留言:

張貼留言