功能強大的編輯器 Vi

2021-08-25 15:14:01 字數 3969 閱讀 5609

功能強大的編輯器——vi

相信vi是什麼就不用我多介紹了,這個工具從unix誕生以來一直是終端下的標準編輯器。幾乎每個unix或類unix作業系統都提供了vi。vim是vi improved的縮寫,功能比起vi來說有了很大的擴充套件。這裡用的是vi improved 6.3。

k        上

h l 左 右

j 下

^ 移動到該行第乙個非空格的字元處

w 向前移動乙個單詞,將符號或標點當作單詞處理

w 向前移動乙個單詞,不把符號或標點當作單詞處理

b 向後移動乙個單詞,把符號或標點當作單詞處理

b 向後移動乙個單詞,不把符號或標點當作單詞處理

( 游標移至句首

) 游標移至句尾

游標移至段落結尾

h 游標移至螢幕頂行

m 游標移至螢幕中間行

l 游標移至螢幕最後行

0 到行首

$ 到行尾

gg 到頁首

g 到頁末

行號+g 跳轉到指定行

n+ 游標下移n行

n- 游標上移n行

ctrl+g 查詢當前行資訊和當前檔案資訊

fx 向右跳到本行字元x處(x可以是任何字元)

fx 向左跳到本行字元x處(x可以是任何字元)

tx 和fx相同,區別是跳到字元x前

tx 和fx相同,區別是跳到字元x後

c-b 向上滾動一屏

c-f 向下滾動一屏

c-u 向上滾動半屏

c-d 向下滾動半屏

c-y 向上滾動一行

c-e 向下滾動一行

nz 將第n行滾至螢幕頂部,不指定n時將當前行滾至螢幕頂部。

vi filename               開啟或新建檔案,並將游標置於第一行首

vi +n filename 開啟檔案,並將游標置於第n行首

vi + filename 開啟檔案,並將游標置於最後一行首

vi +/pattern filename 開啟檔案,並將游標置於第乙個與pattern匹配的串處

vi -r filename 在上次正用vi編輯時發生系統崩潰,恢復filename

vi filename ... filename 開啟多個檔案,依次進行編輯

zz 退出vi並儲存

:q! 退出vi,不儲存

:wq 退出vi並儲存

.        重複上一次操作
c-n      匹配下乙個關鍵字

c-p 匹配上乙個關鍵字

o        在游標下方新開一行並將游標置於新行行首,進入插入模式。

o 同上,在游標上方。

a 在游標之後進入插入模式。

a 同上,在游標之前。

r 進入替換模式,直到按下esc

set *** 設定***選項。

j        把下面一行合併到本行後面
/pattern         從游標開始處向檔案尾搜尋pattern

?pattern 從游標開始處向檔案首搜尋pattern

n 在同一方向重複上一次搜尋命令

n 在反方向上重複上一次搜尋命令

% 查詢配對的括號

:s/p1/p2/g 將當前行中所有p1均用p2替代,若要每個替換都向使用者詢問則應該用gc選項

:n1,n2s/p1/p2/g 將第n1至n2行中所有p1均用p2替代

:g/p1/s//p2/g 將檔案中所有p1均用p2替換

.*^%~$ 在vi中具有特殊含義,若需要查詢則應該加上轉義字元"/"

設定高亮
:set hlsearch    設定高亮

:set nohlsearch 關閉高亮

:nohlsearch 關閉當前已經設定的高亮

增量查詢
:set incsearch   設定增量查詢

:set noincsearch 關閉增量查詢

x        刪除當前游標下的字元

dw 刪除游標之後的單詞剩餘部分。

d$ 刪除游標之後的該行剩餘部分。

dd 刪除當前行。

c 功能和d相同,區別在於完成刪除操作後進入insert mode

cc 也是刪除當前行,然後進入insert mode

rx       將當前游標下的字元更改為x(x為任意字元) 

~ 更改當前游標下的字元的大小寫

qcharacter  開始錄製巨集,character為a到z的任意字元

q 終止錄製巨集

@character 呼叫先前錄製的巨集

u        撤銷最後執行的命令

u 修正之前對該行的操作

ctrl+r redo

c-w c-n  增加frame

c-w c-c 減少frame

c-w c-w 切換frame

c-w c-r 交換兩個frame

vim支援多達26個剪貼簿

選塊   先用v,c-v,v選擇一塊,然後用y複製,再用p貼上。

yy 複製當前整行

nyy 複製當前行開始的n行內容

?nyy 將游標當前行及其下n行的內容儲存到暫存器?中,其中?為乙個字母,n為乙個數字

?nyw 將游標當前行及其下n個詞儲存到暫存器?中,其中?為乙個字母,n為乙個數字

?nyl 將游標當前行及其下n個字元儲存到暫存器?中,其中?為乙個字母,n為乙個數字

?p 將暫存器?中的內容貼上到游標位置之後。如果?是用yy複製的完整行,

則貼上在游標所在行下面。這裡?可以是乙個字母,也可以是乙個數字

?p 將暫存器a中的內容貼上到游標位置之前。如果?是用yy複製的完整行,

則貼上在游標所在行上面。這裡?可以是乙個字母,也可以是乙個數字

ay[motion]

ay$ 複製游標位置到行末並儲存在暫存器a中

ayft 複製游標位置到當前行第乙個字母t並儲存在暫存器a中

以上指令皆可去掉a工作,則y,p對未命名暫存器工作(所有d,c,x,y的物件都被儲存在這裡)。

所有刪除的內容自動被儲存,可以用p鍵貼上

all         列出所有選項設定情況

term 設定終端型別

ignorance 在搜尋中忽略大小寫

list 顯示製表位(ctrl+i)和行尾標誌($)

number 顯示行號

report 顯示由面向行的命令修改過的數目

terse 顯示簡短的警告資訊

warn 在轉到別的檔案時若沒儲存當前檔案則顯示no write資訊

nomagic 允許在搜尋模式中,使用前面不帶「/」的特殊字元

nowrapscan 禁止vi在搜尋到達檔案兩端時,又從另一端開始

mesg 允許vi顯示其他使用者用write寫到自己終端上的資訊

對**自動格式化 gg=g

功能強大的編輯器 Vi

k 上 h l 左 右 j 下 移動到該行第乙個非空格的字元處 w 向前移動乙個單詞,將符號或標點當作單詞處理 w 向前移動乙個單詞,不把符號或標點當作單詞處理 b 向後移動乙個單詞,把符號或標點當作單詞處理 b 向後移動乙個單詞,不把符號或標點當作單詞處理 0 到行首 到行尾 gg 到頁首 g 到...

功能強大的編輯器 Vi

相信vi是什麼就不用我多介紹了,這個工具從unix誕生以來一直是終端下的標準編輯器。幾乎每個unix或類unix作業系統都提供了vi。vim是vi improved的縮寫,功能比起vi來說有了很大的擴充套件。我用的是vi improved 6.3。說實話,vi我用得不太好,遠遠不及emacs熟練,不...

功能最強大的編輯器 vi

vi是所有unix系統都會提供的螢幕編輯器,它提供了乙個視窗裝置,通過它可以編輯檔案。當然,對unix系統略有所知的人,或多或少都覺得vi超級難用,但vi是最基本的編輯器,所以希望讀者能好好把它學起來,以後在unix世界裡必將暢行無阻 游刃有餘,因為其他幾種文字處理器並非unix標準配備。說不定別人...