Linux命令-----vi/vim編輯器

也可建立vi到vim的符號連接(即實際調用的是vim)

 

# mv /bin/vi /bin/vi.bak

 

# ln -s /usr/bin/vim /bin/vi

 

 

 

進入vi的命令:

 

vi  直接進入編輯並創建新文件

 

vi filename  編輯文件(不存在則創建文件),並將光標置於第一行首

 

vi +n filename  打開文件,並將光標置於第n行首

 

vi + filename   打開文件,並將光標置於最後一行首

 

vi +/pattern filename  打開文件,並將光標置於第一個與pattern匹配的串處

 

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

 

vi file1....filen   打開多個文件,依次進行編輯

 

vi -o aaa bbb   水平窗口打開aaa,bbb兩個文件

 

vi -O aaa bbb   垂直窗口打開aaa,bbb兩個文件(Ctrl+W兩次可在多個文件間切換)

 

多文本編輯的按鍵:

:n  編輯下一個文件

:N  編輯上一個文件

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

 

多窗口情況下的按鍵功能:

:sp [filename]  打開一個新窗口,如果有加filename,表示在新窗口打開一個新文件,否則表示兩個窗口爲同一個文件內容(同步顯示)

 

[ctrl]+w+j

[ctrl]+w+↓   按鍵的按法是:先按下[ctrl]不放,再按下w後放開所有的按鍵,然後再按下j(或向下箭頭鍵),則光標可移動到下方的窗口

 

[ctrl]+w+k

[ctrl]+w+↑    同上,不過光標移動到上面的窗口

 

[ctrl]+w+q    其實就是:q結束離開。例如,想要結束下方的窗口,那麼利用[ctrl]+w+↓移動到下方窗口後,按下:q即可離開,也可以按下[ctrl]+w+q

 

塊選擇的按鍵意義:

v  字符選擇,將光標經過的地方反白選擇

 

V  行選擇,將光標經過的行反白選擇

 

Ctrl + v  塊選擇,可以用長方形的方式選擇數據

 

y  將反白的地方複製起來

d  將反白的地方刪除

 

 

恢復命令:

 

u  恢復最後一個指令之前的結果

.  繼續最後一個指令的執行結果

 

ctrl+r  撤銷恢復

 

U  恢復光標該行之所有改變

 

 

 

移動光標命令:

 

h   光標左移一個字符

 

l   光標右移一個字符

 

space  光標右移一個字符

 

Backspace  光標左移一個字符

 

k或Ctrl+p  光標上移一行

 

j或Ctrl+n   光標下移一行

 

Enter   光標下移一行

 

w或W   光標右移一個字至字首

 

b或B   光標左移一個字至字首

 

e或E   光標右移一個字至字尾

 

)   光標移至句尾

 

(   光標移至句首

 

}  光標移至段落開頭

 

