vim 編輯器簡單使用總結


http://blog.csdn.net/sharp_allen/article/details/27075133轉載

說了這么多,其實還少一個和word,記事本一樣的編輯器,在各個操作系統都有編輯器,在linux里也有,比如gedit編輯器,很方便。在終端里直接敲擊gedit即可打開這個編輯器。保存到桌面,名字為geditfiles,再終端里使用ls命令查看: 

gedit就是一個全屏幕的編輯器!!還有一個編輯器叫做kate編輯器,可以在里面直接敲命令等,圖形界面的東東,和windows下的沒什么區別,還有其他的一些。

注意:

如果我們通過遠程登錄進入linux操作系統的話,是沒有圖形界面的,只有字符界面,這幾個都用不了,那么可以使用字符編輯器vim(在unix里叫vi)。

運行一個vim,可視化的編輯器

vi是一種全屏幕的文本編輯器,光標可以全屏幕的跑,一個純字符界面的,遠程終端可以使用。

Vi有兩種狀態,初始的時候是命令狀態,還有一種狀態是插入狀態。

而命令狀態下,會分出一種模式叫底行模式。底行模式屬於命令狀態的。

在命令狀態下,輸入的內容都被當作命令看待,相反,插入狀態下,都把內容當作文字!需要哪種狀態,就進入即可。

 

如何退出和 保存?

在命令狀態下使用冒號+q+嘆號(:q!)這三個按鍵的組合,在組合中,嘆號!表示強制執行的意思,因為這個命令是不保存就強制退出的。沒有保存就退,那就是強制啊!

使用:wq是保存然后退出

:x也是保存退出

使用大寫的ZZ也是保存退出(不提倡使用)

使用:w 文件名字  是只存為新文件不退出

注意:在插入狀態下不管用,因為全部當作文字處理了,必須按esc之后,先進入命令狀態下再進行命令的操作才能用。

 

如圖這種輸入冒號就在底行的命令狀態也叫底行模式。

注意:以后在linux下寫c和c++程序幾乎都用這個來寫了!

 

如何移動光標呢?

vi提供了一些鍵盤操作光標的功能。(在命令狀態下了)

比如右手上經常按住的hjkl四個鍵,hl是左右,j是往下面移動,k是上面移動。當然,直接使用光標移動也可。

 

 

移動到行首:使用命令數字0,或者直接按home鍵

移動到行尾:使用命令shilft+4即可,或者$符號,或者按end鍵,但是一些unix系統不支持,所以還是命令比較好。

移動到屏幕的行首:使用字母H(head,注意區分大小寫!!!!!!!大寫H,小寫h是向左移動光標)。

移動到屏幕的末尾:使用字母 L(last,同樣是大寫L,小寫l是向右移動光標)

移動到屏幕中間使用字母:M(大寫字母M,middle)

翻頁 ctrl+f  (forward前進)

后退 ctrl+b (backward回退)

想要到某一行去:用冒號: 加行號,或者行號+G

w移動到下一個單詞的開頭

b移動到上一個單詞的開頭

e移動到下一個單詞的末尾

 

注意:

這些命令都是在命令狀態下操作,而鍵盤的按鍵是可以在插入狀態下使用。

 

插入i   a  o 或者insert按鍵

i是正規的從命令模式進入插入模式,是在光標位置前面去插入(insert)

a原來光標位置后面插入(append附加;添加;貼上;簽(名))

o在光標位置下面重啟一行,不會截斷原來的行

 

iao都是小寫的,而以下是大寫的IAO:

I 在行首插入

A 在行尾追加插入

O 在光標位置上面插入空行,注意小寫的o是在光標位置下面插入一行。

 

注意:

insert是命令,插入,覆蓋狀態之間的轉換

 

顯示和取消行號:

: set nu顯示行號在左邊

 

: set nonu取消行號

 

打錯字了,還可以刪除字符,在插入模式下用delete,或者Backspace鍵(最好是在插入狀態下刪除),在命令模式下使用命令比較好,因unix下一些不管用:

刪除:小寫的x 是刪除一個字符(光標位置的)

刪除一串;使用 n+x 刪除n個字符,這是給x命令指定刪除的字符數。但是一般都是在本行刪除,多了不會到下一行,以免誤操作。

dw刪除到下一個單詞的開頭(deleteword)

de刪除到本單詞的結尾(delete end)

db刪除到本單詞的開頭(deletebegin)

dd刪除一整行 3dd刪除3行

刪除從光標位置到行尾d$

刪除到行首d0

:9,16刪除第9到16行

 

刪除錯了,我們還可以恢復:

小寫的u 命令(undo撤銷,按照系統不同,有的支持恢復次數也不一樣,看情況,但是都至少支持恢復一次)

小寫p是刪除之后(東西在vi的剪貼板里)再粘貼到vi編輯器,4p重復插入4次,粘貼在光標位置之后

 

注意:

大寫的P粘貼在光標位置之前

小寫的p在后面粘貼

有些類似剪切

 

移動(move的縮寫m)

:8,11m18從第8行到11行移動到第18行后面

dd剪貼(刪除)一行,3dd剪貼3行,p粘帖

 

復制(copy的縮寫co)

:8,11co18

復制一個字符使用yl,相應的3yl 復制3個字符,粘貼使用p

yw(word)復制一個單詞(帶末尾的空格)

ye不帶末尾的空格!

yy復制一行,而復制3行是3yy

 

替換(replace的縮寫r)

r+替換內容,4r替換4個字符

s把一個字符換成多個字符

cw(change word)替換整個單詞  cw ce

cc替換一整行  c0  c$都一樣,就這些。

 

:5,8s/wf/妻子/g  5到8行把所有的wf替換成妻子,g表示全部

全文替換:先用ctrl+g 得到這個文件多少行

:1,38s/wf/妻子/g

也可以

:1,$s/wf/妻子/g  $表示最后一行

:%s/wf/妻子/g  %表示從第一個到最后一行

~可以把大寫換成小寫,小寫換成大寫

 

查找:/后面開始找和?前面開始找

/a  查找當前光標所在位置后面的a

?q  查找當前光標所在位置前面的q字符,也就是往回找。

注意:光標當前停留在哪里,就是找到了哪里,如果繼續找,則按n(next)即可繼續往下找。到結尾則提示你查找到結尾了。

 

歡迎關注

dashuai的博客是終身學習踐行者,大廠程序員,且專注於工作經驗、學習筆記的分享和日常吐槽,包括但不限於互聯網行業,附帶分享一些PDF電子書,資料,幫忙內推,歡迎拍磚!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM