Linux學習:vim程序編輯器

本次記錄vim這款文本編輯器的使用方法及它有哪些使用實例等。

基本概念

在Linux環境中,配置文件對整個系統來說具有舉足輕重的作用,而對於其都是以ASCII的純文本形式存在,而利用文本編輯器就能夠達到方便修改配置的目的。

vi是UNIX操作系統和UNIX Like操作系統中最通用的全屏幕純文本編輯器。而Linux中的vi編輯器叫vim,它是vi的增強版(vi improved),與vi編輯器兼容,而且實現了很多增強功能。

vim的有哪些特點:

1. 所有的UNIX Like系統都會內置的文本編輯器,其他的文本編輯器則不一定會存在

2. 很多軟件的編輯接口都會主動調用它

3. 具有程序編輯的能力,可以主動以字體顏色辨別語法的正確性,方便程序設計

4. 程序簡單,編輯速度相當快速

Vim的工作模式

Vim工作在三種模式下,分別是一般模式、編輯模式與命令模式。

w 一般模式(輸入模式)

Vim打開一個文件就直接進入該模式(默認模式),在這個模式中,可以使用上下左右鍵移動光標,刪除字符或刪除整行,也可以複製、粘貼你的文件數據。

w 編輯模式

一般模式下無法編輯文件內容。通常在Linux中,按下“i, I, a, A, o, O, r, R”按鍵時,在界面的左下方會出現INSERT或REPLACE的字樣,此時纔可以進行編輯。

w 命令模式(末行模式)

在一般模式當中,輸入“:,/,?”中的任何一個,就可以將光標移動到當前屏幕最下面那一行。在此模式下,可以提供查找數據的操作,而讀取、保存、批量替換字符、離開vim、顯示行號等操作也都在此模式下進行。

Vim三種模式切換的方式

1. 一般模式 –> 編輯模式(Insert Mode or Replace Mode)

i a o r I A O R

2. 編輯模式 –>一般模式

【ESC】

3. 一般模式 –>命令模式

: ? /

4. 命令模式 –>一般模式

雙擊【ESC】

一般模式與編輯模式及命令模式可相互切換,但編輯模式與命令模式之間不可相互切換。

Vim通用操作說明

1. 打開vim

vim /PATH/TO/SOMEFILE

請注意,vim後面一定要加文件名,不管該文件名存在與否。

vim +# /PATH/TO/SOMEFILE

#代表行號,表示進入文件後,光標直接定位第幾行。

vim +/PATTERN /PATH/TO/SOMEFILE

PATTERN指定爲字符串,表示進入文件後,光標直接定位到PATTERN所在的行

2. 關閉vim

在命令模式下輸入有關命令退出vim。

:q 退出

:q! 不保存退出

:wq 保存退出(同x, ZZ)

Vim一般模式下操作說明

w 光標跳轉

1. 字符間跳轉

h: 光標向左移動一個字符

l: 光標向右移動一個字符

j: 光標向下移動一個字符

k: 光標向上移動一個字符

#COMMAND #代表數字

2. 單詞間跳轉

w: 光標所在位置的下一個單詞詞首

b: 光標所在位置的上一個單詞詞首

e: 光標所在位置的下一個單詞詞尾

#COMMAND #代表數字

3. 行內跳轉

^: 跳轉至行首的第一個非空白字符

0: 跳轉至行首(功能HOME鍵)

$: 跳轉至行尾(功能END鍵)

4. 行間移動

gg: 跳轉到第一行(同1G)

G: 跳轉到最後一行

n[Enter]: 當前光標所在處向下移動n行(n爲數字)

#G

w 編輯命令

1. 刪除命令:

