vi是所有unix系統都會提供的螢幕編輯器,它提供了乙個視窗裝置,通過它可以編輯檔案。當然,對unix系統略有所知的人,或多或少都覺得vi超級難用,但vi是最基本的編輯器,學好了vi,以後在unix世界裡必將暢行無阻、游刃有餘,因為其他幾種文字處理器並非unix標準配備
用法 習慣於microsoft windows下gui方式編輯器的朋友,剛剛接觸vi肯定會有「排斥反應」的,這一點只能奉勸稍安毋躁……當你習慣於vi之後,你會發現它既精確又有秩序,而且重要的是它對於要編輯的物件極富針對性。
上圖為在cui下輸入「vi」命令後,vi被啟動的狀態。
或者輸入乙個已存在的檔案的路徑,來開啟乙個已經存在的文字檔案。(這裡以用root使用者登入系統,後輸入「vi /etc/x11/xorg.conf」為例。)
上圖為用vi開啟/etc/x11/xorg.conf後的狀態。游標位於左上第乙個字元下滑線的位置。
vi和其他編輯器最不一樣的地方莫過於它把編輯、處理等等的操作分離開來,形成性質不同的3種操作模式,他們分別為「命令模式」、「插入模式」、「ex模式」。
在windows下通常使用的記事本等等的編輯器在開啟檔案的時候,游標已經在處於輸入等待的狀態,也就是說,我們開啟檔案時就可以對檔案進行編輯。 比如,我們要輸入新的文字,或者複製一段文字,所有操作的前提,只要編輯器是被開啟的狀態,操作就是可能的。
但在vi下,為了增強對將要處理的文字的針對性,文字輸入、複製等等不同的操作,是被分離開來的,比如文字輸入的模式叫做「插入模式」,在插入模式 下,我們可以用和windows下一樣的操作方法來對文字進行輸入、編輯等等的操作,但是複製等等非編輯的操作,在插入模式下不能夠完成,而需要切換到相 應的模式下用相應的命令來完成。
在這裡,還是首先對重要的vi的模式進行說明。
★ vi的模式(命令模式、插入模式、ex模式)
1)命令模式:
在我們剛剛通過vi新建或開啟乙個已經存在的檔案時,首先預設被讀取的模式就是「命令模式」,命令模式的特徵就是,在編輯器視窗左下角的位置上沒有任何的提示標語。
在這個模式下,如果不通過相應的命令,我們無法輸入新的文字到這個檔案中。這裡建議新接觸剛剛接觸vi的朋友在用vi開啟乙個檔案時不要處於心切而亂 按鍵盤試圖輸入一些文字到檔案中,因為命令模式所謂的「命令」,並不是我們在命令列提時下輸入的過程諸如「ls -> 回車」等等形式的命令。確切說vi命令模式下的命令,只是計算機鍵盤上的某個按鍵或某些按鍵的組合,當我們在命令模式下敲下鍵盤乙個按鍵的時候,相應命令就已經被執行。
在這裡,首先介紹移動游標的命令。通常游標的移動可以通過鍵盤右邊的方向鍵,但是由於每次移動游標,手都要大幅度的移動到鍵盤右邊,這樣使用vi是體現不出效率的,所以建議使用vi固有的命令(鍵)來控制游標的移動。
游標的移動命令如下所示:
向右移動 --> l
向左移動 --> h
向下移動 --> j
向上移動 --> k
如上所示,例如要向右移動游標8個字元的距離,只要在鍵盤上敲 l 鍵8次即可;向下移動3行的距離,只要在鍵盤上敲 j 鍵3次即可……也就是說,在vi命令模式中通過這幾個鍵(命令)來控制游標的移動。
其次就是文字刪除的命令。在windows下大多數編輯器在刪除文字時只要連續按[backspace]鍵即可。但由於在vi中,插入模式和命令模式是分離開來的,所以在命令模式下需要通過命令(按鍵)來刪除文字,而不是直接按[backspace]鍵。
文字刪除的命令如下所示:
刪除游標所在位置的字元 --> x
刪除游標所在的行 --> dd(敲 d 兩次)
如上所示,例如要刪除從游標位置起向右的3個字元,只要在鍵盤上敲 x 鍵3次即可;要刪除游標所在的行,只要敲 dd (連續敲d鍵兩次),游標所在行的所有字元以及行將會被刪除。
再次,當編輯完了乙個文件,想要儲存後退出的時候的命令為「zz」(大寫、連續敲2次)。
儲存並退出文件:
儲存當前修改並退出 --> zz
另外,vi還有一些編輯性質的命令,一併總結如下
具有編輯性質的有用的命令:
撤銷上一步操作 --> u
移動游標到行首 --> 0 (數字0)
移動游標到行末 --> $
移動游標到當前頁最頂行 --> h
移動游標到當前頁最底行 --> l
向前翻一頁(page up) --> ctrl + f
向後翻一頁(page down) --> ctrl + b
進入輸入模式命令
i 在游標 左側輸入正文[常用]
a 在游標 右側輸入正文[常用]
o 小寫字元o, 在游標所在行的 下一行增添新行
o 大寫字元o, 在游標所在行的 上一行增添新行
i 在游標 所在行的開頭輸入正文
a 在游標 所在行的末尾輸入正文
上面介紹了幾種切換到插入模式的簡單方法。另外還有一些命令,它們允許在進入插入模式之前首先刪去一段
正文,從而實現正文的替換。這些命令包括:
s 用輸入的正文替換游標所指向的字元[常用]
ns 用輸入的正文替換游標右側n 個字元
cw 用輸入的正文替換游標右側的字 [常用]
ncw 用輸入的正文替換游標右側的n 個字
cb 用輸入的正文替換游標左側的字 [常用]
ncb 用輸入的正文替換游標左側的 n 個字
cd 用輸入的正文替換游標的所在行[常用]
ncd 用輸入的正文替換游標下面的n 行
c$ 用輸入的正文替換從游標開始到本行末尾的所有字元[常用]
c0 用輸入的正文替換從本行開頭到游標的所有字元[常用]
r 取代游標所在處的字元, 比如c3 表示將游標所在處的字元替換為字元3 [常用]
r 取代字元直至按【esc】為止
按【esc】鍵或組合鍵【ctrl】+[ 退出輸入模式
末行模式
w 儲存檔案 [常用]
w file 將當前檔案的內容儲存到file檔案
wq 儲存檔案並退出vi編輯器[常用]
wq file 將 當前檔案的內容寫入file 檔案,並保持原有檔案的內容不變,然後退出vi編輯器(假如當前檔案內容有變動但未執行儲存操作,那麼執行該命令後不會退出vi編輯器)
r file 讀取file 檔案的內容,插入當前游標所在行的後面
e file 關閉當前檔案,並開啟新檔案file (如果當前檔案內容有變動但未儲存,則該命令不會被執行)[常用]
f file 將當前檔案重新命名為file [常用]
f 列印當前檔名稱和狀態,如檔案的行數、游標所在的行號等
q 退出vi編輯器(如果當前檔案有改動,則無法退出) [常用]
q! 強制退出vi編輯器(不儲存修改)[常用]
# 將游標移到第#行[常用]
ps: 關於行號使用的一些技巧:
一般用數值來指定絕對行號;字元「.」表示游標所在行的行號;字元「$」表示檔案最後一行的行號,例如:
.+5 將游標從當前行往下移動5 行
$ 將游標移到檔案的最後一行
1 將游標移到檔案的第一行
23w file 將檔案的第23行寫入file檔案
3,5w file 將第3 行至第5 行寫入file 檔案
1,.w file 將第1 行至當前行寫入file 檔案
.,$w file 將當前行至最後一行寫入file 檔案
.,.+5w file 從當前行開始將6 行內容寫入file 檔案
1,$w file 將所有內容寫入file 檔案,相當於:w file 命令
移動游標的操作
Vi編輯器的用法
編輯器是使用計算機的重要工具之一,在各種作業系統中,編輯器都是必不可少的部件。unix及其相似的ix 作業系統系列中,為方便各種使用者在各個不同的環境中使用,提供了一系列的ex編輯器,包括 ex,edit,ed 和 vi.其中ex,edit,ed都是行編輯器,現在已很少有人使用,unix提供他們的原...
VI編輯器的用法
一 unix編輯器概述 編輯器是使用計算機的重要工具之一,在各種作業系統中,編輯器都是必不可少的部件。unix及其相似的ix作業系統系列中,為方便各種使用者在各個不同的環境中使用,提供了一系列的ex編輯器,包括 ex,edit,ed 和vi.其中ex,edit,ed都是行編輯器,現在已很少有人使用,...
Vim編輯器的詳細用法
vim編輯器是linux系統自帶的編輯器,其操作較一般的編輯器要複雜許多,但熟練運用vim會極大地提公升linux系統下編輯文字的速度。看完本文趕緊去試下吧!vim有三種模式,分別為命令模式 command mode 編輯模式 insert mode 及末行模式 last line mode 我們在...