首頁 > 軟體

Vim快捷鍵使用筆記

2020-06-16 17:30:24

我目前是搞運維的,俗話說"工欲善其事必先利其器",Vim作為最基本的工具,正好這兩天整理了一下,就寫點關於vim的吧。不安裝任何外掛。

Vim練級攻略中將vim使用分成的四個階段,因此本次文件也將按照這個四個階段進行梳理,四個階段分別是:

1.存活(初級入門);

2.感覺良好;

3.覺得更好,更強,更快;

4.使用VIM的超能力;

一.存活(初級入門)

  1.vim模式介紹
  1) Normal模式, 啟動vim以後自動進入Normal模式
  2) Insert模式, 按下i鍵進入insert模式,此時螢幕左下角出現 -- INSERT -- 字樣。在此模式下你可以像用"筆電"那樣,
    ESC鍵返回Normal模式
2.快捷鍵介紹

  i    -> insert模式, 按ESC返回Normal模式
  x    -> 刪除當前游標所在的一個字元
  :wq  -> 儲存並退出
  dd    -> 剪下游標所在的行
  p    -> 貼上剪貼簿

推薦:
  hjkl在Normal模式下,使用hjkl分別代表←, ↓, ↑,方向鍵進行游標移動。
  :help <command> -> 顯示相關命令的幫助。你也可以就輸入:help而不跟命令,使用:q退出

二.感覺良好階段
本階段介紹的命令全部都在Normal模式下使用。若果你不知道什麼是Normal模式,請看第一階段,或者多按幾次ESC鍵

1.各種插入模式快捷鍵
  a -> 在游標後插入
  A -> 在游標行最後插入
  o -> 在當前行後插入新的一行
  O -> 在當前行前插入新的一樣
  I -> 在當前行的最前面插入
  cw -> 替換從游標所在位置後到一個單詞結尾的字元

2.簡單的移動游標
  0 -> 數位零, 到行頭
  ^ -> 到本行第一個不是blank字元的位置(所謂blank字元就是空格, tab, 換行, 回車等)
  $ -> 到本行行尾
  g_ -> 到本行最後一個不是blank字元的位置
  /pattern -> 搜尋pattern的字串(如果搜尋出多個匹配, 可按n鍵到下一個, N鍵到上一個)

3.拷貝/黏貼
  P -> 貼上,當前游標行的上一行
  p -> 貼上,當前游標行的下一行
  yy -> 拷貝當前行

三.更好,更強,更快
1.更好
  . -> 小數點,可以重複上一次的命令
  N<command> -> 重複某個命令N次

2.更強
  NG -> 到第N行,也可以使用:N,比如:3,跳到第三行
  gg -> 到第一行
  G  -> 到最後一行
  w -> 到下一個單詞的開頭
  e -> 到下一個單詞的結尾
    如果你認為單詞是預設方式,那就麼就用小寫e和w。預設上來說,一個單詞有字母,數位和下劃線組成
    如果認為單詞是由blank字元分隔, 那麼你需要使用大寫的E和W
  *和# -> 匹配遊標當前行所在的單詞, 移動游標到下一個(或上一個)匹配單詞

3.更快
  一定要記住游標的移動,因為很多命令都可以和這些移動游標的命令連動。
  <start position><command><end position>
  例如: 0y$命令意味著
  0 -> 先到行頭
  y$ -> 從這裡開始拷貝, 到本行最後一個字元結束
  ye -> 從當前位置拷貝到本單詞的最後一個字元
  y$ -> 從當前位置拷貝到本行最後一個字元
  v$ -> 選中當前位置到本行最後一個字元
  gU -> 選中的字元變大寫
  gu -> 選中的字元邊小寫

  字元含義介紹:
  d -> 刪除
  v -> 視覺化的選擇

四.Vim超能力
1.在當前行上移動游標: 0, ^, $, f, F, t, T
  0 -> 數位零, 到行頭
  ^ -> 到本行第一個不是blank字元的位置(所謂blank字元就是空格, tab, 換行, 回車等)
  $ -> 到本行行尾
  fa -> 到下一個為a的字元處, 你也可以fs到下一個為s的字元
  t, -> 到逗號前的第一個字元。逗號也可以是其他字元
  3fa -> 在當前行查詢出第三個出現的a
  F和T -> 和f和t作用是一樣,只不過游標移動的方向相反
  dtd ->刪除所有的內容,直至遇到d字元