x: 刪除光標所在的字符(#x)

xp: 相鄰字符對調

dd: 刪除光標所在的整行(#dd)

dw、de、db等

2. 複製命令:

yy: 複製光標所在的整行(#yy)

y1G、yG、y0等

3. 粘貼命令:

1) 如果此複製或刪除的內容不是一個完整行

p: 粘貼至當前光標所在處後面

P: 粘貼至當前光標所在處前面

2) 如果此複製的內容是完整行

p: 粘貼至當前光標所在行下方

P: 粘貼至當前光標所在行上方

4. 改變命令:

cc: 刪除光標所在的整行,並等待用戶鍵入新內容

c$、c0、cw等

5. 撤消命令:

u: 復原前一個操作(#u)

[Ctrl]+r: 重做上一個操作

. : 重複前一個操作

6. 翻屏操作:

[Ctrl]+[f]: 向後一屏

[Ctrl]+[b]: 向前一屏

[Ctrl]+[d]: 向後半屏

[Ctrl]+[u]: 向前半屏

Vim編輯模式下操作說明

i: insert 從當前光標處前面插入

a: append 從當前光標所在下一字符處插入

o: new line 從當前光標所在下一行插入新行

r: replace 替換光標所在的字符一次

I: 從當前光標所在行的第一個非空字符處前面插入

A: 從當前光標所在行的最後一個字符處插入

O: 從當前光標所在的上一行插入新行

R: 一直替換光標所在的文字,直到按下[ESC]鍵爲止

Vim命令模式下操作說明

1. 地址定界範圍

:start_pos,end_pos

#: 移動光標到當前第#行(可帶+-號)

#,#: 從起始行起到結束行範圍

#,+#:從指定的行開始向後移動#行結束

. : 當前行

$: 最後一行

%; 全文,相當於1,$

/pat1/: 定位到第一次被此模式所匹配的行(#,/pat1/)

/pat1/,/pat2/: 從第一次匹配pat1的行開始到第一次匹配pat2結束

後可跟編輯命令:d, y, w, r

2. 查找

/PATTERN: 從當前光標所在位置向尾部進行查找

?PATTERN:從當前光標所在位置向首部進行查找

n: 與命令同方向

N:與命令反方向

3. 查找替換

s: 在地址定界範圍內完成查找替換操作

s/要查找的內容/替換爲的內容/修飾符

要查找的內容:可使用模式

替換爲的內容:不能使用模式,但可以使用後向引用符號,以引用前面模式中的分組括號所匹配到的內容

\1, \2, ...

&: 引用“要查找的內容”匹配到的整個內容

修飾符:

i: 忽略大小寫

g: 全局替換

/: 用於分隔符,所以,要查找的內容或替換爲的內容中出現此符號,要使用\對其轉義,使用格式:\/

分隔符可替換爲其它字符:例如@,#等

:n1,n2s/word1/word2/g 在第n1到n2行之間尋找word1這個字符串,並將該字符串替換爲word2

4. 保存、退出命令

:wq 將編輯的數據寫入硬盤文件後退出(同x)

:wq! 若文件屬性爲“只讀”時,強制寫入且保存後退出

:q 退出vim

:q! 若曾修改過文件,又不想存儲,使用“!”爲強制離開不保存文件

ZZ 若文件沒改動,則不保存離開。若文件被改動,則保存後離開

:w[filename] 將編輯的數據另存到一個文件中(n1,n2w[filename])

:r[filename] 在編輯的數據中,讀入另一個文件的數據,即將此文件內容加到光標所在行後面

:! Command 暫時離開vim到命令行模式下執行command的顯示結果

Vim多文件模式下操作說明

1. 多個文件打開

Vim FILE1 FILE2 ……

:next 進入下一個文件

:first 進入第一個文件

:prev 進入上一個文件

:last 進入最後一個文件

:files 列出目前這個vim打開的所有文件

:wqall 保存所有文件退出

:q!all 不保存強制所有文件退出

2. 多文件窗口分割

Vim –o|-O FILE1 FILE2 ……

-o: 水平分割

-O: 垂直分割

[Ctrl+w], 箭頭鍵 指明文件方向

3. 單文件窗口分割

[Ctrl+w], s: 水平分割

[Ctrl+w], v: 垂直分割

定製Vim的工作特性

1. 行號

顯示:set number

禁用:set nonumber

2. 括號匹配

顯示:set sm

禁用:set nosm

3. 自動縮進

顯示:set ai

禁用:set noai

4. 高亮搜索

顯示:set hlsearch

禁用:set nohlsearch

5. 語法着色

顯示:syntax on

禁用:syntax off

6. 忽略字符大小寫

顯示:set ic

禁用:set noic

Vim特性設定的永久生效方式

全局配置文件:/etc/vimrc

用戶個人的配置文件:~/.vimrc (默認不存在)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章