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電子書,資料,幫忙內推,歡迎拍磚!