1. 程式人生 > 其它 >Linux 文字編輯器 Vim

Linux 文字編輯器 Vim

Ø 簡介

本文主要記錄 Linux 中文字編輯器 Vim 的使用,包括以下內容:

1. Vim/Vi 簡介

2. Vim/Vi 工作模式

3. 其他命令

4. 應用例項

1. Vim/Vi 簡介

Vim/Vi 是一個功能強大的全螢幕文字編輯器,是 Linux/UNIX 上最常用的文字編輯器。它的作用是建立、編輯、顯示文字檔案。

注意事項:

1) Vim/Vi 沒有選單,只有命令;

2) 在多使用者編輯同一個檔案時,最後一個使用者儲存時,如果檔案已經被改變的話,會給出提示;

3) Vi 文字編輯器有很多的功能,但沒必要都去學習,只需學習常用的文字編輯就可以了。

2. Vim/Vi 工作模式

1) 命令模式

命令模式是 vi 編輯進入的預設模式。

1. 定位命令

h(左鍵)

左移一個字元

l(右鍵)

右移一個字元

k(上鍵)

上移一行

j(下鍵)

下移一行

0

移至行首

$

移至行尾

Enter

移至下行行首

H

移至螢幕上端

M

移至螢幕中央

L

移至螢幕下端

gg

定位到第一行

G

定位到最後一行

:n ngg nG

定位到第n

2. 刪除命令

x

刪除游標後的字元

X

刪除游標前的字元

nx

刪除游標後的n個字元

dd

刪除游標所在行

ndd

刪除游標後的n

dG

刪除游標處到檔案末尾的內容

D

刪除從游標所在處到行尾

:n1,n2d

刪除指定範圍的行

3. 複製和剪下命令

yyY

複製當前行

nyynY

複製當前行以下n

dd

剪切當前行

ndd

剪切當前行以下n

pP

貼上在當前游標所在行下或行上

4. 替換和取消命令

r

取代游標所在處字元

R

從游標所在處開始替換字元,按 Esc 結束

s

刪除游標所在字元,並進入插入模式

S

刪除游標所在行,並進入插入模式

u

取消上一步操作(可以取消到檔案開啟時的狀態)

ctrl + r

取消後再撤回取消

U

取消當前行的所有操作

5. 搜尋和替換命令

/string

向前搜尋指定字串。

搜尋時忽略大小寫 :set ic

搜尋時匹配大小寫 :set noic

n

搜尋指定字串的下一個出現的位置,N 搜尋上一個出現的位置

:%s/old/new/g

全文替換指定字串,/g表示不確認;/c可以替換前確認

:n1,n2s/old/new/g

在一定範圍內替換指定字串,/g表示不確認;/c可以替換前確認

說明:替換為空字元可以使用::%s/old//g

6. 替換

r

取代游標所在處字元

R

從游標所在處開始替換字元,按 Esc 結束

2) 插入模式

插入模式用於編輯檔案,使用 I 鍵進入插入模式,此時會在下方出現" -- INSERT -- "的提示;返回命令模式使用 ESC 鍵。

1. 插入命令

i

在游標前插入文字

I

在本行開始插入文字

a

在游標後附加文字

A

在本行行末附加文字

o

在游標下插入新行

O

在游標上插入新行

3) 編輯模式

使用":"鍵進入編輯模式,編輯模式的常用命令:

1. :set number

設定顯示行號,或者 :set nu

2. :set nonumber

取消顯示行號,或者 :set nonu

3. :q

退出,或 :q! 強制退出

4. :w

儲存,或 :w! 強制儲存。也可以另存為,例如::w /tmp/file1

注意:單獨執行 w 命令後後,會建立一個於檔案同名的隱藏檔案,例如:.plantask

5. :wq

儲存並退出(或者使用快捷鍵ZZ;強制儲存退出使用 :wq!,但是隻能是檔案的所有者,或者管理員 root

注意:執行 :wq 無論檔案是否改變,都會更新檔案的修改時間。

6. :x

寫入檔案並退出,與 :wq 唯一不同的是,只有當檔案真的被修改了,才更新檔案的修改時間,否不會更新。

7. :e!

放棄所有修改,從上次儲存檔案開始重新編輯。

8. :!

在編輯模式下執行任何命令。例如:

:!ifconfig #在編輯模式下檢視IP地址

3. 其他命令

ctrl + f / b #向下/向上翻頁

ctrl + e / y #向下/向上翻滾

4. 應用例項

1) 匯入檔案內容

:r /etc/issue #匯入 issue 檔案中的內容到當前檔案中(命令模式下)

2) 同時開啟多個檔案

vi -o file1 file2 #同時開啟兩個檔案(以垂直方向上下顯示)

vi -O file1 file2 #同時開啟兩個檔案(以水平方向左右顯示,但是不行?)

說明:使用 ctrl + ww 切換編輯的檔案。

3) Vi 中執行命令,格式::!命令,示例:

:!ls -l /learn/services # vi 中執行命令

:r !date #匯入命令執行結果

4) 定義快捷鍵,格式::map 快捷鍵 觸發命令,示例:

:map ^P I#<ESC> #定義快捷鍵 Ctrl + p 在行首添加註釋(#)

:map ^B 0x #定義快捷鍵 Ctrl + b 刪除行首的第一個字元(可以用於取消註釋)

:map ^E [email protected] #定義快捷鍵 Ctrl + e 在游標處插入郵箱

注意:定義快捷鍵(如:^P)使用 Ctrl + v + p 來完成輸入。

5) 連續行註釋

:7,11s/^/#/g #7~11行的行首添加註釋(#)

:7,11s/#//g #7~11行中替換所有的#

:7,11s/^#//g #7~11行中取消註釋

:1,5s/^/\/\//g #1~5行中新增 // 的註釋,使用"\"轉義符

6) 替換

:ab mymail [email protected] #輸入 mymail + (空格或回車),自動替換為 [email protected]

:unab mymail #取消 mymail 替換

7) 配置 vi 配置檔案 .vimrc

配置 .vimrc 檔案後 vi 配置適用於所有檔案;

該檔案位於每個使用者的 home 目錄下,預設是不存在的,需要單獨建立。

[root@localhost ~]# vi /root/.vimrc

編輯配置內容,例如:

set nu

map ^P I#<ESC>

map ^B 0x

ab mymail [email protected]