VIM用法
VIM編輯器的用法泽台,包含基礎(chǔ)用法和高級用法秧了。
VIM的配置文件是用戶家目錄下.vimrc, 修改該文件加入inoremap jj <Esc>, 表示映射ESC鍵到兩次j鍵堡纬,可以提高操作效率
思維導圖
Normal-mode
用于瀏覽文件景馁,也包含復(fù)制扮饶,粘貼,刪除等操作贞让。這種模式下周崭,鍵盤按鍵會當做功能鍵處理,不會真正的鍵入這些字符
漫游
- h 向左
- j 向下
- k 向上
- l 向右
- 0 跳到行首
- ^ 跳到行首第一個非空字符
- $ 跳到行尾
- gg 跳到文件的第一行的行首
- G 快速到文件的最后一行的行尾
- % 匹配括號移動喳张,包括(,{,[
- |# 匹配光標當前所在的單詞续镇,移動光標到下一個單詞處,是下一個销部,#是上一個
- ctrl+f 查看下一頁內(nèi)容
- ctrl+b 查看上一頁內(nèi)容
- 100G 跳轉(zhuǎn)到第一百行的行首
復(fù)制
- yy 復(fù)制光標所在整行
- 100yy 復(fù)制光標坐在行及以下共100行
- yw 復(fù)制光標開始的第一個單詞
- y$ 復(fù)制光標到行尾
- yG 復(fù)制光標所在行到文本的結(jié)束
- yH 復(fù)制文本開始到光標所在行的文本
- fa 移動光標到本行下一個a的字符處
- Fa 反前移動光標到字符a處
- nfa 移動光標到下第n個字符a處
- nFa 向前移動光標到第n個字符a處
- ta 移動光標到a字符的前一個字符
- nta 移動光標到第n個a字符前一個字符
- Ta 向前移動光標到a字符出現(xiàn)的后一個字符
- nTa 向前移動到第n個a字符出現(xiàn)后的一個字符
- yfB 復(fù)制光標到第一個大寫B(tài)中間的內(nèi)容
- y2fB 復(fù)制光標到第二個大寫B(tài)中間的內(nèi)容
剪切
- x 向后剪切一個字符摸航,如果是行尾則向前剪切
- 3x 剪切三個
- xp 非行尾交換兩個字符,如果是bs編程sb
刪除
- dd 刪除光標所在行
- 200dd 刪除光標所在行及以下共100行
- dw 刪除一個單詞
- dnw 刪除n個單詞
- df" 刪除到出現(xiàn)第一個雙引號的位置
- dnf" 刪除到出現(xiàn)第n個雙引號的位置
- d$ 刪除光標到本行的結(jié)尾
- d^ 刪除光標到本行的開頭
- dH 刪除文本開始到光標所在行的文本
- dG 刪除光標所在行到文本的結(jié)束
粘貼
- p 粘貼復(fù)制或剪切的內(nèi)容
- 3p 將復(fù)制或剪切的內(nèi)容粘貼三次
- P 光標前開始粘貼
- 3P 光標前開始粘貼3次
窗口命令
- ctrl+w s 水平分割窗口
- ctrl+w w 切換窗口
- ctrl+w q 關(guān)閉當前分屏柴墩,如果是最后一個分屏則退出VIM
- ctrl+w c 關(guān)閉當前分屏
- ctrl+w v 垂直分割窗口
- ctrl+j|k 可以用于切換上下窗口
- ctrl+h|l 可以用于切換s水平窗口
- ctrl+w H|L 可以用于左右移動當前分屏
- ctrl+w J|K 可以上下移動當前分屏
文件保存
- ZZ 大寫的字母ZZ忙厌,保存當前文件
- ZQ 大寫的字母ZQ, 放棄對文件的修改并退出
關(guān)鍵字和路徑補全
- ctrl+x -> ctrl+n 透過目前正在編輯的文件內(nèi)容作為關(guān)鍵庫補全
- ctrl+n 也可以快速補全,沒有提示
- ctrl+x -> ctrl+f 以當前目錄內(nèi)的檔案作為關(guān)鍵字補全路徑文件
- ctrl+x -> ctrl+o 以文件名作為語法補充江咳,以wim內(nèi)建的關(guān)鍵字予以補全
撤銷操作和恢復(fù)
- u 撤銷剛才的操作
- ctrl+r 恢復(fù)撤銷操作
刪除字符和替換
- x 刪除光標當前所在的字符
- r 替換掉光標當前所在的字符
- R 替換掉從光標開始以后的所有字符逢净,除非<ESC>退出
大小寫轉(zhuǎn)換
- ~ 將光標下的字母改變大小寫
- 3~ 將光標位置開始的3個字母改變其大小寫
- g~~ 改變當前行字母的大小寫
- gUU 將當前行的字母改成大寫
- guu 將當前行的字母改成小寫
- 3gUU 將從光標所在行下面共三行字母改成大寫
- gUw 將光標下的單詞改成大寫
- guw 將光標下的單詞改成小寫
宏錄制以及播放
- 錄制宏,在普通模式按下q鍵(宏錄制是以q鍵啟動的)歼指,再按下字母w(字母隨意)爹土,表示該宏注冊為w, 然后完成操作后再次按下q表示完成錄制操作。
- 宏播放踩身, 在正常模式下胀茵,按下@w執(zhí)行宏錄制的所有操作。@@是對上次宏的重復(fù)操作挟阻。n@w, 就會執(zhí)行n次w宏琼娘。
Command-mode
在正常模式下按下":"(冒號)鍵或者/(撇號)峭弟,進入命令模式,可以輸入和執(zhí)行一些VIM或者插件命令脱拼,這些指令包含設(shè)置環(huán)境瞒瘸,文件操作,調(diào)用某個功能
:%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關(guān)鍵字表示一行出現(xiàn)多個情臭,則都替換,如果沒有g(shù)赌蔑,則只替換第一個俯在,i關(guān)鍵字表示大小寫不敏感,即忽略大小寫娃惯,大寫的字母I表示大小寫敏感跷乐,這也是默認的。c關(guān)鍵字表示替換前確認石景。每個關(guān)鍵詞均可單獨使用
:%s/#.*//g 刪除#之后的字符
/hansen 查找字符串hansen, n查找下一個匹配劈猿, N查找上一個匹配,2n查找下面第二個匹配
:help set 查看set命令的幫助信息
:set 顯示與系統(tǒng)預(yù)設(shè)值不同的設(shè)定參數(shù)潮孽,就是自己修改的那些設(shè)定
:syntax on|off 打開和關(guān)閉程序的語法高亮
:set bg=dark|light 設(shè)置不同的背景色
文件操作
:w 將編輯的內(nèi)容寫入文件中
:w! 將文件在只讀狀態(tài)時強制寫入,實際寫入還得看文檔權(quán)限
:q 離開vim
:qa! 退出所有文件筷黔,對所有文件不做修改保存
:x 退出文件并保存對文件的修改
-
:e fn 打開另外一個文件
- :n 跳轉(zhuǎn)到下一個文件
- :N 跳轉(zhuǎn)到上一個文件
- :bn 跳轉(zhuǎn)到下一個文件
- :bp 跳轉(zhuǎn)到上一個文件
- :ls 列出打開的所有文件
- :b2 顯示第二個文件
:q! 將至退出修改過的文件往史,丟掉所有修改
:wq 存儲后退出
:w fn 將文件另存為文件名fn
:r fn 將fn文件讀入并追加到目前編輯文件光標后
:n1, n2 w fn 將n1到n2的內(nèi)容存儲成fn文件
:n1,n2 d 將n1到n2行的所有內(nèi)容刪除,d是刪除關(guān)鍵字
:! command 顯示離開編輯器并執(zhí)行command命令
:r! command 執(zhí)行command命令佛舱,并將執(zhí)行結(jié)果追加到光標后
:sp fn1 上下分屏打開另外一個文件
:vsp fn1 左右分屏打開另外一個文件
:set nu 開啟顯示行號
:set hlsearch 搜索到的關(guān)鍵字高亮
:set autoindent 開啟自動縮進
:set backup 是否自動存儲檔案椎例,當開啟后,每次打開文件編輯的時候请祖,原始文件會命名為fn~
:set ruler 打開后關(guān)閉右下角的狀態(tài)欄說明
:set ic 在關(guān)鍵詞搜索的時候區(qū)分大小寫
:set showmode 打開和關(guān)閉模式切換后的狀態(tài)订歪,比如進入insert mode的時候,左下角會顯示--INSERT--
:set backspace=(012) 進入編輯模式肆捕,可以利用backspace來按鍵來刪除任意字符刷晋,但是某些distribution則不容許這樣。此時可以通過設(shè)置backspace來實現(xiàn)這個功能慎陵,=2眼虱,就是刪除任何字符,=0|1時席纽,僅可以刪除輸入的字符捏悬,而無法刪除原來文本存在的字符
tabe fn 使用VIM插件minibuffer新建標簽頁功能,在一個新的標簽頁編輯文件fn,
- gt 切換到下一個標簽頁
- gT 切換到上一個標簽頁
- :tabr 切換到第一個標簽頁
- :tabl 切換到最后一個標簽頁
- :tabm [N] 把當前tab移動到第N個tab之后
:map ^M I#<ESC> 設(shè)置快捷鍵Ctrl+m在光標處所在行的行首插入#(#代表注釋),然后在退出編輯狀態(tài)润梯。map是關(guān)鍵字过牙,后面的是key和value甥厦。key對應(yīng)的是^M,這個key是快捷鍵Ctrl+v+M輸入的,代表快捷鍵Ctrl+M寇钉。Value對應(yīng)的是I#<ESC>, 表示依次執(zhí)行這些快捷鍵刀疙。I表示切換光標至行首并進入編輯狀態(tài),#表示輸入#摧莽,<ESC>表示退出編輯狀態(tài)庙洼。
:ab email hualong1009@foxmail.com ab是關(guān)鍵詞,該命令執(zhí)行后镊辕,然后切換到編輯模式油够,輸入email后,會把email自動替換為郵件地址hualong1009@foxmail.com征懈。適用于頻繁輸入同樣的長字符串場景
Insert-mode
在正常模式按下一些按鍵(如i, a等)進入插入模式
i 從當前光標的位置進入插入模式
I 進入插入模式石咬,并將光標至于行首
a 追加模式,置光標于當前光標之后
A 追加模式卖哎,置光標于行末
o 在當前行之下新加一行鬼悠,并進入插入模式
O 在當前行之前新加一行,并進入插入模式
ESC 退出插入模式
Visual-mode
可視化模式
按下v,V,<CTRL>+V, 可以進入可視化模式亏娜,操作像是拿鼠標選擇一樣焕窝,操作會很方便。
繼續(xù)按下CTRL+v會退出可視化模式
使用方向鍵或者h,j,k,l進行漫游维贺,選中相應(yīng)的內(nèi)容它掂,也可以使用gg和G直接到文件首或尾
ctrl+v 塊模式,塊操作溯泣,和UE的塊操作一樣
o 跳轉(zhuǎn)光標到選中塊的另一個端點
U 將選中塊中的內(nèi)容轉(zhuǎn)化為大寫
O 跳轉(zhuǎn)光標到塊的另一個端點
aw 選中一個字
ab 選中{}括號中的所有內(nèi)容虐秋,包含括號本身
aB 選中{}括號中的所有內(nèi)容
ib 選中括號中的內(nèi)容,不包含括號
iB 選中括號中的所有內(nèi)容
va 當光標在"",'',(),{},[]當中時候垃沦,va表示選中""內(nèi)所有的內(nèi)容包含雙引號
vi 當光標在"",'',(),{},[]當中時候客给,va表示選中""內(nèi)所有的內(nèi)容不包含雙引號
> 塊右移
< 塊左移
y 復(fù)制塊
d 刪除塊
~ 切換塊中內(nèi)容的大小寫
在該模式下選擇區(qū)域后直接輸入:, VIM會自動補全為:'<,'> 這個是可視模式下選區(qū)的替換操作,表示操作范圍肢簿,類似與制定n1, n2
vim編輯文本
vim file 編輯一個文件
vim fn1 fn2 ... 同時編輯多個文件靶剑,默認只顯示第一個文件,也就是file1
vim -on fn1 fn2 ... 上下分屏同時編輯多個文件
vim -On fn1 fn2 ... 左右分屏打開多個文件
推薦關(guān)注博主公眾號译仗,獲取最新的文章??
??轉(zhuǎn)載請注明來源抬虽,版權(quán)歸作者@hualong1009所有, 謝謝