2.區域選擇<action>a<object>或<action>i<object>
  action可以是任何的命令,如d(刪除), y(拷貝), v(視覺化模式選擇)
  object可能是: w一個單詞, W一個以空格為分隔的單詞, s一個句子, p一個段落, 也可以是一個特別的字元 )、]、}等

  假設你有一個字)符串(map (+) ("foo")). 而游標鍵在第一個o的位置.
  vi" -> 會選擇foo "
  va" -> 會選擇"foo" "
  vi) -> 會選擇 "foo"
  va) -> 會選擇 ("foo")
  v2i) -> 會選擇 map (+) ("foo")
  v2a) -> 會選擇 (map (+) ("foo"))

3.塊操作
  典型的塊操作: 0 Ctrl+v Ctrl+d I 進入Insert模式 ESC

4.自動提示
  Ctrl+N 和 Ctrl+P
  在Insert模式下,你可以輸入一個單詞的開頭,然後按Ctrl+N或者是Ctrl+p, 自動補齊功能就出現了.

  5.vim分屏操作
  1)分屏啟動
    a.使用大寫的O引數來垂直分屏
      vim -On file1 file2 file3 ...
    b.使用小寫的o引數來水平分屏
      vim -on file1 file2 file3 ...
    注釋: n是數位, 表示分成幾個螢幕
  2)關閉分屏
    Ctrl+W  c
  3)分屏
    a.上下分割當前開啟的檔案
      Ctrl+W s
    b.上下分割,並開啟一個新的檔案
      :sp filename
    c.左右分割當前開啟的檔案
      Ctrl+W v
    d.左右分割,並開啟一個新的檔案
      :vsp filename
  4)移動游標
    a.把游標移到右邊的螢幕
      Ctrl+W h
    b.把游標移到左邊的螢幕
      Ctrl+W l
    c.把游標移到上面的螢幕
      Ctrl+W k
    d.把游標移到下面的螢幕
      Ctrl+W j
  5)分屏同步移動
    要讓兩個分屏中的檔案同步移動,很簡單,你需要同步移動的兩個屏中都輸入如下命令
    :set scb
    如果你需要解開,那麼輸入下面的命令
    :set scb!

  6.vim操作一個目錄
    直接vim一個目錄,你會進入一個頁面,通過j,k鍵進行上下移動,進入一個目錄或者開啟一個檔案。
    - -> 到上一級目錄
    D -> 刪除檔案(大寫)
    R -> 改在檔名(大寫)
    s -> 對檔案排序
    x -> 執行檔案
    :cd <dir> -> 改變當前目錄
    :pwd -> 檢視當前目錄

  7.儲存對談
    如果你開啟了好些個檔案,還設定了各種滾屏同步,或者是行號等等,那麼,你可以用下面的命令來儲存對談:
      :mksession ~/.mysession.vim
    如果檔案重複,vim預設會報錯,如果你想強行寫入的話,你可以在mksession後面加上!
      :mksession! ~/.mysession.vim
    於是下次,你可以這樣開啟這個對談:
      vim -S ~/.mysession.vim

差不多上面這些掌握了使用vim就很流暢了,不建議一次性全記住,可以每天學習2個快捷鍵。下一篇,準備介紹tmux這個運維神器。

更多Vim相關教學見以下內容

Vim學習指南 http://www.linuxidc.com/Linux/2013-08/89096.htm

快速學會 Vi編輯器 http://www.linuxidc.com/Linux/2013-08/88586.htm

強大的Vim 編輯器 http://www.linuxidc.com/Linux/2013-07/87544.htm

CentOS 6.2上搭建Vim開發環境 http://www.linuxidc.com/Linux/2013-07/87363.htm

把Vim打造成優秀的C++ IDE  http://www.linuxidc.com/Linux/2016-06/132262.htm

Vim技巧分享:C語言設定 http://www.linuxidc.com/Linux/2012-12/77124.htm

Ubuntu中設定Vim的行號 http://www.linuxidc.com/Linux/2012-12/75485.htm

本文永久更新連結地址http://www.linuxidc.com/Linux/2016-10/135949.htm


IT145.com E-mail:sddin#qq.com