基本操作:hjkl
当前位置插入:i
当前位置补充:a
当前行换行插入:o
当前行上一行插入:O
替换字母w为a,移动到w上:ra
进入替换模式:ctrl + r
向前寻找可变函数名: ctrl + P
向后寻找可变函数名: ctrl + N
到文件首部:gg
到文件尾部:G
到文件第50行:50G
删除某个字母:x
删除某行:dd
删除两行:2dd
在视图模式下选中后删除:d
删除一个词:dw
删除2个词:d2w
删除到行尾:d$
删除到行首:d^
--------- y 代表复制到缓存中-----------
yy 复制当前行整行的内容到vi缓冲区
yw 复制当前光标到单词尾字符的内容到vi缓冲区
y$ 复制当前光标到行尾的内容到vi缓冲区
y^ 复制当前光标到行首的内容到vi缓冲区
p 读取vi缓冲区中的内容,并粘贴到光标当前的位置(不覆盖文件已有的内容)
/word 从上而下查 /是从上而下写的吧
?word 从下而上查找 字符在哪儿呢(?)回头找找吧
n 定位下一个匹配的 相当于向下查找下一个 next
N 定位上一个匹配的 相当于向上查找上一个
:s/1/2 搜索当前行第一个1并用2代替 search
:s/1/2/g 搜索当前行所有的1并用2代替 global
:#,#s/1/2/g 在#,#间搜索所有1并用2替换
:%s/1/2/g 在整个文档中将1替换为2 100%(全部)
:s/1/2/c 每次替换都给出提示确认 cue提示
转载于https://www.cnblogs.com/doseoer/p/6241443.html
-
複製某字串
狀況一: 獨立的單字 (以空白或標點符號分隔開的)
yw
2yw (複製二個單字)狀況二: 非獨立的單字
先按 v 再移動游標到結束的地方 (以游標為準), 再按 y
-
視窗操作
逗號是分隔用,勿輸入。以第一組按鍵為例,先按CTRL及w鍵,放開後按n鍵(大小寫有差)。
Ctrl + w, n 以水平軸為分界,新開一個視窗
Ctrl + w, s 以水平軸為分界,分割出一個新視窗,並且開啟剛剛游標所在視窗的檔案
Ctrl + w, v 以垂直軸為分界,新開一個視窗,並且開啟剛剛游標所在視窗的檔案
Ctrl + w, f 將游標所指檔案名稱另開在新的水平視窗
Ctrl + w, x 將水平/垂直視窗,上下/左右對換
Ctrl + w, R 將視窗都向上移動,最上方的視窗移到最下方 (rotate)
Ctrl + w, r 將視窗都向下移動,最下方的視窗移到最上方 (rotate)
Ctrl + w, o 關閉游標所在視窗以外所有視窗 (only one)
Ctrl + w, c 關閉游標所在視窗,不能關閉最後一個視窗
Ctrl + w, q 關閉游標所在視窗,若是最後一個視窗則自動離開vim
Ctrl + w, _ 將游標所在視窗列數(高度)放到最大,其它視窗只保留一列/行內容及一列檔名
Ctrl + w, 數字_ 將游標所在視窗高度設為指定列數
Ctrl + w, | 將游標所在視窗行數(寬度)放到最大,其它視窗只保留一列/行內容及一列檔名
Ctrl + w, 數字| 將游標所在視窗寬度設為指定行數
Ctrl + w, = 讓所有視窗等高(目前所在視窗由winheight、winwidth指定)
Ctrl + w, N- 減少目前視窗高度N列,N可省略,預設為1
Ctrl + w, N+ 增加目前視窗高度N列,N可省略,預設為1
Ctrl + w, t 切換游標到最上方視窗
Ctrl + w, b 切換游標到最下方視窗
Ctrl + w, 上、下、左、右方向鍵 切換游標到上/下/左/右方視窗
Ctrl + w, k, j, h, l 方向鍵 切換游標到上/下/左/右方視窗(即一般模式以字母鍵移動游標)
Ctrl + w, K, J, H, L 方向鍵 將游標所在視窗向上/下/左/右視窗(這一組是移動視窗,上一組是移動游標)註:所有的CTRL+W開頭按鍵亦可以下列方式操作
CTRL + w, n === CTRL + w, CTRL + N (變大寫)
-
復原的操作
復原上一次動作(無限次數) ==> u
取消上一次復原 ==> CTRL + r (Windows版的gvim選單中是寫^R,但是我測試時似乎大小寫均可)
-
標記的運用
做標記:
m字母游標跳到標記處
字母 跳到標記時位置(列與行都一樣) '字母 跳到標記那一列第一個字母/數字出現處,如同按
字母再按^以往都是用:列號1,列號2再加個命令,現在可以變成:
先到列號1,按mt
再到列號2,按mb
以後使用時就輸入:'t,'b 命令
-
外部命令
單純執行外部命令
:!命令執行外部命令並將輸出結果插到目前編輯中檔案
:r !命令把列號1到列號2指定資料丟給外部程式處理後再取回來(假設列號1已用mt標記;列號2已用mb標記)
:'t,'b !sort 't到'b排序
:'t,'b !awk '{print 2 " " $1}' 將第一、二、三行資料反過來放,如下所示:aaa bbb ccc ccc bbb aaa xxx yyy zzz 變成-> zzz yyy xxx 111 222 333 333 222 111
參考資料:http://www.yolinux.com/TUTORIALS/LinuxTutorialAdvanced_vi.html