1. 程式人生 > >vim學習筆記(1)——vim操作

vim學習筆記(1)——vim操作

僅記錄一些自己最常用的vim操作,隨時更新

文字操作

  • d 剪下,雙擊剪下一行
  • y 複製,雙擊複製一行
  • p 貼上

  • x 刪除當前游標下字元

  • r 替換當前游標字元,後面接替換的字元

  • :s/old/new/g 全域性替換old為new

移動

  • 0 移動到開頭
  • $ 移動到結尾
  • w 移動到下一個單詞開頭
  • e 移動到下一個單詞結尾

  • fx 移動到本行之後第一個出現x字母的位置

  • tx 移動到本行之後第一個出現x字母的前一個位置

  • gg 跳到檔案首

  • G 跳到檔案尾
  • NG 移動到第N行,或者用:N也可

  • { 上一段,}下一段

  • % 跳到匹配的括號處

  • ctrl+o 上一個位置

  • ctrl+i 下一個位置

文字移動和操作相互配合使用,比如d$+enter刪除到行末,dw刪除至下一個單詞,2dd刪除接下來兩行

也可以和數字相互使用,比如y+enter5,複製以下5行,:1,20d+enter刪除1~20行

模式切換

插入模式

  • i 進入插入模式,當前插入游標位置插入
  • a 進入插入模式,下一個游標位置插入
  • o 進入插入模式,在當前行下一行插入
  • O 進入插入模式,在當前行上一行插入

可配置vim成滑鼠游標定位模式

視覺化模式

  • :v 進入視覺化模式

替換模式

  • :R 進入替換模式

使用外部命令

  • :! 在!後新增外部命令

查詢

  • :/ 在/後新增要查詢的內容

進入查詢時,按n查詢下一個,N查詢上一個

檔案操作

儲存檔案

  • :w 儲存
  • :saveas filename 另存為

退出

  • :q

儲存退出vim

vim中儲存退出:x和:wq的區別,如下:
:wq和ZZ 強制性寫入檔案並退出(存檔並退出 write%quite)。即使檔案沒有被修改也強制寫入,並更新檔案的修改時間。
:x 寫入檔案並退出。僅當檔案被修改時才寫入,並更新檔案修改時間;否則不會更新檔案修改時間。

這兩者一般情況下沒什麼不一樣,但是在程式設計方面,對編輯原始檔可能會產生重要影響。因為檔案即使沒有修改,”:wq”強制更新檔案的修改時間,這樣會讓make編譯整個專案時以為檔案被修改過了,然後就得重新編譯連結生成可執行檔案。這可能會產生讓人誤解的後果,當然也產生了不必要的系統資源花銷。

操作回退和重做

  • u 撤銷上一個改動
  • U 撤銷本行所做的改動過
  • ctrl+r 重做操作

其他

  • ctrl+g 顯示當前檔案資訊
  • ctrl+d 補全命令

參考資料: