基本跳轉:
hjkl:左下上右
HML:當前屏幕頂、中、底部
web:下一單詞詞首、下一單詞詞尾、前一單詞詞首
gg:文件首 G:文件末尾 ngg/nG:第n行
ta:移動到所在行之后第一個字符a前一字符
fa:移動到所在行之后第一個字符a處
Ta:移動到所在行之前最后一個字符a的后一個字符
Fa:移動到所在行之前最后一個字符a處
ctrl+F:下一頁
ctrl+B:上一頁
ctrl+D:下半頁
ctrl+U:上半頁
ctrl+E:下一行
ctrl+Y:上一行
^$0:行首、行尾、第一個字符
dt定位符:一直刪除到該行的定位符處
ctrl+i:跳轉到前面第x詞光標所在位置
gg=G:重新縮進
shift+v行選模式:
i { :選中光標所在中括號之間所有內容,不包括中括號
a { :選中光標所在中括號之間所有內容,包括中括號
ib / i(:選中光標所在小括號之間所有內容,不包括小括號
ab / a(:選中光標所在小括號之間所有內容,包括小括號
v模式:
i {、(、<、[
i w:選中一個單詞
i s:選中一個句子
i p:選中一個段落
文件跳轉:
如果vim打開了多個文件,可以通過
:n 跳轉到后一個文件
:n filename 跳轉到filename
:prev 跳轉到后一個文件
:first 跳轉到第一個文件
:last 跳轉到最后一個文件
:e anotherFile 新增一個編輯文件 :e#返回之前的文件
:bN 跳轉到打開的第N個文件
多窗口:
1)橫向切割窗口
:new name (保存口name為文件名)
:split name (sp name)
:[n] split(vsplit) [++opt] [+cmd] [file]
opt:vim命令選項
cmd:欲在新窗口中執行的命令
file:新窗口打開的文件
2)縱向切割窗口
:vsplit name (vsp name)
3)關閉多窗口
:q! 、 :close(暫時關閉窗口,其內容還存在緩存中)
:tabc 關閉當前窗口
:tabo 關閉所有窗口
4)窗口切換
ctrl + w + k/j/h/l 上下左右切換窗口
ctrl + w + w 依次切換窗口
ctrl + w + t:移動到最左上角的窗口
ctrl + w + b:移動到最右下角的窗口
5)窗口大小調整
ctrl + w + “+” 窗口縱向擴大
ctrl + w + "-" 窗口縱向縮小
:resize num (:res num)窗口顯示num行
:resize +num (:res +num)窗口高度增加num行
:resize -num (:res -num)窗口高度減少num行
縱向調整:在resize前加vertical
6)窗口重命名
:f new_name
7)文件瀏覽
:Ex 開啟目錄瀏覽器
:Sex 水平切割窗口,並開啟目錄瀏覽器
8)vi與shell切換
:shell 不關閉vi的情況下切換到shell命令行
:exit 從shell回到vi
9)移動窗口
ctrl + w + r:向右或向下交換窗口位置
ctrl + w + R:向左或向上交換窗口位置
查找與替換
:s/str1/str2/ 將該行第一個str1替換為str2
:s/str1/str2/g 將該行所有str1替換為str2
:n,$s/str1/str2 將第n行到最后一行,每一行的第一個str1替換為str2 n換成.表示從當前行到最后一行
:n,$s/str1/str2/g 將第n行到最后一行,每一行的所有str1替換為str2 n換成.表示從當前行到最后一行
:%s/str1/str2 將每一行的第一個str1替換為str2
:%s/str1/str2/g 將每一行的所有str1替換為str2
如果替換字符中存在/可以用#作為替換命令分割符
續:http://www.2cto.com/os/201309/242189.html
