1. 程式人生 > >vim教程

vim教程

vim的使用教程(常用命令)

vim 的使用主要分為vim的配置和四大模式的掌握

一、vim的配置

vimrc的存放位置:
系統 vimrc 檔案: “VIM/vimrcvimrc:HOME/.vimrc”
使用者 exrc 檔案: “HOME/.exrcgvimrc:VIM/gvimrc”
使用者 gvimrc 檔案: “HOME/.gvimrc:VIMRUNTIME/menu.vim”
$VIM 預設值: “/usr/share/vim”

在使用者家目錄(/home/使用者名稱)下面有一個.vimrc
/etc下面也有一個vimrc

一般只改使用者家目錄下面的 .vimrc 此配置檔案只針對使用者有效
更改後需使用su - 使用者名稱 來使配置生效(例如 su - zhang3)
vimrc的配置選項很多,具體的可以通過

二、vim的四大模式

1、命令模式(command mode)

vim開啟後預設就是命令模式,此時的輸入都被當作命令來解析

命令:

  • yy: 複製游標所在的一行
  • yny:複製游標處起的n行
  • n,my: 複製n和m行之間的內容
  • p:貼上
  • 0 → 數字零,到行頭

  • $ → 到本行行尾

  • gg:跳到檔案首

  • shitf + g:跳到行檔案尾

  • ^ 到本行第一個不是blank字元的位置(所謂blank字元就是空格,tab,換行,回車等)

  • g_ 到本行最後一個不是blank字元的位置。

  • w 到下一個單詞的開頭。

  • e 到下一個單詞的結尾。

  • fa 到下一個為a的字元處,你也可以fs到下一個為s的字元。

  • t, 到逗號前的第一個字元。逗號可以變成其它字元。

    eg:dt” 刪除從游標處到”的字元,可以結合其他命令使用

  • 3fa 在當前行查詢第三個出現的a。

  • FTft 一樣,只不過是相反方向。

  • % : 匹配括號移動,包括 (, {, [. (陳皓注:你需要把游標先移到括號上)

  • *#: 匹配游標當前所在的單詞,移動游標到下一個(或上一個)匹配單詞(*是下一個,#是上一個)

  • gU (變大寫)

  • gu (變小寫)

  • . (小數點) 可以重複上一次的命令

  • u 撤銷上一次的命令

  • N → 重複某個命令N次

  • ctrl f 相當於page down

  • ctrl b 相當於page up

  • ggVG 全選 這個牛逼,其實是進入可視模式

2、末行模式(last line mode)

在命令模式下按下shitf + :即可進入末行模式,末行模式下可以執行一些指令,如儲存、退出、查詢、替換等、在命令前加入!,即可在末行模式下執行shell命令

命令:

  • /text 即可查詢包含text的文字,通過n/N可以向下或者向上查詢
  • %s/text/text1/g 即可將全域性text替換為text1

  • :saveas <path/to/file> → 另存為 <path/to/file>

  • vsplit 垂直分頁

  • split 水平分頁
  • set 檢視vim的配置,同時可以直接設定vim的配置,例如直接輸入 set nu即可顯示行號
  • bnbp → 你可以同時開啟很多檔案,使用這兩個命令來切換下一個或上一個檔案。(陳皓注:我喜歡使用:n到下一個檔案)
  • e

3、插入模式(insert mode)

在命令模式下,執行以下命令,進入插入模式,即可進行正常的文字編輯

  • ​ 按 i 在游標前插入

  • ​ 按 I 在行首插入

  • ​ 按 a 在游標後插入

  • ​ 按 A 在行末插入

  • ​ 按 s 刪除游標所在的字元再插入

  • ​ 按 S 刪除游標所在行再插入

  • ​ 按 o 在當前行之下新建行

  • ​ 按 O 在當前行之上新建行

命令:

  • ctrl p 自動補全

4、可視模式(visual mode)

在命令模式下,執行以下命令,即可進入可視模式,該模式下可以執行檔案的選擇,然後對選中區域的文字,執行刪除、複製、大小寫轉換等,這三種模式可以隨意切換,實現不同的選擇粒度

  • v 逐個字元選擇文字行文字
  • V 逐行選擇文字塊文字
  • ctrl + v 按照塊的方式選擇文字

命令:(掌握)

  • f{char}來跳轉到某個字元上面

  • d刪除選中文字

  • c修改選中文字
  • y 複製選中文字
  • r替換選中文字
  • I在選中文字前插入
  • A在選中文字後插入
  • gu選中區域轉為小寫
  • gU選中區域轉為大寫
  • g~大小寫互調
  • >向右縮排一個單位
  • <向左縮排一個單位
  • J → 把所有的行連線起來(變成一行)
  • <> → 左右縮排
  • = → 自動給縮排
  • 塊操作,典型的操作: 0 <C-v> <C-d> I-- [ESC]在選中塊前新增–
    • ^ → 到行頭
    • <C-v> → 開始塊操作
    • <C-d> → 向下移動 (你也可以使用hjkl來移動游標,或是使用%,或是別的)
    • I-- [ESC] → I是插入,插入“--”,按ESC鍵來為每一行生效。

單擊.重複命令(瞭解)

選擇模式 重複效果
字元文字選擇模式(Visual) 從當前游標開始,作用範圍是上次操作的字元數
行文字選擇模式(Visual line) 從當前行開始,作用範圍是上次操作的行數
塊文字選擇模式(Visual Block) 從當前游標開始,作用範圍是以當前游標為左上端點的上次操作的塊範圍

一旦切換到可視模式以後,選中的區域是由兩個端點來界定的(一個在左上角,一個在右下角),我們在預設情況下只可以控制右下角的端點,但是有些時候發現我們需要調整左上角的端點,這時我們可以使用o按鍵來在左上角和右下角之間進行切換。

最後,善於使用命令模式下的操作,基本可以不用使用可視模式,例如:

n,m>,就可以將n到m行之間的文字直接右移,配合. 和u可以輕鬆的重複和撤銷命令