{  光標移至段落結尾

 

nG  光標移至第n行首

 

n+  光標下移n行

 

n-  光標上移n行

 

n$  光標移至第n行尾

 

H   光標移至屏幕頂行

 

M   光標移至屏幕中間行

 

L   光標移至屏幕最後行

 

0  (注意是數字零)光標移至當前行首

 

$  光標移至當前行尾

 

 

 

翻屏命令:

 

Ctrl+u  向文件首翻半屏

 

Ctrl+d  向文件尾翻半屏

 

Ctrl+f  向文件尾翻一屏

 

Ctrl+b  向文件首翻一屏

 

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

 

 

 

插入文本、複製與粘貼:

 

i   在光標前插入

 

I   在當前行首插入

 

a  在光標後插入

 

A  在當前行尾插入

 

o  在當前行之下新開一行

 

O  在當前行之上新開一行

 

r  替換當前字符

 

R  替換當前字符及其後的字符,直至按ESC鍵

 

s  從當前光標位置處開始,以輸入的文本替代指定數目的字符

 

S  刪除指定數目的行,並以所輸入文本代替之

 

ncw或nCW  修改指定數目的字

 

nCC  修改指定數目的行

 

yy  p  複製當前行,並粘貼到下一行

nyy  n爲數字。複製光標所在的向下n行,例如20yy,則是複製20行

y1G  複製光標所在行到第一行的所有數據

yG   複製光標所在行到最後一行的所有數據

y0    複製光標所在的那個字符到該行行首的所有數據

y$    複製光標所在的那個字符到該行行尾的所有數據  

 

shift + i  在該行之首插入字符

 

shift + a   在該行末尾輸入字符

 

shift + r  改寫自光標位置及後面的所有內容

 

shift +o  在光標之上新增一行輸入字符

 

 

 

刪除命令:

 

ndw或ndW  刪除光標處開始及其後的n-1個字

 

d0  刪至行首(爲數字0)

 

d$  刪至行尾

shift + d  剪切至行尾

 

dd  刪除一行

 

ndd  刪除自光標開始的n行

 

s  刪除光標所在之字符,並進入輸入模式直到《ESC》

 

S  刪除光標所在之該行資料,並進入輸入模式直到《ESC》

 

x或X  刪除一個字符,x刪除光標後的,而X刪除光標前的

nx  n爲數字,連續向後刪除n個字符。如,要連續刪除10個字符,則:“10x”

 

Ctrl+u  刪除輸入方式下所輸入的文本

 

 

 

搜索及替換命令:

 

/pattern  從光標開始處向文件尾搜索pattern

 

?pattern  從光標開始處向文件首搜索pattern

 

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

 

N  在反方向上重複上一次搜索命令

 

:s/p1/p2/  替換當前行第一個p1爲p2

 

:s/p1/p2/g  將當前行中所有p1均用p2替代

 

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

 

:g/p1/s//p2/g  將文件中所有p1均用p2替換

 

: 1,$s/old/new/g  將文件中所有的『old』改成『new』

: 1,$s/old/new/gc  將文件中所有的『old』改成『new』,並在改前提示用戶確認

 

: 10,20s/^/ /  將第10行至第20行資料的最前面插入5個空格

 

: %s/^m//g  刪除文件中所有的^M符號

 

 

 

選項設置:

 

all  列出所有選項設置情況

 

term  設置終端類型

 

ignorance  在搜索中忽略大小寫

 

list  顯示製表位(Ctrl+I)和行尾標誌($)

 

number  顯示行號

 

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

 

terse  顯示簡短的警告信息

 

warn  在轉到別的文件時若沒保存當前文件則顯示NO write信息

 

nomagic  允許在搜索模式中,使用前面不帶“\”的特殊字符

 

nowrapscan  禁止vi在搜索到達文件兩端時,又從另一端開始

 

mesg  允許vi顯示其他用戶用write寫到自己終端上的信息

 

 

 

最後行方式命令:

 

:n1,n2 co n3  將n1行到n2行之間的內容拷貝到第n3行下

 

:n1,n2 m n3  將n1行到n2行之間的內容移至到第n3行下

 

:n1,n2 d   將n1行到n2行之間的內容刪除

 

:e filename  打開文件filename進行編輯

 

:e! dd   強制關閉當前文件(不保存)打開新文件dd

 

: e!  放棄修改重新編輯  

 

:q!  不保存文件並退出vi

 

:r fff 在當前位置讀入fff文件

 

:set nonu 不顯示行號

 

:set nu 顯示行號

 

:w  保存輸入的內容到當前文件

 

:w eee 另存爲eee文件

 

:wq  保存並退出

 

:x  保存當前文件並退出

 

:n1,n2 w eee  將文件中n1行至n2行的內容保存成eee文件

:!command  暫時離開vi到命令行模式下執行command的顯示結果。例如,“:! ls /home”即可在vi當中查看/home下面以ls輸出的文件信息

 

 

 

寄存器操作:

 

"?nyy  將當前行及其下n行的內容保存到寄存器?中,其中?爲一個字母,n爲一個數字

 

"?nyw  將當前行及其下n個字保存到寄存器?中,其中?爲一個字母,n爲一個數字

 

"?nyl  將當前行及其下n個字符保存到寄存器?中,其中?爲一個字母,n爲一個數字

 

"?p  取出寄存器?中的內容並將其放到光標位置處。這裏?可以是一個字母,也可以是一個數字

 

ndd  將當前行及其下共n行文本刪除,並將所刪內容放到1號刪除寄存器中

 

vim操作環境(不建議修改/etc/vimrc文件;建議手動修改~/.vimrc文件)

 



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