同時按[Alt]+[j] 或[Alt]+[k] 可控制代碼向上、向下移。
基礎
字符移動
k 上移 k
h 左移 h l
l 右移 j
j 下移
你也可以使用鍵盤上的方向鍵來移動,但這么做h j k l的存在就失去了意義
之所以使用h j k l來控制方向,其主要目的是讓你的手不離開鍵盤中心,從而提高效率
tips:在命令前加上數字代表命令執行次數,如:5k,表示上移5行
單詞移動
W w 移動到下一個單詞開頭 E e 移動到下一個單詞結尾 B b 倒退到上一個單詞開頭
需要注意的是,E會忽略標點符號,如:I‘m,e會當成兩個單詞,E則不會
同樣,在命令前加上數字代表執行次數,如:2w,表示往下移動2個單詞
開頭我也許會多說幾遍,因為這個技巧很重要
整行移動
0 移動到行首 $ 移動到行末 + 移動到下一行開頭 - 移動到上一行開頭
這里需要注意的是+ -和上面的j k有什么不同之處
j k也是移動到上一行和下一行,但它們移動的是光標所在的位置
+ -不管你的光標在何處,總是移動到下一行或上一行的行首
進階
滾屏
Ctrl+f 往前滾動一整屏
Ctrl+b 往后滾動一整屏 Ctrl+d 往前滾動半屏 Ctrl+u 往后滾動半屏 Ctrl+e 往后滾動一行 Ctrl+y 往前滾動一行
看似比較多,但是可以根據鍵盤的位置來進行記憶,並且下面兩個也不常用
上面的滾屏都有一個共同點,就是會改變光標的位置,且屏幕也在改變
如果想讓光標維持在原來的位置實現滾屏請看下面
用z調整光標
z<Enter> 將光標所在行移動到屏幕頂端
z. 將光標所在行移動到屏幕中間
z- 將光標所在行移動到屏幕低端
tips:980z<Enter>可以將第980行移動到屏幕頂端
好吧,有時候你其實不想滾屏,你只想在當前屏幕中移動
請往下看
在屏幕中移動
H 移動到屏幕頂端的行
M 移動到屏幕中央的行
L 移動到屏幕底端的行
nH 移動到屏幕頂端往下的第n行
nL 移動到屏幕頂端往上的第n行
據我猜測這三個字母應該是HIgh、Middle和Low的縮寫,其實挺好記的
多練習幾遍就行了,需要注意的是:這里只是光標的位置變化,和上面兩種不同
tips:你可以用+ -和j k實現同樣的位置變化,只不過要操作多次而已
+ -和j k的區別忘了嗎?往上看看吧
在當前行移動
^ 移動到當前行的第一個非空格處
n| 移動到當前行的第n列
這里的^與上面的0通常情況下表示的位置是一樣的
而n|,個人感覺還沒有h l方便,慢慢的數出行數還不如直接按着h l 左右移
根據文本塊移動
所謂的文本塊也就是句子、段落、小節等
( 移動到當前句子開頭
) 移動到下一個句子開頭
{ 移動到當前這一段開頭
} 移動到下一段開頭
[[ 移動到當前這一節的開頭
]] 移動到下一節的開頭
其中,VIM以? . !等符號來標記一個句子
空白行來標記一個段落
用節宏來標記一個節(節宏是什么我還沒搞清楚)
根據行號來移動
Ctrl+g 顯示當前行信息
nG 轉至第n行
G 轉至文本末尾
gg 移至文本開頭
如果你不知道當前是多少行的話就可以用Ctrl+g來查看
如果想轉到第800行,可以用800G
其實z命令也可以做到,並且把光標移動到第一行