vi編輯器

Vi 有三種模式,輸入模式(Inserting Mode)、指令模式(Command Mode)以及ex模式(Ex Mode)。在輸入模式下可以輸入文字,而指令模式下可以執行編輯文件、存檔等等指令;Ex
式用於執行另外一些功能,如查找、替換文本、多文件的操作等等。 要進入vi可以直接在Shell提示符下鍵入vi [文件名稱],如果該文件在當前目錄不存在,則vi創建之。
爲了進入輸入模式,有好幾種方法:

新增 (append)
a
從光標所在位置後面開始添加內容,光標後的內容隨新增字符向後移動。
A
從光標所在列最後面的地方開始添加內容。

插入 (insert)
i
從光標所在位置前面開始插入內容,光標後的內容隨新增內容向後移動。
I:
從光標所在列的第一個非空白字符前面開始插入內容。

開始 (open)
o
在光標所在列下新增一列並進入輸入模式。
O
在光標所在列上方新增一列並進入輸入模式。

可以隨時用ESC鍵切換到指令模式,連續按一兩次就夠了,這時系統會發出嗶嗶聲以確定進入指令模式。然後再指令模式下有多種退出方法:
ZZ
保存並退出

:x
保存並退出

:wq
保存並退出

:w
保存並返回指令模式

:30,60w [
新文件] 3060行的內容寫入[新文件]

:30,60w>> [
文件] 將第3060行的內容寫入[文件]的末尾

:q 退出

:q!
退出並丟掉所有未保存信息

Q
退出vi,激活ex

:e file2
在不離開vi的條件下編輯file2

:n
編輯下一個文件

:e!
回到當前編輯文件上次保存的狀態


Vi
基本編輯

【移動光標】

移動光標自然是編輯過程中的基本技能,這個步驟一定要熟練掌握。

常用的移動命令鍵有:

h
左移一個字符

j
下移一行

k
上移一行

l
右移一個字符

w,W
跳至後一個字(W忽略標點)

b,B
跳至前一個字(B忽略標點)

$
至行尾

^
至本行第一個非空字符

0
至行首

G
至緩衝區的起始處

nG n
是整數,至第n

CTRL-d
向下半頁

CTRL-u 向上半頁

CTRL-f
向下一頁

CTRL-b
向上一頁

H
移動到當前窗口的第一列

M
移動到當前窗口的中間列

L
移動到視窗的最後列

e
移動到下個字的最後一個字母

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

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

fx
往右移動到 x 字符上

Fx
往左移動到 x 字符上

tx
往右移動到 x 字符前

Tx
往左移動到 x 字符前

;
配合 f t 使用,重複一次

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


【編輯】

x
刪除光標所在字符,同時所在行的位於光標後的文字一起左移一格;如果刪除的是某行的最後一個字符,則刪除後光標左移一格

d
是刪除命令,它作用於文本對象,即可被移動命令跨過的文本塊。例如w可以用來跳至下一個字開始處,那麼dw從光標位置所在字刪至下一字開始處;6w將刪至光標所在字後第六個字開始處等等

dd
刪除光標所在的行

r
修改光標所在字符,r 後接着要修改的字符

R
進入取代狀態,新增內容會覆蓋原先內容,直到按 [ESC] 回到指令模式下止

s
刪除光標所在字符,並進入輸入模式

S
刪除光標所在的列,並進入輸入模式

u
撤消最近一次對文本的改動。標準版的vi只能執行一級撤消,而vim則可以多級

U
行撤消命令,用來撤消從光標最近一次移到該行時起對光標所在行做的全部改動

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

n)
右括號移動到下個句子的最前面,前面加上數字可以指定往後移動 n 個句子

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

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


看到這裏,恐怕有的讀者已經開始吐舌頭了:這麼多"莫名其妙"的指令來編輯文本實在是太複雜了!還是那句話,"熟能生巧"。如果用的熟練了,利用這些命令來移動、編輯簡直都不是大腦在控制,你的手指已經足夠熟練爲你做好任何你想做的事情


【指令組成】

現在可以提一下vi的指令組成。上面也看到了,很多指令都是控制鍵和數字等結合起來控制的。沒錯!其中很多大致是由指令與範圍所構成。例如 dw 是由刪除指 d 與範圍 w 所組

成,代表刪除一個字 d(elete) w(ord)

指令列表有:

d
刪除(delete)

y
複製(yank)

p
放置(put)

c
修改(change)

範圍可以是下列幾個:

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

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

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

$
光標所在位置到該列的最後一個字母

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

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

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

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

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

其實組合命令遠遠不止這些,更多的需要在實踐中慢慢體會。


【查找樣本】

在文本內移動的時候經常需要查找一定模式(Pattern)構成的文本,vi也提供了相應的命令鍵

/pattern
移至下一個包含pattern的行

?pattern
移至上一個包含pattern的行

/
往下重複查找

?
往上重複查找

n
在同一方向重複查找

N
在相反方向重複查找

/pattern/+n
移至下一個pattern所在行後的第n

?pattern?-n
移至上一個Pattern所在行前的第n

/pattern/z-
重繪屏幕,使下一個包含pattern的行位於屏幕的最底行

%
移至與光標所在的括弧匹配成對的圓括弧或大括弧


【標記文本】

也可以將某段文本標記起來,方便以後跳轉

mchar
用字母char標記當前光標的位置

`char
移至char所標記處

'char
移至char標記所在行的開頭處

"
移至當前行上一次所在位置(在光標移動之後)――一個雙引號

''
移至當前行上第一次所在位置的行的開頭處(在光標移動之後)――兩個單引號


 

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