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

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所有, 謝謝

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市纵菌,隨后出現(xiàn)的幾起案子阐污,更是在濱河造成了極大的恐慌,老刑警劉巖咱圆,帶你破解...
    沈念sama閱讀 211,348評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件笛辟,死亡現(xiàn)場離奇詭異功氨,居然都是意外死亡,警方通過查閱死者的電腦和手機手幢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,122評論 2 385
  • 文/潘曉璐 我一進店門捷凄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人围来,你說我怎么就攤上這事跺涤。” “怎么了监透?”我有些...
    開封第一講書人閱讀 156,936評論 0 347
  • 文/不壞的土叔 我叫張陵桶错,是天一觀的道長。 經(jīng)常有香客問我胀蛮,道長院刁,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,427評論 1 283
  • 正文 為了忘掉前任粪狼,我火速辦了婚禮退腥,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘再榄。我一直安慰自己狡刘,他們只是感情好,可當我...
    茶點故事閱讀 65,467評論 6 385
  • 文/花漫 我一把揭開白布困鸥。 她就那樣靜靜地躺著颓帝,像睡著了一般。 火紅的嫁衣襯著肌膚如雪窝革。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,785評論 1 290
  • 那天吕座,我揣著相機與錄音虐译,去河邊找鬼。 笑死吴趴,一個胖子當著我的面吹牛漆诽,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播锣枝,決...
    沈念sama閱讀 38,931評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼厢拭,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了撇叁?” 一聲冷哼從身側(cè)響起供鸠,我...
    開封第一講書人閱讀 37,696評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎陨闹,沒想到半個月后楞捂,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體薄坏,經(jīng)...
    沈念sama閱讀 44,141評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,483評論 2 327
  • 正文 我和宋清朗相戀三年寨闹,在試婚紗的時候發(fā)現(xiàn)自己被綠了胶坠。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,625評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡繁堡,死狀恐怖沈善,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情椭蹄,我是刑警寧澤闻牡,帶...
    沈念sama閱讀 34,291評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站塑娇,受9級特大地震影響澈侠,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜埋酬,卻給世界環(huán)境...
    茶點故事閱讀 39,892評論 3 312
  • 文/蒙蒙 一哨啃、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧写妥,春花似錦拳球、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至扎筒,卻和暖如春莱找,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背嗜桌。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工奥溺, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人骨宠。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓浮定,卻偏偏與公主長得像,于是被迫代替她去往敵國和親层亿。 傳聞我的和親對象是個殘疾皇子桦卒,可洞房花燭夜當晚...
    茶點故事閱讀 43,492評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 1. 關(guān)于Vim vim是我最喜歡的編輯器,也是linux下第二強大的編輯器匿又。 雖然emacs是公認的世界第一方灾,我...
    Dyworldhua閱讀 1,364評論 0 2
  • 曾經(jīng)在思科的工廠測試系統(tǒng)`KlemTest` (`SUSE`命令行模式)中使用`VI`/`VIM`超過2年半,現(xiàn)在...
    戈多在地獄閱讀 1,788評論 1 13
  • 光標移動 h 光標左移琳省,同 <Left> 鍵j ...
    guanguans閱讀 1,838評論 0 16
  • 曾經(jīng)使用了幾年多的Vim迎吵,手冊也翻過一遍躲撰。雖然現(xiàn)在不怎么用vim了,曾經(jīng)的筆記還是貼出來击费,與喜歡vim的朋友分享拢蛋。...
    Sylar丶閱讀 879評論 0 0
  • 問題:unknown error: call function result missing 'value' 解決...
    gz_tester閱讀 348評論 0 2