VIM超詳細用法以及思維導圖

文章目錄

VIM用法

VIM編輯器的用法,包含基礎用法和高級用法。
VIM的配置文件是用戶家目錄下.vimrc, 修改該文件加入inoremap jj <Esc>, 表示映射ESC鍵到兩次j鍵,可以提高操作效率

思維導圖

在這裏插入圖片描述

Normal-mode

用於瀏覽文件,也包含複製,粘貼,刪除等操作。這種模式下,鍵盤按鍵會當做功能鍵處理,不會真正的鍵入這些字符

漫遊

  • h 向左
  • j 向下
  • k 向上
  • l 向右
  • 0 跳到行首
  • ^ 跳到行首第一個非空字符
  • $ 跳到行尾
  • gg 跳到文件的第一行的行首
  • G 快速到文件的最後一行的行尾
  • % 匹配括號移動,包括(,{,[
  • *|# 匹配光標當前所在的單詞,移動光標到下一個單詞處,*是下一個,#是上一個
  • ctrl+f 查看下一頁內容
  • ctrl+b 查看上一頁內容
  • 100G 跳轉到第一百行的行首

複製

  • yy 複製光標所在整行
  • 100yy 複製光標坐在行及以下共100行
  • yw 複製光標開始的第一個單詞
  • y$ 複製光標到行尾
  • yG 複製光標所在行到文本的結束
  • yH 複製文本開始到光標所在行的文本
  • fa 移動光標到本行下一個a的字符處
  • Fa 反前移動光標到字符a處
  • nfa 移動光標到下第n個字符a處
  • nFa 向前移動光標到第n個字符a處
  • ta 移動光標到a字符的前一個字符
  • nta 移動光標到第n個a字符前一個字符
  • Ta 向前移動光標到a字符出現的後一個字符
  • nTa 向前移動到第n個a字符出現後的一個字符
  • yfB 複製光標到第一個大寫B中間的內容
  • y2fB 複製光標到第二個大寫B中間的內容

剪切

  • x 向後剪切一個字符,如果是行尾則向前剪切
  • 3x 剪切三個
  • xp 非行尾交換兩個字符,如果是bs編程sb

刪除

  • dd 刪除光標所在行
  • 200dd 刪除光標所在行及以下共100行
  • dw 刪除一個單詞
  • dnw 刪除n個單詞
  • df" 刪除到出現第一個雙引號的位置
  • dnf" 刪除到出現第n個雙引號的位置
  • d$ 刪除光標到本行的結尾
  • d^ 刪除光標到本行的開頭
  • dH 刪除文本開始到光標所在行的文本
  • dG 刪除光標所在行到文本的結束

粘貼

  • p 粘貼複製或剪切的內容
  • 3p 將複製或剪切的內容粘貼三次
  • P 光標前開始粘貼
  • 3P 光標前開始粘貼3次

窗口命令

  • ctrl+w s 水平分割窗口
  • ctrl+w w 切換窗口
  • ctrl+w q 關閉當前分屏,如果是最後一個分屏則退出VIM
  • ctrl+w c 關閉當前分屏
  • ctrl+w v 垂直分割窗口
  • ctrl+j|k 可以用於切換上下窗口
  • ctrl+h|l 可以用於切換s水平窗口
  • ctrl+w H|L 可以用於左右移動當前分屏
  • ctrl+w J|K 可以上下移動當前分屏

文件保存

  • ZZ 大寫的字母ZZ,保存當前文件
  • ZQ 大寫的字母ZQ, 放棄對文件的修改並退出

關鍵字和路徑補全

  • ctrl+x -> ctrl+n 透過目前正在編輯的文件內容作爲關鍵庫補全
  • ctrl+n 也可以快速補全,沒有提示
  • ctrl+x -> ctrl+f 以當前目錄內的檔案作爲關鍵字補全路徑文件
  • ctrl+x -> ctrl+o 以文件名作爲語法補充,以wim內建的關鍵字予以補全

撤銷操作和恢復

  • u 撤銷剛纔的操作
  • ctrl+r 恢復撤銷操作

刪除字符和替換

  • x 刪除光標當前所在的字符
  • r 替換掉光標當前所在的字符
  • R 替換掉從光標開始以後的所有字符,除非<ESC>退出

大小寫轉換

  • ~ 將光標下的字母改變大小寫
  • 3~ 將光標位置開始的3個字母改變其大小寫
  • g~~ 改變當前行字母的大小寫
  • gUU 將當前行的字母改成大寫
  • guu 將當前行的字母改成小寫
  • 3gUU 將從光標所在行下面共三行字母改成大寫
  • gUw 將光標下的單詞改成大寫
  • guw 將光標下的單詞改成小寫

宏錄製以及播放

  • 錄製宏,在普通模式按下q鍵(宏錄製是以q鍵啓動的),再按下字母w(字母隨意),表示該宏註冊爲w, 然後完成操作後再次按下q表示完成錄製操作。
  • 宏播放, 在正常模式下,按下@w執行宏錄製的所有操作。@@是對上次宏的重複操作。n@w, 就會執行n次w宏。

Command-mode

在正常模式下按下":"(冒號)鍵或者/(撇號),進入命令模式,可以輸入和執行一些VIM或者插件命令,這些指令包含設置環境,文件操作,調用某個功能

:%s/$/sth/ 行尾追加sth

:%s/^M//g 替換掉dos換行符,^M使用Ctrl+v+Enter即可輸入

:g/^/s*$/d 刪除空行以及只有空格的行

:n1,n2 s/str1/str2/gic 替換行號n1到n2之間的字符串str1爲str2, g關鍵字表示一行出現多個,則都替換,如果沒有g,則只替換第一個,i關鍵字表示大小寫不敏感,即忽略大小寫,大寫的字母I表示大小寫敏感,這也是默認的。c關鍵字表示替換前確認。每個關鍵詞均可單獨使用

:%s/#.*//g 刪除#之後的字符

/hansen 查找字符串hansen, n查找下一個匹配, N查找上一個匹配,2n查找下面第二個匹配

:help set 查看set命令的幫助信息

:set 顯示與系統預設值不同的設定參數,就是自己修改的那些設定

:syntax on|off 打開和關閉程序的語法高亮

:set bg=dark|light 設置不同的背景色

文件操作

  • :w 將編輯的內容寫入文件中

  • :w! 將文件在只讀狀態時強制寫入,實際寫入還得看文檔權限

  • :q 離開vim

  • :qa! 退出所有文件,對所有文件不做修改保存

  • :x 退出文件並保存對文件的修改

  • :e fn 打開另外一個文件

    • :n 跳轉到下一個文件
    • :N 跳轉到上一個文件
    • :bn 跳轉到下一個文件
    • :bp 跳轉到上一個文件
    • :ls 列出打開的所有文件
    • :b2 顯示第二個文件
  • :q! 將至退出修改過的文件,丟掉所有修改

  • :wq 存儲後退出

  • :w fn 將文件另存爲文件名fn

  • :r fn 將fn文件讀入並追加到目前編輯文件光標後

  • :n1, n2 w fn 將n1到n2的內容存儲成fn文件

  • :n1,n2 d 將n1到n2行的所有內容刪除,d是刪除關鍵字

  • :! command 顯示離開編輯器並執行command命令

  • :r! command 執行command命令,並將執行結果追加到光標後

  • :sp fn1 上下分屏打開另外一個文件

  • :vsp fn1 左右分屏打開另外一個文件

:set nu 開啓顯示行號

:set hlsearch 搜索到的關鍵字高亮

:set autoindent 開啓自動縮進

:set backup 是否自動存儲檔案,當開啓後,每次打開文件編輯的時候,原始文件會命名爲fn~

:set ruler 打開後關閉右下角的狀態欄說明

:set ic 在關鍵詞搜索的時候區分大小寫

:set showmode 打開和關閉模式切換後的狀態,比如進入insert mode的時候,左下角會顯示–INSERT–

:set backspace=(012) 進入編輯模式,可以利用backspace來按鍵來刪除任意字符,但是某些distribution則不容許這樣。此時可以通過設置backspace來實現這個功能,=2,就是刪除任何字符,=0|1時,僅可以刪除輸入的字符,而無法刪除原來文本存在的字符

tabe fn 使用VIM插件minibuffer新建標籤頁功能,在一個新的標籤頁編輯文件fn,

  • gt 切換到下一個標籤頁
  • gT 切換到上一個標籤頁
  • :tabr 切換到第一個標籤頁
  • :tabl 切換到最後一個標籤頁
  • :tabm [N] 把當前tab移動到第N個tab之後

:map ^M I#<ESC> 設置快捷鍵Ctrl+m在光標處所在行的行首插入#(#代表註釋),然後在退出編輯狀態。map是關鍵字,後面的是key和value。key對應的是^M,這個key是快捷鍵Ctrl+v+M輸入的,代表快捷鍵Ctrl+M。Value對應的是I#<ESC>, 表示依次執行這些快捷鍵。I表示切換光標至行首並進入編輯狀態,#表示輸入#,<ESC>表示退出編輯狀態。

:ab email [email protected] ab是關鍵詞,該命令執行後,然後切換到編輯模式,輸入email後,會把email自動替換爲郵件地址[email protected]。適用於頻繁輸入同樣的長字符串場景

Insert-mode

在正常模式按下一些按鍵(如i, a等)進入插入模式
i 從當前光標的位置進入插入模式
I 進入插入模式,並將光標至於行首
a 追加模式,置光標於當前光標之後
A 追加模式,置光標於行末
o 在當前行之下新加一行,並進入插入模式
O 在當前行之前新加一行,並進入插入模式
ESC 退出插入模式

Visual-mode

可視化模式
按下v,V,<CTRL>+V, 可以進入可視化模式,操作像是拿鼠標選擇一樣,操作會很方便。
繼續按下CTRL+v會退出可視化模式

使用方向鍵或者h,j,k,l進行漫遊,選中相應的內容,也可以使用gg和G直接到文件首或尾

ctrl+v 塊模式,塊操作,和UE的塊操作一樣

o 跳轉光標到選中塊的另一個端點

U 將選中塊中的內容轉化爲大寫

O 跳轉光標到塊的另一個端點

aw 選中一個字

ab 選中{}括號中的所有內容,包含括號本身

aB 選中{}括號中的所有內容

ib 選中括號中的內容,不包含括號

iB 選中括號中的所有內容

va 當光標在"",’’,(),{},[]當中時候,va表示選中""內所有的內容包含雙引號

vi 當光標在"",’’,(),{},[]當中時候,va表示選中""內所有的內容不包含雙引號

> 塊右移

< 塊左移

y 複製塊

d 刪除塊

~ 切換塊中內容的大小寫

在該模式下選擇區域後直接輸入:, VIM會自動補全爲:’<,’> 這個是可視模式下選區的替換操作,表示操作範圍,類似與制定n1, n2

vim編輯文本

vim file 編輯一個文件

vim fn1 fn2 … 同時編輯多個文件,默認只顯示第一個文件,也就是file1

vim -on fn1 fn2 … 上下分屏同時編輯多個文件

vim -On fn1 fn2 … 左右分屏打開多個文件

推薦關注博主公衆號,獲取最新的文章😀

在這裏插入圖片描述

📌轉載請註明來源,版權歸作者**@hualong1009**所有, 謝謝

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章