vi編輯器有三種模式:
一般模式、編輯模式、命令行模式
一般模式
以vi打開的時候就是一般模式了,可以使用上下左右鍵來移動光標,你可以使用刪除字符刪除整行來處理文件內容,也可以使用複製、貼貼來處理你的文件數據。當然你還可以使用選項來移動光標,具體如下:
G 移動到最後一行的首字母
1G 移動到第一行的首字母
Ctrl+d 往下跳半個屏幕
Ctrl+u 往上跳半個屏幕
在當前屏幕下,快速切換光標的位置
H 光標會跳到當前屏幕的最高一行
M 光標會跳到當前屏幕的正中間
L 光標會跳到當前屏幕的最後一行
還可以把命令的輸出的內容輸入到當前的vi的文檔中
例如:輸入!!ls –l //將ls –l的內容輸入到vi當前文件中
就可以把當前的目錄下面的ls –l得到的內容輸入到vi的這個文件中去
!!date //將date命令的內容輸入到當前vi的文件中
!}sort //排序將vi的文檔進行排序
!}fmt –w60 //段落的寬度變爲60
在一般模式下面輸入:/?進入命令行模式
替代word,搜尋
/word //向光標之下尋找一個名稱爲 word 癿字符串。例如要在檔案內搜尋 vbird 這個字符串,就輸入 /vbird 即可! (常用)
n //就是繼續搜尋下一個關鍵字
:s/this/that //把光標所在的行的this替換成that
:1,$s/this/that把第一行到最後一行的this進行替換成that
:1,10s/this/that/g 把第一行到第十行的this進行替換成that
將其他文件寫入到當前的文件中,假設當前#vi file1,
:r file2 //就把file2的內容寫在了file1裏面了在編輯的數據中,讀入另一個檔案的數據。亦即將 『filename』 這個檔案內容加到遊標所在行後面
:n1,n2 w [filename] 將 n1 行到 n2行 的內容儲存成 filename 這個檔案。
行號設置
:set nu 顯示行號,設定之後,會在每一行癿前綴顯示該行癿行號
:set nonu 與set nu 相反,爲取消行號!
刪除、複製與貼上(一般模式下)
x ,X //在一行字當中,x 爲向後刪除一個字符 (相當亍 [del] 按鍵), X 爲向前刪除一個字符(相當於 [backspace] 亦即是退格鍵) (常用)
nx //n 爲數字,連續向後刪除 n 個字符。舉例來說,我要連續刪除 10 個字符, 『10x』。
dd //刪除光標所在的那一整行(常用)
ndd //n 爲數字。刪除光標所在的行向下 n 行,例如 20dd 則是向下刪除 20 列行(常用)
yy //複製光標所在的那一行(常用)
nyy //n 爲數字。複製光標所在行向下 n 行,例如 20yy 則是複製 20 行(常用)
p,P //p 爲將已複製的內容在光標下一行貼上,大P 則爲貼在遊標上一行! 舉例來說,
前光標在 第 20 行,且已經複製了 10 行內容。則按下小 p 後, 那 10 行數據會貼在原
本的 20 行之後,亦即由 21 行開始貼。但如果是按下 大P 呢? 那麼原本的第 20 行會被推
到變成 30 行。 (常用)
u //復原前一個動作。(常用)
[Ctrl]+r //重做上一個動作。(常用)
. //小數點,意思是重複前一個動作的意思。 如果你想要重複刪除、重複貼上等等動作,按
下小數點『.』就好了! (常用)
編輯模式
i I a A o O
按下這六個字母可以進入insert模式就是可以寫入的意思
i 爲『從目前光標所在處插入』, I 爲『在目前所在行的第一個非空格符處開始插入』。 (常用)
a 爲『從目前光標所在的下一個字符處開始插入』, A 爲『從光標所在行的最後一個字符處開始插入』。(常用)
o這是英文字母 o 的小寫。o 爲『在目前光標所在的下一行處插入新的一行』; O 爲在目前光標所在處的上一行插入新的一行!(常用)
按r R這兩個字母可以進入取代模式,r只會取代光標所在的那個字符一次;R會一直取代光標所在的文字,直到按下ESCZ爲止;
[Esc] 退出編輯模式,回到一般模式中(常用)
按:返回命令行模式
然後
:q //沒有寫入內容就離開
:q! // 寫入內容但不想存檔就離開
:x //寫入內容並存檔
:wq //寫入內容並存檔
接下來,介紹vim裏面的一個多窗口
:sp [filename] //開啓一個新窗口,如果有加 filename, 表示在新窗口開啓一個新文件,否則表示兩個窗口爲同一個文件內容(同步顯示)。
[ctrl]+w+ j 或者 [ctrl]+w+↓ //按鍵的按法是:先按下 [ctrl] 不放開, 同時按下 w 後,放開所有的按鍵,然後再按下 j (或向下鍵),則光標可移動到下方的窗口。
ctrl]+w+ k //或者[ctrl]+w+↑ 同上,不過光標移動到上面的窗口。
[ctrl]+w+ q //其實就是 :q 結束離開啦! 舉例來說,如果我想要結束下方的窗口,那麼利用 [ctrl]+w+↓ 移動到下方窗口後,按下 :q 即可離開, 也可以按下 [ctrl]+w+q 離開!
vim 的環境設定參數
:set nu 與:set nonu //就是設定不取消行號啊!
:set hlsearch 與:set nohlsearch //hlsearch 就是 high light search(高亮度搜尋)。 這個就是設定是否將搜索的字符串反白的設定值。默認值是 hlsearch
:set autoindent 與:set noautoindent //是否自動縮排?autoindent 就是自動縮排。
:set backup//是否自動儲存備份檔?一般是 nobackup 的, 如果設定 backup 的話,那麼當你更改任何一個文件時,則源文件會被另存成一個檔名爲 filename~ 的檔案。 舉例來說,我們編輯 hosts ,設定 :set backup ,那麼當更改 hosts 時,在同目錄下,就會產生 hosts~ 文件名的文件,記錄原始 hosts 文件內容
:set ruler //還記得我們提到的右下角的一些狀態欄說明嗎? 這個 ruler 就是在顯示或者不顯示該設定值
:set showmode //這個則是,是否要顯示 --INSERT—之類的字符在左下角的狀態欄。
:set backspace=(012) // 一般來說, 如果我們按下 i 進入編輯模式後,可以利用退格鍵 (backspace) 來刪除任意字符。 但是,某些 distribution 則不許如此。此時,我們就可以透過 backspace 來設定, 當 backspace 爲 2 時,就是可以刪除任意值;0 或1 時,僅可刪除剛剛輸入的字符, 而無法刪除原本就已經存在的文字
:set all //顯示目前所有的環境變數設定值
:set //顯示與系統默訃值不同的設定參數, 一般來說就是你有自行變更過的設
定參數
:syntax on 與:syntax off //是否依據程序相關語法顯示不同顏色? 舉例來說,在編輯一個純文本檔時,如果開頭是以 # 開始,那麼該行就會變成藍色。 如果你懂得寫程序,那麼這個 :syntax on 還會主動的幫你除錯呢!但是, 如果你僅是編寫純文本檔案,要避免顏色對你的屏幕產生的干擾,則可以取消這個設定。
:set bg=dark 與:set bg=light //可用以顯示不同的顏色色調,預設是『 light 』。如果你常常發現批註的字體深藍色實在很不容易看, 那麼這裏可以設定爲 dark 喔!試看看,會有不同的樣式呢!
# vim ~/.vimrc
set hlsearch
set backspace=2
set autoindent
set ruler
set showmode
set nu
set bg=dark
syntax on
建立的文件會幫我們設定好vim的環境參數
下面在鳥哥書上面截取的一個圖