查找變量的聲明:
gd 跳至當前光標所在的變量的聲明處
`. 跳轉至上次編輯位置
光標的移動:
w 移到下一個字的開頭
W 移到下一個字的開頭,忽略標點符號
b 移到前一個字的開頭
B 移到前一個字的開頭,忽略標點符號
L 移到屏幕的最後一行
M 移到屏幕的中間一行
H 移到屏幕的第一行
e 移到下一個字的結尾
E 移到下一個字的結尾,忽略標點符號
^ 跳至行首的第一個字符
$ 跳至行尾
W 移到下一個字的開頭,忽略標點符號
b 移到前一個字的開頭
B 移到前一個字的開頭,忽略標點符號
L 移到屏幕的最後一行
M 移到屏幕的中間一行
H 移到屏幕的第一行
e 移到下一個字的結尾
E 移到下一個字的結尾,忽略標點符號
^ 跳至行首的第一個字符
$ 跳至行尾
指定的行跳轉:
1,在編輯模式下輸入
ngg 或者 nG
n爲指定的行數(如25)
25gg或者25G 跳轉到第25行.
gg 跳至文件的第一行
G 移到文件的最後一行
2,在命令模式下輸入行號n
: n
3,如果想打開文件即跳轉
vim +n FileName
4,顯示文件信息行數等;
Ctrl+g 或者 命令模式下:f
vi 中的 shell 轉義命令
選項 作用:!command 執行 shell 的 command 命令,如 :!ls
:!! 執行前一個 shell 命令
:r!command 讀取 command 命令的輸入並插入,如 :r!ls 會先執行 ls,然後讀入內容
在 vi 中縮進文本
選項 作用ctrl+i或 tab 插入文本時,插入移動的寬度,移動寬度是事先定義好的
:set ai 打開自動縮進
:set sw=n 將移動寬度設置爲 n 個字符
n> 使 n 行都向右移動一個寬度,例如 3>> 就將接下來的三行每行都向右移動一個移動寬度
== 自動縮進當前行
> 塊右移
< 塊左移
插入模式
i 從當前光標處進入插入模式I 進入插入模式,並置光標於行首
a 追加模式,置光標於當前光標之後
A 追加模式,置光標於行末
o 在當前行之下新加一行,並進入插入模式
O 在當前行之上新加一行,並進入插入模式
Esc 退出插入模式
可視模式
標記文本v 進入可視模式,單字符模式
V 進入可視模式,行模式
ctrl+v 進入可視模式,列模式,類似於UE的列模式
o 跳轉光標到選中塊的另一個端點
U 將選中塊中的內容轉成大寫
O 跳轉光標到塊的另一個端點
編輯
xp 交換當前字符和下一個字符
u 撤銷
ctrl+r 重做
.
重複上一個編輯命令
~ 切換大小寫,當前字符
書籤
m(a-z) 用一個字母來標記當前位置,如用 mz 表示標記 z'(a-z) 將光標移動到指定的標記,如用 'z 表示移動到 z
ma 把當前位置存成標籤a
`a 跳轉到標籤a處
查找
fx 在當前行中找x字符,找到了就跳轉至
; 重複上一個f命令,而不用重複的輸入fx
tx 與fx類似,但是隻是跳轉到x的前一個字符處
Fx 跟fx的方向相反
),( 跳轉到上/下一個語句
* 查找光標所在處的單詞,向下查找
# 查找光標所在處的單詞,向上查找