Vim基礎用法,最常用、最實用的命令介紹(保姆級教程)

配置文件設置

  • set number (設置行號)
  • set nocompatible (設置不兼容vi模式,不設置會導致許多vim特性被禁用)
  • set clipboard=unnamed (設置普通的複製粘貼的內容和vim複製的內容相互使用)

打開、編輯,查找文件

  • vim + 任意文件名,如vim file.txt, 直接編輯文件, 不存在則創建文件
  • 已經打開了vim的情況,使用:edit + 文件名編輯其他文件, :edit file.txt
  • :edit *.txt<tab> 查找當前目錄以txt結尾的文件,使用tab補全提示,左右切換選擇文件
  • :edit **/*.txt<tab> 查找當前項目 (多個目錄)的所有帶txt後綴的文件
  • :edit ./ 列出當前目錄所有的文件,edit後傳目錄名參數
  • :find *.txt 同樣是查找以txt結尾的文件

保存、退出

  • :w (保存文件)
  • :w file.txt (vim直接進入的終端,新建的文件保存,給出文件名)
  • :wq (保存並退出vim)
  • :q! (不保存強行退出)

移動命令

  • h (左)
  • j (下)
  • k (上)
  • l (右)

複製、粘貼、剪切/刪除、撤銷、取消撤銷

  • y (複製)
    • yw (向右複製一個單詞)
    • yb (向左複製一個單詞,不包含自身)
    • vy (複製當前游標對應的字母)
    • y$ (複製當前字元到行尾)
    • y^ (複製當前字元到行首 )
    • yG (從當前位置複製到文件結尾)
    • yf+(任意字元), (從當前字元複製到任意字元)
    • yy (複製當前一整行)
  • p (粘貼)
    • p (粘貼到游標所在行的下方)
    • shift + p 或者叫大寫的P (粘貼到游標所在行的上方)
  • d (剪切/刪除)
    • vd/x (刪除當前游標所在的字元)
    • dw (刪除游標右邊的單詞)
    • db (刪除游標左邊的單詞)
    • d$ (刪除從當前游標到行尾)
    • d^ (刪除當前游標到行首)
    • dG (刪除從當前行到文件結尾)
    • df+(任意字元) 或 vf+(任意字元)+d (刪除從當前字元到任意字元)
    • diw/daw (游標在單詞任意位置時,可以刪除完整單詞)
    • dd (刪除當前一整行)
    • d操作後,按p,就是剪切
  • u (撤銷)
    • u (相當於ctrl + z)
    • ctrl + r (取消撤銷,相當於ctrl + y)

選中

  • v (選中當前游標的字元)
  • ctrl + v (選中多列/垂直選取)
  • shift + v (選中多行/水平選取)
  • viw (選中當前游標位置的整個單詞)
  • viw + d / y (選中之後可以刪除、複製)

跳轉

  • w (向右跳轉一個單詞)
  • b (向左跳轉一個單詞)
  • ^ (跳到行首的非空字元)
  • 0 (跳到行首的第一個字元)
  • $ (跳到行尾)
  • gg (跳到文件最頂部)
  • shift + g 或者叫 G (跳到文件最底部),引申的命令:ggvG (全選)-解釋:選中最頂部到最底部,即全選
  • nG (n表示行號,例:16G,表示跳到16行)
  • 50% (跳到文件的中間位置)
  • n% (跳到文件的對應的比例位置)
  • ctrl + f (向下翻頁)
  • ctrl + b (向上翻頁)
  • ctrl + d (向下翻半頁)
  • ctrl + u (向上翻半頁)

行內搜索

  • f + (任意字元), 向右搜索,(游標會跳到搜索到的第一個字元)
  • shift + f + (任意字元), 向左搜索,(游標會跳到搜索到的第一個字元)
  • f + (任意字元) + ; (;表示在同一行向後重複搜索匹配的字元)
  • f + (任意字元) + , (,表示在同一行向前重複搜索匹配的字元)

換行

  • o (向下換行)
  • shift + o 或者叫O (向上換行)

插入模式

  • i (游標在游標字元的前面)
  • a (游標在游標字元的後面)

大小寫轉換

  • gU + 任何位置,如:$、w、G、f + 任何字元,當前選中的單詞轉換為大寫
  • gu + 任何位置,如:$、w、G、f + 任何字元,當前選中的單詞轉換為小寫

文件內搜索

  • / + 任何字元, 從前往後搜索, (游標會停留在第一個匹配的字元,按n匹配下一個,shift + n 匹配上一個)
  • ? + 任何字元, 從後往前搜索, (游標會停留在第一個匹配的字元,按n匹配下一個,shift + n 匹配上一個)
  • / 和 ? 兩者是相反的操作

括弧匹配

  • % (當有多對括弧時,會跳到對應的左括弧/右括弧, 適用於:(), [], {}, <>)

綜合應用

  • 如v + f + (任意字元) + d / y:表示先選中當前字元,再通過f + 搜索任意字元, 此時,游標會跳到匹配的字元, 按d刪除,或按y複製
  • v + i + ( 會選中小括弧的內容,右括弧也可以
  • v + i + [ 會選中中括弧的內容,右括弧也可以
  • v + i + { 會選中花括弧的內容,右括弧也可以
  • di( 刪除括弧中的內容, 右括弧也可以
  • da( 刪除選中的內容並且包括括弧本身, 右括弧也可以

退出插入模式

  • ESC
Tags: