vim菜鳥入門指南

入職有一段時(shí)間了,在公司里用的最多的就是Linux服務(wù)器開發(fā),所以平時(shí)在服務(wù)器上做一些編程的話會(huì)用到vim,之前也接觸過,沒有發(fā)現(xiàn)過vim的好,現(xiàn)在慢慢接觸多了,才發(fā)現(xiàn)真的是神器,所以也跟大家分享一下自己的心得。

vim最方便的地方在于可以通過vimrc這個(gè)配置文件來設(shè)置很多格式或者快捷鍵。那我們先從最基本的開始看吧:

? ? 1. 打開文件:vim [filename]

????????如果文件存在就直接打開,如果文件不存在,它將為你建立一個(gè)新文件。Vim編輯程序有三種模式,編輯模式、插入模式和命令模式,按i鍵進(jìn)入編輯模式,esc進(jìn)入命令模式,按下:wq保存并且退出。當(dāng)完成所有的編輯工作后,需要保存編輯器結(jié)果,退出編輯程序回到終端,可以發(fā)出ZZ命令,連續(xù)按兩次大寫的Z鍵。

????2. 編輯模式

? ? ? ? ?(1):一般模式下的按鍵說明:

? ? ? ? ? ? ? ? ? h 向左移動(dòng)

? ? ? ? ? ? ? ? ? j 向下移動(dòng)

? ? ? ? ? ? ? ? ? k 向上移動(dòng)

? ? ? ? ? ? ? ? ? l 向右移動(dòng)

? ? ? ? ? ? ? ? ?CTRL f 向下移動(dòng)一頁

? ? ? ? ? ? ? ? ?CTRL b向上移動(dòng)一頁

? ? ? ? ? ? ? ? ?CTRL d 向下移動(dòng)半頁

? ? ? ? ? ? ? ? ?CTRL u 向上移動(dòng)半頁

? ? ? ? ? (2) 單行刪除,:1(待刪除行)d

?? ??? ??? ??? ??? ?多行刪除 ,:1,10d

?? ??? ??? ??? ?? ??法二:

?? ??? ??? ??? ??? ?光標(biāo)所在行,dd

?? ??? ??? ??? ??? ?光標(biāo)所在行以下的N行,Ndd

????3.查找模式:/

? ? ? ? 符號/后面跟一個(gè)字符串,vim將會(huì)返回這個(gè)詞第一次出現(xiàn)的位置,?后面跟一個(gè)字符串,vim將會(huì)返回這個(gè)字符串最后一次出現(xiàn)的位置。按下n查找下一個(gè),按下N查找上一個(gè)。?Vim查找支持正則表達(dá)式,例如/vim$匹配行尾的"vim"。 需要查找特殊字符需要轉(zhuǎn)義,例如/vim\$匹配"vim$"。

????4.visual模式:v

????????按v進(jìn)入visual狀態(tài),按箭頭上下可以選擇多行,再用>或<縮進(jìn)或縮出,這里縮進(jìn)或縮出的距離可以在vimrc文件里設(shè)置,詳見本文第7條;按d可以剪切,按y復(fù)制,按p粘貼。

????5.重載文件命令 :e

? ? ? ? 用”:e“命令可以重新載入文件。

????6.替換 :s/待替換詞/替換詞/g

? ? ? ? 命令里的:不可少。g是個(gè)參數(shù),使用g的話是將當(dāng)前行所有的替換,不加g就是只替換一次。用這個(gè)命令可以實(shí)現(xiàn)替換字符串,比如 ”:/city/dream/g“,就可以將當(dāng)前行中所有的city替換為dream。補(bǔ)充一點(diǎn)是,當(dāng)s前面加上%,那也就是替換每行的,比如":%s/city/dream/g"的意思就是將每一行的city替換為dream。

????7.關(guān)于縮進(jìn):

????????縮進(jìn)用 tab 制表符還是空格,個(gè)人愛好問題。但是在大多項(xiàng)目中,習(xí)慣使用空格。關(guān)于縮進(jìn),vim中可以通過如下四個(gè)參數(shù)進(jìn)行配置

????????set tabstop=4?

????????set softtabstop=4?

????????set shiftwidth=4?

????????set noexpandtab / expandtab

這四個(gè)參數(shù)的含義分別是:

????tabstop,表示按一個(gè)tab之后,顯示出來的相當(dāng)于幾個(gè)空格,默認(rèn)的是8個(gè)。

?? ?softtabstop,表示在編輯模式的時(shí)候按退格鍵的時(shí)候退回縮進(jìn)的長度。

?? ?shiftwidth,表示每一級縮進(jìn)的長度,一般設(shè)置成跟 softtabstop 一樣

?? ?expandtab與noexpandtab,當(dāng)設(shè)置成 expandtab 時(shí),縮進(jìn)用空格來表示,noexpandtab 則是用制表符表示一個(gè)縮進(jìn)。

????8. 代碼自動(dòng)對齊功能:

? ? ? ?這個(gè)常見于從別的地方復(fù)制文本到vim里,代碼會(huì)發(fā)生縮進(jìn)異常。具體操作是,在命令模式下(即非“插入”等編輯模式),先輸入gg,這時(shí)候光標(biāo)會(huì)移動(dòng)到第一行第一個(gè)字符,然后按 “=” 號之后切換成大寫,再按一? 下G,這時(shí)候光標(biāo)會(huì)移到最后一行的第一個(gè)字符,這時(shí)候就可以看到代碼被排得整整齊齊了!當(dāng)然這個(gè)有時(shí)候不一定能奏效,還有另外一種推薦是在 ~/.vimrc 里加入如下內(nèi)容:

? ??????set clipboard=unnamed或者set clipboard=unnamedplus

然后只需在普通模式下按 p 即可把系統(tǒng)緩沖區(qū)中的內(nèi)容粘帖到 Vim 中,就像粘帖用 yy 命令得到的內(nèi)容一樣,并且格式不錯(cuò)亂。

? ? ? ? 如果有錯(cuò)誤請大家多多留言指出?。∥乙矔?huì)在后續(xù)繼續(xù)積累vim更多的用法,希望跟大家分享!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 目錄(?)[-] 關(guān)于Vim 1 Vim的幾種模式 啟動(dòng)Vim 文檔操作 光標(biāo)的移動(dòng) 1 基本移動(dòng) 2 翻屏 3 ...
    SunnyLeong閱讀 9,021評論 0 32
  • 命令歷史 以:和/開頭的命令都有歷史紀(jì)錄,可以首先鍵入:或/然后按上下箭頭來選擇某個(gè)歷史命令。 啟動(dòng)vim 在命令...
    im螞蟻閱讀 31,069評論 3 48
  • 公司新員工學(xué)習(xí)有用到,Vim官網(wǎng)的手冊又太大而全,而網(wǎng)上各方資料要么不全面,要么不夠基礎(chǔ)。在網(wǎng)上搜集各方資料,按照...
    甲魚閱讀 163,579評論 43 685
  • 曾經(jīng)在思科的工廠測試系統(tǒng)`KlemTest` (`SUSE`命令行模式)中使用`VI`/`VIM`超過2年半,現(xiàn)在...
    戈多在地獄閱讀 1,986評論 1 13
  • 01 春節(jié)過后,初中同學(xué)組織了聚會(huì),丁盟和王小穆見面了。 他們距離上次見面,時(shí)隔了十五年。 十五年可以改變一個(gè)人多...
    趙小文兒閱讀 1,147評論 10 16

友情鏈接更多精彩內(nèi)容