文章出處

3.1 vi 簡介 
vi 是 UNIX 世界里使用非常普遍的全屏幕文本編輯器,幾乎任何一種UNIX系統都會提供這套軟件。AIX當然也支持這種編輯器。熟悉DOS下的文本處理后,用戶在開始接觸vi時也許會感到它并不好用,然而一旦用戶熟悉、掌握了vi ,就會發現它實在是一種功能強大、使用靈活方便的編輯器。

UNIX 提供一系列的ex編輯器,包括ex,edit和vi。相對于全屏幕編輯器,現在可能很難想像如何使用ex,edit這種行列編輯器。 vi 的原意是“Visual”,它是一個立即反應的編輯程式,也就是說可以立刻看到操作結果。vi 必須控制整個終端屏幕的顯示輸出,而終端的種類有許多種,特性又不盡相同,所以 vi 有必要知道現在所使用的是哪一種終端。這是通過 TERM 這個環境變量來設定的。

在命令行鍵入vi就可以進入vi的編輯環境。vi 有三種模式:命令模式、文本輸入模式以及命令項模式。執行vi以后,會先進入命令模式,此時用戶可輸入各種子命令對行進行編輯,如刪除行、拷貝行等。在文本輸入模式下,用戶可以修改一行的內容并添加新行。在命令模式下鍵入 i、I、a 、A或o等即可進入文本輸入模式,鍵入ESC鍵即可返回命令模式。在命令項模式下,用戶可以通過子命令輸入更多的參數,如“/”子命令要求輸入下一個查找項。用戶使用ESC鍵返回命令模式。

3.2 vi的進入與離開 
vi可以在全屏幕方式下編輯一個或多個文件。如果在執行vi時沒有指定文件名,則vi 命令會自動產生一個無名的空文件。如果指定的文件不存在,則vi將按指定的文件名創建一個新的文件。進入 vi 后屏幕左方會出現波浪符號,凡是列首有該符號就代表此列目前是空的。要離開 vi 可以在命令模式下鍵入 :q , :wq 命令則是存檔后再離開(注意冒號)。注意vi并不鎖住所編輯的文件,因此多個用戶可能同時編輯一個文件,那么最后保存的文件版本將被保留。

以下是vi 命令使用的一些選項及說明:

-c command :在對文件進行編輯前,先執行command命令;

-r filename :恢復文件filename;

-R :以只讀方式編輯文件;

-y number :每屏只編輯number 行文本。

3.3 vi 的文本輸入模式 
使用以下幾種命令可以進入文本輸入模式(用戶在任何時候都可以按ESC鍵返回命令模式):

新增 (append) :

a :從光標所在位置之后開始輸入文本

A :從光標所在行尾開始輸入文本

插入 (insert) :

i :從光標所在位置之前開始輸入文本

I :從光標所在行的第一個非空白字符前面開始輸入文本

開始 (open) :

o :在光標所在行后插入一新行。

O :在光標所在行前插入一新行。

3.4 vi 基本編輯命令
在 vi 里,輸入跟編輯是兩碼事。編輯是在命令模式下操作的,先利用命令移動光標來定位要進行編輯的地方,然后才下命令做編輯。

命令
說明
備注

cc 或S
修改一整行的文本

C
改變一行中光標所在位置之后的部分

dd
刪除光標所在的列

D
刪除一行中光標所在位置之后的部分

dw 
刪除光標所在的單詞

J
將下一行文本內容合并到本行行尾

r
修改光標所在字符,r 后接要修正的字符

R
修改本行內容

s
修改光標所在字符 

u
恢復上一次所做的修改 

x
刪除光標所在字符

X
刪除光標左側字符

~
改變光標所在字符的大小寫

.
重復上一次的操作

<<
將當前行移到左邊

>>
將當前行移到右邊

p
將緩沖區的內容拷貝到光標所在行的下一行

