Vim入門指北

========

一些基本概念:

  • operator(操作符): 例如命令d, y, c等;
  • motion(移動): 例如移動光標的命令h j k l, w, e, b等;
  • text-objects(文本對象): 例如s(表示句子sentence)流酬, w表示單詞,p表示段落(Paragraphs)等等虏肾。
    除了hjkl這些基本命令之外矢门, 你還要知道“更高級的”組合命令:
    "operator + motion"組合的方式干旁,例如:
  • ct. 將字符'.'前面的所有都刪除.
  • y^ 復(fù)制到行首.

"operator + text-objects"的命令組合方式, 例如:

  • ciw : 剪切光標處單詞, 不包括空格
  • caw : 剪切光標處單詞, 包括空格
  • dip : 刪除一段

移動光標:

下上左右:JKHL
移動到上一個單詞首b
移動到下一個單詞首w,移動3個單詞3w
<----b w---->

w/b是在單詞首部移動,在單詞尾部移動為ge/e
<----ge e---->

如果是大寫的B涎显,W挚瘟,gE叹谁,E,則只將“空格”作為單詞分隔符乘盖,例如'gloal.member'被當作一個完整的詞焰檩。

^ 光標移動到行開頭
$ 光標移動到行結(jié)尾

fx 光標移動到下一個x處,3fx移動到第三個x處
Fx 光標移動到前面的x處
tx订框,Tx類似析苫,移動到x之前

ma 標記當前行, 標簽可以是a-z任意字符穿扳。
~a 跳轉(zhuǎn)到a標簽衩侥。

標簽跳轉(zhuǎn)C-]
跳轉(zhuǎn)回C-OC-T或按兩下
Ctrl + 左/右鍵 也可以跳轉(zhuǎn)/返回
跳轉(zhuǎn)到匹配的括號%
移動到文件首gg
有趣的命令9999k作用也是移動到文件首
移動到文件尾G
跳轉(zhuǎn)到第33行33G
或者輸入 :33 也可以跳轉(zhuǎn)
如移動到文檔1/3處 ,直接輸入33%
zz 將當前光標所在的行移到屏幕中間 矛物,大寫的ZZ是保存&退出文檔茫死。
zt 當前光標所在的行移到屏幕頂,助記t=top 履羞。
zb 當前光標所在的行移到屏幕底峦萎,助記b=bottom 。
H, M, L分別為移動到文檔的head, middle, last的位置吧雹。
C-F , C-B 向前向后翻頁

Linux 終端( Terminal)中常用的快捷鍵
ctrl+f 向前移動一個字符
ctrl+b 向后移動一個字符
alt+f 向前移動一個單詞
alt+b 向后移動一個單詞
ctrl+a 移動到當前行首
ctrl+e 移動到當前行尾

編輯:

使用c骨杂,dx刪除的字符仍然存在寄存器中,用p可以粘貼出來雄卷。

  • c = 替換(change)搓蚪,刪除文本并進入插入模式,
  • d =刪除(delete),一般組合使用,
  • y =復(fù)制(yank)着帽,
  • p = 粘貼(paste),
  • x = 刪除字符雳灾;

刪除,剪切, 復(fù)制一行= ccdd冯凹,yy
刪除,剪切, 復(fù)制多行= 3cc谎亩,4dd5yy
刪除,剪切, 復(fù)制到行尾= c$d$匈庭,y$
或者大寫C, D, Y, 也是到行尾
刪除,剪切,復(fù)制到行開頭= c^夫凸,d^y^ 或者c0阱持,d0夭拌,y0

從光標開始, 刪除,剪切,復(fù)制到單詞尾=cwdw衷咽,yw
刪除,剪切,復(fù)制整個單詞= daw, caw, yaw
注意區(qū)別ywyaw, 例如光標在"test" 的e位置, yaw復(fù)制整個單詞, yw只復(fù)制est鸽扁。

tips: 重復(fù)操作的快捷鍵是".", 比如daw刪除一個單詞后想繼續(xù)刪除下一個單詞,就可以按"."

