自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

vim常用實(shí)用用法總結(jié)

系統(tǒng) Linux
vim乃Linux下相當(dāng)牛掰一文本處理神器也,是vi編輯器的升級(jí)版,全稱叫Vi IMproved. 而vi則是Visual Interface的縮寫,他們處理都是ASCII碼字符數(shù)據(jù),熟練使用vim絕對(duì)是你成為L(zhǎng)inux大牛不可或缺的本領(lǐng),所謂千里之行,始于足下。

vim乃Linux下相當(dāng)牛掰一文本處理神器也,是vi編輯器的升級(jí)版,全稱叫Vi IMproved. 而vi則是Visual Interface的縮寫,他們處理都是ASCII碼字符數(shù)據(jù),熟練使用vim絕對(duì)是你成為L(zhǎng)inux大牛不可或缺的本領(lǐng),所謂千里之行,始于足下。

我這里寫的比較啰嗦,但都是非常常用的用法,如果覺(jué)得看著太費(fèi)勁不夠直觀,可以看另一篇博文   VIM命令大全, 這里有更多的常用的實(shí)用的用法;當(dāng)然如果你不想上網(wǎng)查,vim自帶的幫助文檔也有的查,直接輸入vim然后回車,會(huì)進(jìn)入vim編輯器,此時(shí)輸入:help就可以進(jìn)入幫助文檔,輸入 :help command 還可以查處子命令的用法, 例如我想查看 d這個(gè)命令的作用和用法,直接:help d就可以啦,授人以魚(yú)不如以漁嘛。。

下面就本人學(xué)習(xí)過(guò)程中一些非常常用到的比較實(shí)用的用法做一下總結(jié),

首先vim有三種模式: 編輯模式,輸入模式,末行模式


編輯模式: 也叫命令模式,用vim打開(kāi)文件后默認(rèn)進(jìn)入的就是此模式,在此模式下,可以組合使用vim的一些命令,完成對(duì)文件的快捷操作,

字符移動(dòng)操作:

h, j, k, l 四個(gè)鍵分別對(duì)應(yīng) 左,下, 上, 右 操作, 這個(gè)左右比較好理解,h在左邊,l在右邊,j, k在中間表上下,但是我們正常慣用右手的人就有點(diǎn)不好理解,反正我是這樣感覺(jué)的,正常按我的思維左邊的表示上,右邊就下了,比較順手,所以我推測(cè)開(kāi)發(fā)vi的人估計(jì)是個(gè)左撇賴子,很多有成就的牛逼的人都是左撇賴子,愛(ài)因斯坦。。。所以沒(méi)事開(kāi)發(fā)一下右腦也是有好處滴,, 關(guān)于這個(gè)馬哥也有個(gè)助記的方法,就是j代表japan小日本鬼子,k代表korea棒子,在地圖上棒子在鬼子的上面,所以k是向上的箭頭,j是向下的箭頭,當(dāng)然了不管是什么方法只要能幫助記憶就中,黑貓白貓嘛

單詞移動(dòng)操作:

w word 向后移動(dòng)一個(gè)單詞,光標(biāo)定位在詞首

e  end of a word 向后移動(dòng)一個(gè)單詞,光標(biāo)定位在詞尾

b  backword 意思是向前移動(dòng)一個(gè)單詞

句子跳轉(zhuǎn):

) 跳到下一句

( 跳到上一句

段落間跳轉(zhuǎn)

}  下一段

{ 上一段

句子間跳轉(zhuǎn)和段落跳轉(zhuǎn)不太常用,配置文件等的句子段落劃分可能跟我們想的會(huì)有不同啦。

行間跳轉(zhuǎn)

1G / gg 跳轉(zhuǎn)至第一行

G  跳轉(zhuǎn)至最后一行

#G  #為正整數(shù),跳轉(zhuǎn)至第#行

行內(nèi)跳轉(zhuǎn)

^ (shift + 6)  跳至行首(行首第一個(gè)非空字符),這個(gè)托字符在Linux中也是個(gè)神一樣的存在,你會(huì)經(jīng)常和打打交道

0 對(duì),就是數(shù)字0,光標(biāo)跳至絕對(duì)行首(真正的行首)

$ 這個(gè)美元可以跳到行尾,和^一樣也是一個(gè)神一樣的存在,各個(gè)地方你都會(huì)看到她的倩影

跳轉(zhuǎn)進(jìn)階用法:

  上面的這些個(gè)移動(dòng)都是一個(gè)一個(gè)的移動(dòng)的,如果要移動(dòng)的位數(shù)比較多,恰好又不在行首或行尾,一個(gè)一個(gè)點(diǎn),豈不是很麻煩?莫怕,作者早為你想到了,比如我想一下向上移動(dòng)6個(gè)字符,按下6h,效果刷刷的,想一下向后跳8個(gè)詞?按下8w,你懂的,那好吧不哆嗦,以此類推…… 3e, 4b, 5j, 7k, 9) …… 自己好好玩去吧,記住他并在使用的時(shí)候經(jīng)常的想起他并經(jīng)常的使用他,一般人我可不告訴他。當(dāng)你基本脫離上下左右箭頭的時(shí)候,你基本也就離大牛不遠(yuǎn)啦。


