下載『vi/vim指令速查.pdf』
進入編輯模式
- a 在游標位置之(後)進入(插入)編輯模式
- A 在游標所在行的行末進入(插入)編輯模式
- i 在游標位置之(前)進入(插入)編輯模式
- I 在游標行的行首進入(插入)編輯模式
- r 取代所在位置那個字元
- R 在游標所在位置進入(取代)編輯模式
- o 在游標上方新增一行,並進入編輯模式
- O 在游標下方新增一行,並進入編輯模式
- <Insert> 切換為--INSERT--或--REPLACE--模式
- <Esc> 退出編輯模式或取消指令
編輯環境設定
- :set nu 顯示行號
- :set nonu 不顯示行號
- :set ai 自動內縮
- :set noai 取消自動內縮
游標的移動
- gg 將游標移到第一行
- G 將游標移到最後一行
- 行號 G 將游標移到(行號)所在行
- 0 將游標移到所在行的行首
- $ 將游標移到所在行的行末
- 字數<Space> 將游標向右移動(字數)個字元
- 行數<Enter> 將游標向下移動(行數)列
字串、行、區塊範圍的選取‧複製‧貼上‧刪除‧取消
- v 字串範圍的選取,搭配↑↓←→進行
- V 行範圍的選取,搭配↑↓←→進行
- v <Ctrl>+V 區塊範圍的選取,搭配↑↓←→進行
- d 刪除選取的範圍(是剪下還可以貼上)
- d0 刪除游標所在位置起到該行的行首
- d$ 刪除游標所在位置起到該行的行末
- dd 刪除游標所在行(是剪下還可以貼上)
- 5dd 刪除游標所在行共5行
- D 從游標所在位置起刪除到該行的行末
- d1G 刪除游標所在行到第一行的內容
- dG 刪除游標所在行到最後一行的內容
- :%d 刪除編輯區域內的全部內容
- :15d 刪除第15行
- :11,29d 刪除第11-29行
- x 刪除游標所在位置的字元
- X 刪除游標所在位置的前一個字元
- y 複製選取的範圍
- y0 複製游標所在位置起到該行的行首
- y$ 複製游標所在位置起到該行的行末
- yy 複製游標所在行
- y1G 複製游標所在行到第一行的內容
- yG 複製游標所在行到最後一行的內容
- p 在所在位置(或行)之前(或上一行)貼上
- P 在所在位置(或行)之後(或下一行)貼上
- u 恢復到上一個指令執行後的內容
- U 取消游標所在行的所有變更
- 2,6co9 將2-6行複製到第9行的後面
- 2,6mo9 將2-6行搬移到第9行的後面
搜尋與取代
:起始行,終止行s/搜尋字串/取代字串/gic
(g: 整行全部, i: 不分大小寫,c: 詢問)
(起始行,終止行) = (1,$) 代表所在檔案全部範圍
- :set ic 搜尋時不區分大小寫
- :set noic 搜尋時要區分大小寫
- /搜尋字串 在游標之後找搜尋字串
- ?搜尋字串 在游標之前找搜尋字串
- n 向下找下一個搜尋結果
- N 向上找上一個搜尋結果
- :%s/new/old/g 將編輯範圍中的new取代為old
- :1,9s/^/###/ 在1-9行的行首加入三個#
- :1,$s/from/to/g 將檔案中所有的from取代為to
檔案功能
- :q 離開編輯程式
- :q! 不存檔強制離開編輯程式
- :w 存檔
- :w! 強制存檔(例:有擁有權沒寫入權)
- :w 新檔案名稱 另存新檔
- :wq 存檔並離開編輯程式
- :r 將指定的檔案內容加到游標行後面
- :e 檔案名稱 編輯另一個檔案
- :e! 還原到該檔案編輯前的狀態
- :n 切換到下一個目前開啟中的檔案
- :N 切換到上一個目前開啟中的檔案
- :f 目前開啟中的檔案名稱
- :files 列出目前開啟中的所有檔案
- :1,9w 檔案名稱 將1-9行的資料另存為指定的檔名
- :1,9w>>檔名 將1-9行的資料附加到指定檔案之後
多重視窗
- :new (檔名) 開水平視窗(並在新視窗開啟檔案)
- :vnew (檔名) 開垂直視窗(並在新視窗開啟檔案)
- <Ctrl>-w 方向鍵 切換視窗
- :only 只保留游標所在視窗
- vim -o2 t1 t2 以水平視窗的方式開啟t1,t2兩檔案
謝謝分享
回覆刪除感謝分享 很實用!
回覆刪除