歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Unix知識 >> Unix基礎知識

Unix操作系統常用配置文件(14)

1.1.1  vi的兩種模式

vi編輯器的兩種工作模式:命令模式和輸入模式。

在命令模式下,vi將擊鍵解釋為命令。有許多vi命令,如可以使用vi命令來存儲一個文件、離開vi、移動光標到一個文件的不同位置或者修改、重排、刪除、替換、查找文本。在輸入模式下按Esc鍵則回到命令模式。

在輸入模式下,可以在光標位置插入鍵入的字符。由於vi啟動後默認處於命令模式(這一點與大多數其他系統上的文本編輯器不同),所以需要首先切換到輸入模式才可以進行文本輸入工作。從命令模式切換到輸入模式可以使用如下命令:

命令

動作

a

將在光標所在位置之後插入文本

A

將在光標所在行末插入文本

i

將在光標所在位置之前插入文本

I

將在光標所在行的第一個非空字符前插入文本

o

將在光標所在行的下一行開始插入文本

O(大寫的o)

將在光標所在行的上一行開始插入文本

 

1.1.2  vi的基本操作

(1)    定位光標

編輯文本時,需要把光標定位到適當的位置,從而在這些位置上插入附加的文本、刪除文本、改正錯誤、修改單詞或者在已經存在文件的末尾再加上一段。在命令模式下選擇光標位置的命令稱為光標定位命令。

命令

動作

j 或下箭頭

向下移動一行

k或上箭頭

向上移動一行

h或左箭頭

向左移動一個字符

l或右箭頭

向右移動一個字符

空格鍵

向右移動一個字符

Enter或+

移動到下一行的第一個非空字符

減號-

移動到上一行的第一個非空字符

0(零)

移動到當前行的起始位置

$

移動到當前行的末尾位置

^

移動到當前行的第一個非空字符

Ctrl加d

向下半頁

Ctrl加f

向下一頁

Ctrl加u

向上半頁

Ctrl加b

向上一頁

H

移動至屏幕第一行

M

移動至屏幕當前顯示的那些行的中間一行

L

移動至屏幕最後一行

G

移動至文件或緩沖區的最後一行

w

移動到下一個單詞的起始位置

b

移動到當前單詞的起始位置或移動到上一個單詞的起始位置

e

移動到當前單詞的末尾位置或移動到下一個單詞的末尾位置

W

和w相似(w以標點符號和空格區分單詞,W以空格區分單詞)

B

和b相似(b以標點符號和空格區分單詞,B以空格區分單詞)

(

移動到上一句的起始位置(句子是以!.?三種符號來界定)

)

移動到下一句的起始位置

{

移動到上一段的起始位置(段落是以段落間的空白行界定)

}

移動到下一段的起始位置

 

可以在一些命令的前面加上一個數字表示移動的范圍。如:3j代表向下移動3行,5w代表移動到後面第5個單詞的起始位置。

在G前面加一個數字可以直接移動到指定的行,如:1G代表移動到文件或緩沖區的第一行,10G代表移動到文件或緩沖區的第10行。

(2)    搜索文本

如果要通過浏覽每一行來找到文件中的某個單詞、某個短語,或者某個數字,那是很困難的。和多數編輯器和字處理軟件一樣,vi也提供搜索命令。

命令

動作

/string

前向查找字符串(到達文件尾後從文件頭重新開始)

?string

後向查找字符串(到達文件頭後從文件尾重新開始)

n

配合/和?使用,重復一次

N

配合/和?使用,反方向重復一次

:s/str1/str2

用str2替換當前行上的第一個str1

:s/str1/str2/g

用str2替換當前行上所有的str1

:%s/str1/str2/g

用str2替換當前緩沖區中所有的str1

 

(3)    保存文件

前面已經介紹為如何在退出vi時保存文件,在不退出vi的情況下我們也可以保存文件。

命令

動作

:w

保存緩沖區到vi正在編輯的文件中

:w filename

保存緩沖區到指定的文件中

:w! filename

強制重寫已經存在的指定文件

 

(4)    插入文本

要在文件中插入文本,在輸入模式下可以直接插入,在命令模式下需要首先切換到輸入模式。

(5)    刪除文本

對一個文件進行修改可能會涉及到刪除文本,刪除字符必須處於命令模式,如果在輸入模式下輸入刪除字符命令,慈銘的字母將作為字符顯示在緩沖區文件中。一旦發生這種情況,按Esc鍵回到命令模式後再按u來撤銷這次錯誤的操作。

命令

動作

x

刪除光標所在位置的字符

dd

刪除光標所在行

D

刪除光標所在位置到所在行結尾的所有字符

s

刪除光標所在位置的字符,並進入輸入模式

S

刪除光標所在行,並進入輸入模式

 

與定位光標部分的命令類似,也可以在某些刪除命令的前面加上一個數字。如:4x代表刪除4個字符,8dd代表刪除8行。

也可以指定一個要刪除的行的范圍,方法如下:按冒號鍵,輸入想刪除的兩個行號(包括首尾兩行),兩個行號之間用逗號隔開,再按d鍵,最後按Enter鍵。例如要刪除從第12行到第36行的所有行,只要鍵入:12,36d並按Enter。

(6)    修改文本

經常面對的另一個編輯任務是替換某個字符或某個字符串。

命令

動作

r

替換單個字符

R

進入替換狀態,所輸入字符串會替換原有字符串

u

只撤銷上一次編輯

U

撤銷在當前行的全部修改

 

使用R命令時如果替換已經進行到行尾,不會換行,而是在行尾繼續追加。
Copyright © Linux教程網 All Rights Reserved