輸入模式:

要從命令模式進(jìn)入輸入模式,方法有很多,根據(jù)需要來(lái)使用,注意看我后面標(biāo)出的字母縮寫

  • i insert 在當(dāng)前光標(biāo)之前插入
  • a append  在當(dāng)前光標(biāo)之后插入
  • I 大寫在行首插入
  • A 大寫在行尾插入
  • o 在當(dāng)前光標(biāo)所在行的下面一行插入
  • I  在當(dāng)前光標(biāo)所在行的上面一行插入

在任何模式下按下ESC鍵可以退出當(dāng)前模式,回到命令模式,已經(jīng)是命令模式的則還在命令模式。

編輯是可以了,復(fù)制呢,答案是肯定的,首先確定回到命令模式,

按下yy y是yanK的縮寫,整行內(nèi)容就被復(fù)制到剪切板中了,然后把光標(biāo)移動(dòng)到你想的位置按下p剛把剛才復(fù)制的那行粘貼到你光標(biāo)所在行的下面一行,P大寫則粘貼至上面一行,p是paste的縮寫是也; 剪切的話dd是也,當(dāng)前行的內(nèi)容刪除而后會(huì)放在剪切板中,粘貼方法相同。

再有一個(gè)比較高端的用法可以在命令模式下按下v(按字符選?。┗蛘遃(按行選?。? 此時(shí)會(huì)進(jìn)入可視化模式,移動(dòng)你的光標(biāo)哈哈,就像在windows下拖動(dòng)你的鼠標(biāo)一樣,然后復(fù)制剪切隨便你啦。。

還有個(gè)值得提一下的用法,就是如果想翻屏的話,可以用

  • ctrl + f (forward) 向后翻一屏,
  • ctrl + b (backword) 向前翻一屏,
  • ctrl + d  (down) 向后翻半屏
  • ctrl + u (down) 向前翻半屏

實(shí)用命令 d delete 刪除命令,可以和其他命令組合刪除詞,字符,行,等

例如dh向左刪除當(dāng)前字符,dl向右刪除當(dāng)前字符,dj刪除當(dāng)前行和下面一行,dk刪除當(dāng)前行下上面一行,dw刪除向后一個(gè)單詞,de, db …

當(dāng)然你還可以用 d1h, d2l, d#w, d#b(#用你需要的正整數(shù)代替) … ,如果需要重復(fù)之前的操作,只需按下” . “即可,需要重復(fù)多次就按下多次 “. “

和d稍微不同的還有一個(gè)命令c,這個(gè)命令是哪個(gè)單詞縮寫,我也不知道,用法和d用法類似,不同的是刪除之后直接會(huì)進(jìn)入insert編輯模式, 相當(dāng)于d執(zhí)行后又按下i

常用命令大概這么多了,還有個(gè)比較實(shí)用的用法:窗口的拆分: 當(dāng)你編輯一個(gè)文檔而又需要參照此文檔其他章節(jié)的內(nèi)容又不想再打開(kāi)一個(gè)文檔的時(shí)候就派上用場(chǎng)了, 這個(gè)功能類似于word里的窗口拆分,在word2007中,點(diǎn) “視圖” 菜單 –> “拆分“即可。在編輯文檔的時(shí)候還是非常有用的。

在vim下,按下ctrl + w 然后按s, (split 縮寫)則可以實(shí)現(xiàn)水平拆分,按下 v (vertical 縮寫)則可實(shí)現(xiàn)垂直拆分,具體效果說(shuō)是說(shuō)不清楚的,自己體驗(yàn)一下吧。 需要兩個(gè)窗口切換則先按下ctrl + w 然后按相應(yīng)的上下左右→即可。需要退出的話:q 退出當(dāng)前,:qall退出所有 :!qall 強(qiáng)制退出所有(這是末行模式命令下面會(huì)提到)

還有一個(gè)打開(kāi)文檔的技巧,vim + /path/to/file (相對(duì)或絕對(duì)路徑定位到你要打開(kāi)的文件) 直接打開(kāi)到最后一行, vim +# /path/to/file 打開(kāi)在第#行,

又想起來(lái)一個(gè)命令的撤消: 保證你在命令模式下,按一下u則可以撤消一步操作,按多次撤消多步操作,vim默認(rèn)可以保存50次,這個(gè)值可以通過(guò)編輯/etc/vimrc 中 set history=50那一行的值改變,如果手賤撤消多了也8怕,按ctrl + r (restore) 可以恢復(fù)你的撤消, 按大寫的U可以撤消所有操作。


末行模式:

末行模式下的功能更加強(qiáng)勁,在命令模式下按下冒號(hào):可以進(jìn)入末行模式,:w 保存編輯內(nèi)容,write , :q 退出quit :wq 保存并退出 前面加!表示強(qiáng)制 :!q強(qiáng)制退出,:x = :wq , 

搜索功能: :/text (text為你要查找的字符串) 向后查找, :?text 向前查找, 查找到的內(nèi)容會(huì)高亮顯示, 按n(next)會(huì)和你查找的方向相同找下一個(gè),按大寫N則向相反方向查找下一個(gè)

窗口屬性定義:

  1. :set ai | autoindent 開(kāi)啟自動(dòng)縮進(jìn)(寫腳本時(shí)就老開(kāi)心啦,寫出來(lái)那叫一個(gè)漂亮)
  2. :set nu (number) 顯示行號(hào)
  3. : set nonu (no number) 取消顯示行號(hào)
  4. : set ic | ignorecase 忽略大小寫
  5. :set hlsearch (highlight search) 搜索高亮顯示
  6. :set sm| showmatch 不要想歪了,顯示匹配的括號(hào)

所有的設(shè)置前面加個(gè)no就可以取消顯示了,當(dāng)然你的設(shè)置只對(duì)當(dāng)前編輯的文檔生效,如果想永久生效可以寫入/etc/vimrc配置文件 或~/.vimrc文件,~代表家目錄

好了,下面上一盤壓軸大菜:查找和替換,這個(gè)東西以后編輯配置文件老有用啦,我來(lái)舉個(gè)例子,有圖有真相:

LOOK 1:

原文如下,現(xiàn)在我要把所有的zhishen 后面都加上一個(gè)must,

輸入如下命令

  1. :%s/\(shen\)/\1 must/g 

解釋一下這行命令,進(jìn)入末行模式,% 代表全局查找,s (search)查找命令,紅色標(biāo)出的一對(duì)括號(hào),表示轉(zhuǎn)義,即使用括號(hào)原來(lái)的意思,因?yàn)槔ㄌ?hào)在Linux下有其特有的功能的,后面的\1代表引用前面括號(hào)內(nèi)的內(nèi)容,g (global)表示全局,當(dāng)然后面還可以加i (ignore case)忽略大小寫,如果有需要的話,/ 是每個(gè)字段之間的分隔符,為了方便區(qū)分,某些情況下你可以替換成# @ 都可以。

