移動光標
- h,j,k,l 上,下,左,右
- ctrl-e 移動頁面
- ctrl-f 上翻一頁
- ctrl-b 下翻一頁
- ctrl-u 上翻半頁
- ctrl-d 下翻半頁
- w 跳到下一個字首,按標點或單詞分割
- W 跳到下一個字首,長跳,如end-of-line被認爲是一個字
- e 跳到下一個字尾
- E 跳到下一個字尾,長跳
- b 跳到上一個字
- B 跳到上一個字,長跳
- 0 跳至行首,無論有無縮進,就是跳到第0個字符
- ^ 跳至行首的第一個字符
- $ 跳至行尾
- gg 跳至文首
- G 調至文尾
- 5gg/5G 調至第5行
- gd 跳至當前光標所在的變量的聲明處
- fx 在當前行中找x字符,找到了就跳轉至
- ; 重複上一個f命令,而不用重複的輸入fx
- * 查找光標所在處的單詞,向下查找
- # 查找光標所在處的單詞,向上查找
刪除複製
- dd 刪除光標所在行
- dw 刪除一個字(word)
- d/D刪除到行末x刪除當前字符X刪除前一個字符yy複製一行yw複製一個字y/Y 複製到行末
- p 粘貼粘貼板的內容到當前行的下面
- P 粘貼粘貼板的內容到當前行的上面
插入模式
- i 從當前光標處進入插入模式
- I 進入插入模式,並置光標於行首
- a 追加模式,置光標於當前光標以後
- A 追加模式,置光標於行末
- o 在當前行之下新加一行,並進入插入模式
- O 在當前行之上新加一行,並進入插入模式
- Esc 退出插入模式
編輯
- J 將下一行和當前行鏈接爲一行
- cc 刪除當前行並進入編輯模式
- cw 刪除當前字,並進入編輯模式
- c$ 擦除從當前位置至行末的內容,並進入編輯模式
- s 刪除當前字符並進入編輯模式
- S 刪除光標所在行並進入編輯模式
- xp 交換當前字符和下一個字符
- u 撤銷
- ctrl+r 重作
- ~ 切換大小寫,當前字符
- >> 將當前行右移一個單位
- << 將當前行左移一個單位(一個tab符)
- == 自動縮進當前行
查找替換
- /pattern 向後搜索字符串pattern
- ?pattern 向前搜索字符串pattern
- "\c" 忽略大小寫
- "\C" 大小寫敏感
- n 下一個匹配(若是是/搜索,則是向下的下一個,?搜索則是向上的下一個)
- N 上一個匹配(同上)
- :%s/old/new/g 搜索整個文件,將全部的old替換爲new
- :%s/old/new/gc 搜索整個文件,將全部的old替換爲new,每次都要你確認是否替換
退出編輯器
- :w 將緩衝區寫入文件,即保存修改
- :wq 保存修改並退出
- :x 保存修改並退出
- :q 退出,若是對緩衝區進行過修改,則會提示
- :q! 強制退出,放棄修改
多文件編輯
- vim file1.. 同時打開多個文件
- :args 顯示當前編輯文件
- :next 切換到下個文件
- :prev 切換到前個文件
- :next! 不保存當前編輯文件並切換到下個文件
- :prev! 不保存當前編輯文件並切換到上個文件
- :wnext 保存當前編輯文件並切換到下個文件
- :wprev 保存當前編輯文件並切換到上個文件
- :first 定位首文件
- :last 定位尾文件
- ctrl+^ 快速在最近打開的兩個文件間切換
- :split[sp] 把當前文件水平分割
- :split file 把當前窗口水平分割, file
- :vsplit[vsp] file 把當前窗口垂直分割, file
- :new file 同split file
- :close 關閉當前窗口
- :only 只顯示當前窗口, 關閉全部其餘的窗口
- :all 打開全部的窗口
- :vertical all 打開全部的窗口, 垂直打開
- :qall 對全部窗口執行:q操做
- :qall! 對全部窗口執行:q!操做
- :wall 對全部窗口執行:w操做
- :wqall 對全部窗口執行:wq操做
- ctrl-w h 跳轉到左邊的窗口
- ctrl-w j 跳轉到下面的窗口
- ctrl-w k 跳轉到上面的窗口
- ctrl-w l 跳轉到右邊的窗口
- ctrl-w t 跳轉到最頂上的窗口
- ctrl-w b 跳轉到最底下的窗口
多標籤編輯
- :tabedit file 在新標籤中打開文件file
- :tab split file 在新標籤中打開文件file
- :tabp 切換到前一個標籤
- :tabn 切換到後一個標籤
- :tabc 關閉當前標籤
- :tabo 關閉其餘標籤
- gt 到下一個tab
- gT 到上一個tab
- 0gt 跳到第一個tab
- 5gt 跳到第五個tab
執行shell命令
- 在命令模式下輸入":sh",能夠運行至關於在字符模式下,到輸入結束想回到VIM編輯器中用exit,ctrl+D返回VIM編輯器
- 能夠"!command",運行結束後自動回到VIM編輯器中
- 用「Ctrl+Z「回到shell,用fg返回編輯
- :!make -> 直接在當前目錄下運行make指令
VIM啓動項
- -o[n] 以水平分屏的方式打開多個文件
- -O[n] 以垂直分屏的方式打開多個文件
自動排版
在粘貼了一些代碼以後,vim變得比較亂,只要執行gg=G就能搞定html
如何在vim中編譯程序
- 在vim中能夠完成make,並且能夠將編譯的結果也顯示在vim裏,先執行 :copen 命令,將結果輸出的窗口打開,而後執行 :make
- 編譯後的結果就顯示在了copen打開的小窗口裏了,並且用鼠標雙擊錯誤信息,就會跳轉到發生錯誤的行。
buffer操做
- buffer狀態
-
- a (當前被激活緩衝區)
- h (隱藏的緩衝區)
- % (當前的緩衝區)
- # (交換緩衝區)
- = (只讀緩衝區)
- + (已經更改的緩衝區)
VIM 操做目錄
- 打開目錄
- vim .
- vim a-path/
如下操做在操做目錄時生效
p,P,t,u,U,x,v,o,r,sshell
- c 使當前打開的目錄成爲當前目錄
- d 建立目錄
- % 建立文件
- D 刪除文件/目錄
- - 轉到上層目錄
- gb 轉到上一個 bookmarked directory
- i 改變目錄文件列表方式
- ^l 刷新當前打開的目錄
- mf - 標記文件
- mu - unmark all marked files
- mz - Compress/decompress marked files
- gh 顯示/不顯示隱藏文件( dot-files)
- ^h 編輯隱藏文件列表
- a 轉換顯示模式, all - hide - unhide
- qf diplay infomation about file
- qb list the bookmarked directories and directory traversal history
- gi Display information on file
- md - 將標記的文件(mf標記文件)使用 diff 模式
- me - 編輯標記的文件,只顯示一個,其他放入 buffer 中
- mm - move marked files to marked-file target directory
mc - copyvim
vim 中複製/移動文件
- mt - 移動到的目錄
- mf - 標記要移動的文件
- mc - 移動/複製
- R 移動文件
打開當前編輯文件的目錄
- :Explore
- :Hexplore
- :Nexplore
- :Pexplore
- :Sexplore
- :Texplore
- :Vexplore
本文轉自:VIM經常使用快捷鍵
如需轉載,請註明出處:http://www.javashuo.com/article/p-htufvosd-hy.html編輯器