一. 移動
- h,j,k,l 對應左,下,上,右
- w 移動游標向前一個單詞
- b 移動游標向後一個單詞
- nw 移動游標向前n個單詞
- nb 移動游標向後n個單詞
- $ 移動游標到行首
- ^ 移動游標到當前行的第一個字母處
- ) 移動游標到下一個句子
- ( 移動游標到上一個句子
- gg 移動游標到頁的第一行
- G 移動游標到頁的最後一行
- nj 向下移動n行
- nG 跳至第n行
- H 移動游標到屏的上方
- M 移動游標到屏的中間
- L 移動游標到屏的下方
- fx 移動游標到本行的下一個x處
二.剪下與拷貝
- <shift-v> 選擇文本(可視化)
- v 選擇文本
- d 剪下選擇的內容到剪貼簿
- y 拷貝選擇的內容到剪貼簿
- dd 刪除當前行
- dw 剪下一個詞(或daw)
- yy 拷貝當前行
- cc 剪下當前行並進入插入模式
- dfs 剪下從當前游標處到下一個s間的字元
- c$ 刪除從游標位置至行尾的字元並進入插入模式
- d$ 刪除從游標位置至行尾的字元
- p 粘貼
三.插入與替換操作
- i 在當前字元插入
- I 在當前行首插入
- a 在當前字元的右邊插入
- A 在當前行尾插入
- o 在當前行的下方插入
- O 在當前行的上方插入
- r 替換單個字元
- cl 修改一個字元
- cc 修改一整行
四.儲存操作
- :q 退出
- :q! 強制退出
- :w 儲存
- :wq 存檔並退出
- :new 檔案名稱 建立檔案
五.視窗操作
- <C-h,j,k,l> 切換到上下左右的視窗中去
- <C-H,J,K,L> 向上下左右進行視窗
- wm:WMToggle 開啟瀏覽視窗
- F8 開啟或關閉Taglist視窗
- :close 關閉當前視窗
- <C-w> 切換使用中視窗
- :only 關閉其餘視窗,只保留當前視窗
- :split 橫向分割視窗
- :vsplit 縱向分割視窗
- :4split 分割視窗,並使新視窗只有4行
- <C-U> 文本向上滾動半屏
- <C-D> 文本向下滾動半屏
- <C-F> 向前滾動整屏
- <C-B> 向後滾動整屏
- zz 當前行置為屏的正中央
- zt 當前行置於屏的頂端
- zb 當前行置於屏的底端
- :previous 移動到前一個檔案
- :next 移動到後一個檔案
- :2next 向前跳過2個檔案
- :last 移動到最後一個檔案
- :first 移動到第一個檔案
- cal 開啟Calendar視窗
六.重做與搜尋替換
- x 刪除當前字元
- u 撤銷
- <C-R> 重做(撤銷的反操作)
- /text 向後搜尋text,搜尋後,用n向下搜尋定位,N向上搜尋定位
- ?text 向前搜尋text,搜尋後,用n向上搜尋定位,N向下搜尋定位
- /text/> 尋找單個詞text
- //>text/>尋找單個詞text
- /^the 只匹配行首為the的單詞
- /the$/>只匹配行首為the的單詞
- J 將多行拼接為一行
- gU 當前單詞變為大寫
- gu 當前單詞變為小寫
- gUU 當前行都變為大寫
- guu 當前行都變為小寫
- :s/from/to 當前行from替換為to,只替換第一個(:s/from/to/g 表示替換當前行所有)
- :1,5s/from/to 從1至5行from替換to
- :%s/from/to/g 檔案所有from替換為to
七.VIM常用設定命令
- :Set ignorecase 忽略大小
- :Set noignorecase 精確匹配
- 3. :Set nohlsearch 關閉高亮顯示
- 4. :Set hlsearch 開啟高亮顯示
- 5. :Set number 顯示行號
- 6. :Set nonumber 不顯示行號
- 7. VIM設定檔為_vimrc
八.跳轉(書籤)
:jumps 列出跳轉的記錄
`` 回到跳轉前的地方
ma 設定當前行為書籤
`a 跳到書籤a處
:marks 查看書籤列表
‘ 進行此次跳轉之前的起跳點
“ 上次編輯該檔案時的游標最後停留的位置
[ 最後一次修改的起始位置
] 最後一次修改的結束位置
九.其他
:map 列出索引值映射
:vmap 列出可視化索引值映射
:nmap 列出正常索引值映射
:imap 列出插入的索引值映射
:cmap 列出命令列索引值映射
:omap 列出系統索引值映射
:imap <F2><CR> Date: <Esc>:read!date<CR>kJ 定義F2為插入日期