Linux系統 vi/vim文字編輯器
Linux系統 vi/vim文字編輯器
(一)Vim/Vi簡介
(二)Vim/Vi工作模式
(三)Vim/Vi基本使用
(四)Vim/Vi應用技巧
(一)Vim/Vi簡介
Vim/Vi是一個功能強大的全螢幕文字編輯器,是Linux/UNIX上最常用的文字編輯器,它的作用是建立、編輯、顯示文字檔案。
vim或者vi文字編輯是Linux下最常用的編輯器。vi 和vim 編輯器的區別是vim是vi的改進版本,在vi 編輯器的基礎上上擴充套件了很多實用的功能。 大多數的linux/unix 發行版本中都使用 vim 代替了原來的 vi 文字編輯器。 如果是centos或者redhat系統,當系統安裝完畢後,vi/vim 文字編輯器預設情況下就已經被安裝了。如果是debian/ubuntu系統下,預設情況下,vim編輯器是不會被安裝的。你需要在ubuntu系統下手動安裝vim編輯。
vi/vim文字編輯器是我們在linux系統下工作可以說是必須會使用的一個工具,因為linux系統的設計理念是一切皆檔案,也就是說,你在linux裡的任何操作都是對檔案的操作,所以會經常去操作檔案,更改檔案,儲存檔案,退出並儲存檔案。
(二)Vim/Vi工作模式
三種模式:
命令模式
插入模式
末行模式
三者模式的區別是什麼呢?
命令模式:vi/vim 編輯器進入後的預設模式,從命令模式可以切換到插入和末行模式,如果當你進入另外的兩種模式後,可以使用“ESC”鍵退回到命令模式,在命令模式下,可以輸入一些文字編輯器特有的命令,比如說你想編輯檔案,那麼就需要輸入“i”,讓當前模式變為插入模式或者輸入模式,這樣你就可以編輯這個文字了。
插入模式:顧名思義就是要對本文做輸入的操作,也就是說可以對檔案做出更改操作。否則,你在命令模式下,vi/vim 文字編輯器是隻讀模式,你無法對文字做出更改。
末行模式:是命令模式下輸入”:”,當你在輸入模式下,對檔案做了更改,那麼需要先退回到命令命令,再進入末行模式,並輸入”wq”後,即可儲存並退出 vi/vim 文字編輯器。如果想不儲存退出 vi/vim 文字編輯器,那麼直接輸入”q!”,即可。
(三)Vim/Vi基本使用
(1)進入vi/vim文字編輯器的命令
vi filename:開啟或新建檔案,並將游標置於第一行行首的位置 vi +n filename: 開啟檔案,並將游標置於第n行的位置 vi + filename: 開啟檔案,並將游標置於最後一行的位置 vi +/pattern filename: 開啟檔案,並將游標置於第一個與pattern匹配的行首 vi -r filename: 在上次徵用vim 文字編輯器的時候發生系統奔潰後,恢復filename 檔案 vi filename1…filenamen: linux vi/vim 文字編輯器可以通過開啟多個檔案,依次進行編輯
(2) Linux vi/vim 文字編輯器插入文字類命令
命令 作用 a 在游標後附加文字 A 在本行行末附加文字 i 在游標前插入文字 I 在本行開始插入文字 o 在游標下插入新行 O 在游標上插入新行
(3) linux vi/vim 文字編輯器下移動游標的命令
命令 作用 h 左移一個字元 j 下移一行 k 上移一行 l 下移一個字元 $ 移到行尾 0 移到行首 H 移至螢幕上端 M 移至螢幕中央 L 移至螢幕下端
補充:
:set nu 設定行號
:set nonu 取消行號
gg 到第一行
G 到最後一行
nG 到第n行
:n 到第n行
(4)Linux vi/vim 文字編輯下刪除命令
命令 作用 x 刪除游標所在處字元 nx 刪除游標所在處後n個字元 dd 刪除游標所在行 ndd 刪除游標往下n行 dG 刪除游標所在行末尾的內容 D 刪除從游標所在處到行尾 :n1,n2d 刪除指定範圍的行
(5 Linux vi/vim 文字編輯器搜尋及替換命令
命令 作用 /string 向前搜尋指定字串 開啟搜尋時忽略大小寫 :set ic 關閉搜尋時忽略大小寫 :set noic n 搜尋指定字串的下一個出現位置 :%s/old/new/g 全文替換指定字串 :n1,n2s/old/new/g 在一定範圍內替換指定字串,後面g意思是在替換時是否確認,c為沒有提示 r 取代游標所在處字元 R 從游標所在處開始替換字元,按Esc結束 u 取消上一步操作
(6) Linux vi/vim 文字編輯器拷貝和貼上命令
命令 作用 yy、Y 複製當前行 nyy、nY 複製當前行以下n行 dd 剪切當前行 ndd 剪切當前行以下n行 p、P 貼上在當前游標所在行下或行上
(7) Linux vi/vim 編輯器儲存和退出命令
命令 作用 :w 儲存修改 :w new_filename 另存為指定檔案 :wq 儲存修改並退出 ZZ 快捷鍵,儲存修改並退出 :q! 不儲存修改退出 :wq! 儲存修改並退出(檔案所有者可忽略檔案的只讀屬性) 注意:對檔案可以強行儲存退出的只可能是檔案所有者或者是root使用者
(四)Vim/Vi應用技巧
(1)
在Vi中執行命令:![命令]
我這裡執行:!date
我們可以看到在末行模式裡,可以執行系統命令,執行完以後也可以繼續回到vi/vim編輯器介面
命令格式:
:![命令]
注意:一定要在末行模式才能使用
(2)
匯入檔案:r 檔名
這個功能就是可以匯入別的文字的內容到現在編輯的文字上。
我們現在將/newdir1/newdir1的內容匯入到/newdir/newdir中
注意:現在/newdir/newdir為空文字
補充:
剛才我們知道可以在末行模式執行系統命令,然後又回到vi/vim編輯器,如果我們想把執行命令的結果匯入到文字中,應該怎麼辦,既然知道可以匯入文字,那也可以匯入命令執行的結果。
在Vi中匯入執行命令的結果:r !date
(3)
定義快捷鍵:map 快捷鍵 觸發命令
在linux中使用 ^符號
ctrl+v,後ctrl+[符號]
範例:
:map ^P I#<ESC>
這裡我以下面舉例, 0是游標移到行首,x是刪除游標所在位置的字元
:map ^B 0x
我按一下ctrl+b就刪除了第二行的#符
取消快捷鍵:
:unmap ^p 取消快捷鍵
(4)
連續行註釋
:n1,n2s/^/#/g
:n1,n2s/^#//g
:n1,n2s/^/\/\//g
我們以:n1,n2s/^/#/g來解釋,n1到n2行的行首都加上#。
下面是:4,8s/^/#/g
在4到8行行首加上#
(5)
替換快捷鍵
意思很明顯,就是一個字元或字串替換另一個字元或者字串。
格式:
ab [被替換的內容] [替換的內容]
例子:
定義ab替換快捷鍵:ab mymail [email protected]
取消ab替換的定義:unab mymail
輸入mymail後,按空格或者回車即可替換