當(dāng)然像這種簡(jiǎn)單的正則表達(dá)式,只有一個(gè)引用內(nèi)容的括號(hào)可以省略不寫,引用也可以直接用一個(gè)簡(jiǎn)單的&來(lái)解決,于是上面的命令也可以這樣寫:

 :%s/shen/& must/g 效果是一樣的 或者 :%s#shen#& must#g

 效果如下:

LOOK 2:

這里我以apache的配置文件httpd.conf為例,比如從102行到109行的配置我不想啟用了現(xiàn)在,我就可以在每一行前面加個(gè)#注釋掉即可,

:.,109s/^/#/g  這里我把光標(biāo)移動(dòng)到102行,前面的.代表當(dāng)前行,整個(gè)表示從當(dāng)前行到第109行所有開(kāi)頭都用#替換,也可以這樣寫 :102,109s/^/#/g 或者 :.,+7s/^/#/g 再或者 :102,+7s/^/#/g 都是一樣的效果。

LOOK 3:

這個(gè)情景我想把102行到109行移動(dòng)到93行的下面

:102,109d 回車,代表刪除102到109行,但是這里的刪除是先放到剪切板中的,所以下面的你懂啦,把光標(biāo)移動(dòng)94行,按下一個(gè)大寫的P,哈哈就全部粘貼過(guò)來(lái)啦。

就寫這么多了吧,這些都是可能經(jīng)常能用到的功能。vim的功能非常之強(qiáng)大,首先把為些常用的基礎(chǔ)的學(xué)會(huì)吧,再稍微高級(jí)一點(diǎn)的常用功能可以看一下我的另一篇博文《VIM命令大全》,自己結(jié)合說(shuō)明慢慢摸索,基本這些差不多夠平常工作用了。

責(zé)任編輯:奔跑的冰淇淋 來(lái)源: 51CTO博客
相關(guān)推薦

2021-10-22 10:05:19

wget命令Linux

2010-06-28 11:06:04

SQL Server

2021-02-15 12:06:05

PythonSetDict

2020-07-06 07:37:58

Linux虛擬

2020-05-11 09:38:52

Python開(kāi)發(fā)函數(shù)

2010-04-22 10:36:41

Oracle數(shù)據(jù)導(dǎo)入

2010-04-12 16:12:07

Oracle HINT

2020-09-28 15:14:31

Linux常用命令實(shí)用命令

2021-11-04 09:08:39

項(xiàng)目JS 解構(gòu)知識(shí)

2010-07-13 16:40:41

Perl引用

2010-10-08 15:44:17

vim

2010-07-20 13:53:44

Perl引用

2016-10-31 15:27:23

Vim

2017-04-05 15:00:26

VimLinux開(kāi)源

2010-07-16 13:45:41

Perl引用

2016-10-31 15:13:56

Vim

2016-10-27 13:07:39

Vim插件開(kāi)發(fā)者

2010-08-18 09:19:34

Vim編輯器Vim 7.3

2020-08-31 08:25:06

Python時(shí)間模塊開(kāi)發(fā)

2019-09-17 16:30:18

java排序算法
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)