P
將緩沖區的內容拷貝到光標所在行的上一行

“ad
將文本刪除至緩沖區a

“ap
粘貼緩沖區a中的內容

yy或Y
將當前行存入緩沖區

yw
將光標所在的單詞存入緩沖區

0
移動到光標所在列的最前面
=[Home]


移動到光標所在列的最后面
=[End]

[CTRL+d]
向下半頁
=[PageDown]

[CTRL+f]
向下一頁


[CTRL+u]
向上半頁 


[CTRL+b]
向上一頁
=[PageUp]

[CTRL+e]
下滾一行

[CTRL+y]
上滾一行

H
移動到屏幕的第一行

M
移動到屏幕的中間

L
移動到屏幕的最后一行 

b
移動到上個小字的第一個字母 

B
移動到上個大字的第一個字母

w
移動到下個小字的第一個字母 

W
移動到下個大字的第一個字母 

e
移動到下個小字的最后一個字母

E
移動到下個大字的最后一個字母

^
移動到光標所在列的第一個非空白字符

n-
減號移動到上一行的第一個非空白字符,前面加上數字可以指定移動到以上 n 行

n+
加號移動到下一行的第一個非空白字符,前面加上數字可以指定移動到以下 n 行

nG
直接用數字 n 加上 G 移動到第 n 行 

fx
往右移動到 x 字符上

Fx
往左移動到 x 字符上 

tx
往右移動到 x 字符前 

Tx
往左移動到 x 字符前

;
配合 f&t 使用,重復一次

,
配合 f&t 使用,反方向重復一次


/string
往右移動到有 string 的地方


?string
往左移動到有 string 的地方

n
配合 /&? 使用,重復一次


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

%
移到匹配的”()”或”{}”上

n(
左括號移動到句子的最前面,前面加上數字可以指定往前移動 n 個句子
句子是以! . ? 三種符號來界定

n)
右括號移動到下個句子的最前面,前面加上數字可以指定往后移動 n 個句子
段落是以段落間的空白列界定

n{
左括弧移動到段落的最前面,前面加上數字可以指定往前移動 n 個段落

n}
右括弧移動到下個段落的最前面,前面加上數字可以指定往后移動 n 個段落


這些編輯命令非常有彈性,基本上可以說是由命令與范圍所構成。例如 dw 是由刪除指令d 與范圍 w 所組成,代表刪除一個字 d (elete) w (ord) 。命令列表如下:

d 刪除(delete)

y 復制(yank)

p 放置(put)

c 修改(change)

范圍可以是下列幾個:

e 光標所在位置到該字的最后一個字母

w 光標所在位置到下個字的第一個字母

b 光標所在位置到上個字的第一個字母

$ 光標所在位置到該行的最后一個字母

0 光標所在位置到該行的第一個字母

) 光標所在位置到下個句子的第一個字母

( 光標所在位置到該句子的第一個字母

} 光標所在位置到該段落的最后一個字母

{ 光標所在位置到該段落的第一個字母

3.5 文件處理子命令 
:q 結束編輯(quit)

如果不想存檔而要放棄編輯過的檔案則用 :q! 強制離開。

:w 存檔(write)

其后可加所要存檔的檔名。 可以將檔案命令合在一起,例如 :wq 即存檔后離開。

zz 功能與 :wq 相同。

:n 開始編輯vi激活的文件列表中的下一個文件。

:n filename 指定被編輯的新的文件。

:e filename 在vi中編輯另一個文件filename。

:e # 開始編輯另一個文件。

:e ! 重新裝入當前文件,如果當前文件有改動,則丟棄以前的改動。

:r filename 將文件filename合并至當前文件的文件尾。

另外值得一提的是 vi 的部份存檔功能。可以用 :n,m w filename 將第 n 行到第 m 行 的文字存放的所指定的 filename 里

 

原文:http://winco304.blog.163.com/blog/static/9428389120093118121500/


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()