文章目錄
- VIM用法
- 思維導圖
- Normal-mode
- Command-mode
- :%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 設置不同的背景色
- 文件操作
- :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,
- :map ^M I#\
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**所有, 謝謝