刪除換行符(兩行合并為一行): J
撤銷上次操作(還原): u
反撤銷(重做): C-R
撤銷對一行的所有操作(還原一行): U镶骗,第二次按U會撤銷上一次U的操作桶现。
只用u和C-R即可回到任何一個操作狀態(tài)。
可視模式下的U/u是大小寫轉(zhuǎn)換卖词。

  • 光標前插入 = i
  • 光標后插入 = a
  • 行首插入 = I
  • 行尾插入 = A
    在當前行的下面另起一行巩那,并進入插入狀態(tài)o
    在當前行的前面另起一行吏夯,并進入插入狀態(tài)O
    CTRL-T is working with tags stack
    CTRL-O is working with jumplist
    Tag stack and jumplist are different list in vim, but they might have same items when you jumping through tags (eg. using CTRL-] )

外部程序的粘貼/復(fù)制:

GVIM的“+號寄存器”可以與外部程序復(fù)制/粘貼:

  • 復(fù)制"+y
  • 粘貼"+p
  • 剪切"+x
    注: 以上快捷鍵在命令可視模式/模式有效此蜈,先按雙引號進入寄存器模式,再按加號,然后按y/p/x
    如果在插入模式, 先按ctrl+R進入寄存器模式(會出現(xiàn)"號), 再按對應(yīng)的寄存器編號,系統(tǒng)共享寄存器編號是+號.
    在VIM正常模式下,ctrl+r 是重做噪生。
" 加入到_vimrc文件中:
map <C-c> "+y "加號寄存器-復(fù)制  
map <C-v> "+p "加號寄存器-復(fù)制  
map <C-x> "+x "加號寄存器-復(fù)制  
map <C-s> :w<cr> " 保存  

多窗口:

  • 關(guān)閉分屏窗口: Ctrl+W cCtrl+W q
  • 上下分割窗口: Ctrl+W s
  • 左右分割窗口: Ctrl+W v
    Ctrl+w Ctrl+]新窗口打開定義

多文件buff操作:

:E 或者:Explore 瀏覽目錄
:edit filename 編輯文件裆赵;
:ls 列出所有buffer;
:b 2:buffer 2將切換到相關(guān)的buffer
:b2 關(guān)閉buff=2的文件跺嗽;
:bn 刪除文件緩沖(關(guān)閉文件)战授。
zz 將當前編輯的行置于屏幕中間。
ZZ 保存退出桨嫁。
:q! 不保存退出, :qa!表示退出所有buff并不保存
:wq 保存退出

搜索和替換:

搜索

/include 正向搜索植兰,n下一個,N上一個
?include 反向搜索
/\<the\> 全詞匹配搜索單詞"the"璃吧,助記開頭<楣导,結(jié)尾>
#號是向后搜索匹配單詞,*向前搜索匹配單詞, gd類似*號的功能.

正則搜索:

/^the 搜索the開頭的行(針對行畜挨,而非單詞)
/here$ 搜索here結(jié)尾的行
點號匹配任何單字符筒繁,如果要搜索的內(nèi)容本身包含點號,則用.代替巴元,比如:
/the. 搜索"the"匹配的內(nèi)容
/the\. 搜索"the."匹配的內(nèi)容

替換:

最常用的替換命令就是:%s/1/2/g了, 其中%符號表示范圍整個文件, s表示搜索, 最后的g表示全局替換.
如果要制定范圍內(nèi)替換, 比如在31~文件尾范圍內(nèi)替換: :31,$s/hello/world/gc, 最后的c參數(shù)表示替換過程中需要確認(confirm).

可視模式:

shift + v: 行選擇模式
大寫V同上
所選擇區(qū)域轉(zhuǎn)換為大寫U毡咏,轉(zhuǎn)換為小寫u
xd在可視模式都是刪除
><在可視模式為右移,左移

列模式:

Ctrl+v (Windows上是Ctrl+Q)進入列模式,
使用方向鍵或H J K L選擇行, 用cd刪除, shift+i插入(大寫I鍵),
插入完成后, 按esc后生效.

