移動
?????????? k (上行)
h (左移)??????????? l (右移)
?????????? j (下行)?????????
0行頭 $行尾 e 單詞結尾 w單詞開頭 Ctrl+e 窗口內容向下移動 Ctrl+y窗口內容向上移動
Ctrl-g 顯示當前光標所在位置和文件狀態信息。
Shift-G 用于將光標跳轉至文件最后一行。
LineNumber Shift-G 將光標移動至該行號代表的行
字符編輯
i 在當前位置開始編輯
a 在當前位置之后開始編輯
x 刪除光標所在位置的字符
A 在當前行末尾開始編輯
dw 從當前光標刪除至單字/單詞末尾
d$ 從當前光標刪除至當前行末尾
dd 刪除整行
u 撤消以前的操作
U 撤消在一行中所做的改動
CTRL-R??? 撤消以前的撤消命令,恢復以前的操作結果
p 重新置入已經刪除的文本內容
r 替換光標所在位置的字符
cw 替換當前光標到單詞的末尾的內容
c$ 替換當前光標到行末的內容
小寫的 o 在光標下方打開新的一行并將光標置于新開的行首,進入插入模式
大寫的 O 在光標上方打開新的一行并將光標置于新開的行首,進入插入模式
小寫的 a 在光標所在位置之后插入文本
大寫的 A 在光標所在行的行末之后插入文本
大寫的 R 進入替換模式,直至按 <ESC> 鍵退出替換模式而進入正常模式。
%? 將光標移動到配對的括號上
搜索替換
?? 輸入 / 然后緊隨一個字符串是則是在當前所編輯的文檔中向后查找該字符串。
???? 輸入問號 ? 然后緊隨一個字符串是則是在當前所編輯的文檔中向前查找該字
???? 符串。完成一次查找之后按 n 鍵則是重復上一次的命令,可在同一方向上查
???? 找下一個字符串所在;或者按 Shift-N 向相反方向查找下該字符串所在。
?? 在一行內替換頭一個字符串 old 為新的字符串 new,請輸入? :s/old/new
???? 在一行內替換所有的字符串 old 為新的字符串 new,請輸入? :s/old/new/g
???? 在兩行內替換所有的字符串 old 為新的字符串 new,請輸入? :#,#s/old/new/g
???? 在文件內替換所有的字符串 old 為新的字符串 new,請輸入? :%s/old/new/g
???? 進行全文替換時詢問用戶確認每個替換需添加 c 選項,請輸入 :%s/old/new/gc
命令格式
?? 在正常模式下一個命令的格式是∶
?????? [number]?? command?? object???? 或者???? command??? [number]?? object
???? 其意是∶
?????? number - 代表的是命令執行的次數
?????? command - 代表要做的事情,比如 d 代表刪除
?????? object - 代表要操作的對象,比如 w 代表單字/單詞,$ 代表到行末等等。
文件操作
? :w FILENAME? 可將當前 VIM 中正在編輯的文件保存到名為 FILENAME 的文
???? 件中。
? :#,#w FILENAME 可將當前編輯文件第 # 行至第 # 行的內容保存到文件
???? FILENAME 中。
? :r FILENAME 可提取磁盤文件 FILENAME 并將其插入到當前文件的光標位置
???? 后面。