代碼折疊:

可以zf進行折疊, 用zo打開折疊,也可以方向鍵向右打開折疊,zc 關(guān)閉折疊.

Session

Session可以保存此次編輯的狀態(tài), 比如已經(jīng)打開的文件, 當前編輯位置等.

  • 保存Session: mksession session.vim
  • 載入Session: source session.vim

[Evernote]https://www.evernote.com/shard/s120/sh/4e8424bf-6c54-4f2e-a9a5-d4641127c615/ed07f657e1eccd05e81947e2e008c8a9

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市逮刨,隨后出現(xiàn)的幾起案子呕缭,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件恢总,死亡現(xiàn)場離奇詭異落恼,居然都是意外死亡,警方通過查閱死者的電腦和手機离熏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進店門佳谦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人滋戳,你說我怎么就攤上這事钻蔑。” “怎么了奸鸯?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵咪笑,是天一觀的道長。 經(jīng)常有香客問我娄涩,道長窗怒,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任蓄拣,我火速辦了婚禮扬虚,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘球恤。我一直安慰自己辜昵,他們只是感情好,可當我...
    茶點故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布咽斧。 她就那樣靜靜地躺著堪置,像睡著了一般。 火紅的嫁衣襯著肌膚如雪张惹。 梳的紋絲不亂的頭發(fā)上舀锨,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天,我揣著相機與錄音宛逗,去河邊找鬼坎匿。 笑死,一個胖子當著我的面吹牛拧额,可吹牛的內(nèi)容都是我干的碑诉。 我是一名探鬼主播,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼侥锦,長吁一口氣:“原來是場噩夢啊……” “哼进栽!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起恭垦,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤快毛,失蹤者是張志新(化名)和其女友劉穎格嗅,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體唠帝,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡屯掖,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了襟衰。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片贴铜。...
    茶點故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖瀑晒,靈堂內(nèi)的尸體忽然破棺而出绍坝,到底是詐尸還是另有隱情,我是刑警寧澤苔悦,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布轩褐,位于F島的核電站,受9級特大地震影響玖详,放射性物質(zhì)發(fā)生泄漏把介。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一蟋座、第九天 我趴在偏房一處隱蔽的房頂上張望拗踢。 院中可真熱鬧,春花似錦蜈七、人聲如沸秒拔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至作谚,卻和暖如春三娩,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背妹懒。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工雀监, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人眨唬。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓会前,卻偏偏與公主長得像,于是被迫代替她去往敵國和親匾竿。 傳聞我的和親對象是個殘疾皇子瓦宜,可洞房花燭夜當晚...
    茶點故事閱讀 43,452評論 2 348

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

  • 目錄(?)[-] 關(guān)于Vim 1 Vim的幾種模式 啟動Vim 文檔操作 光標的移動 1 基本移動 2 翻屏 3 ...
    SunnyLeong閱讀 8,638評論 0 32
  • 曾經(jīng)在思科的工廠測試系統(tǒng)`KlemTest` (`SUSE`命令行模式)中使用`VI`/`VIM`超過2年半,現(xiàn)在...
    戈多在地獄閱讀 1,788評論 1 13
  • 命令歷史 以:和/開頭的命令都有歷史紀錄岭妖,可以首先鍵入:或/然后按上下箭頭來選擇某個歷史命令临庇。 啟動vim 在命令...
    im螞蟻閱讀 30,734評論 3 48
  • 1. Vim的幾種模式 正常模式:可以使用快捷鍵命令反璃,或按:輸入命令行。 插入模式:可以輸入文本假夺,在正常模式下淮蜈,按...
    紅線路亞灣閱讀 16,927評論 0 1
  • 每想你一次,天上飄落一粒沙已卷, 從此形成了撒哈拉梧田。 每想你一次,天上就掉下一滴水侧蘸, 于是形成了太平洋柿扣。
    戴你飛閱讀 152評論 0 0