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

UNIX下VI編輯器使用

vi(文本輸入模式)
命令 功能
a 在光標後追加文本
A 在行末追加文本
i 在光標前追加文本
o 在光標下插入新的一行
vi(末行模式)
命令 功能
:w 寫緩沖區,保存更改繼續在vi中工作
:w new_filename 把緩沖區寫如new_filename
:wq 或 ZZ 寫緩沖區,保存修改,然後退出vi
:q! 不保存修改而退出
:wq! 寫緩沖區保存修改然後推出vi,如果你是文件的所有者將忽略只讀屬性
e! 取消自上次保存以來所做的修改
等價於:wq! wq
u 取消最近的一次編輯
vi(命令模式)
命令 功能
j(或向下箭頭) 向下移動一行
k(或向上箭頭) 向上移動一行
h(或向左箭頭) 向後移動一個字符
l(或向右箭頭) 向前移動一個字符
空格 向右移動一個字符
w 向前移動一個單詞(包括標點)
b 向後移動一個單詞(包括標點)
$ 移動到行末
0(零)或 ^ 移動到行首
回車 移動到下一行首

vi(命令模式和末行模式)
命令 功能
x (小寫) 刪除光標處字符
dw 刪除單詞
3dw 刪除三個單詞
dd 刪除光標所在的行
3dd 刪除三行
yy 拉出一行拷貝,放到剪貼板中
p(小寫) 把拉出行放到當前之下
P(大寫) 把拉出行放到當前之上
:set nu 顯示行號
:set nonu 隱藏行號
:set showmode 顯示當前操作模式(如用vedit將自動打開)
:set noshowmode 關閉模式顯示
:set 顯示所有vi變量
:set all 顯示所有可能的vi變量和它們的當前的值
G 到達文件的最後一行
:21 到達第21行
/string 向前搜索字符串string
?string 向後搜索字符串string
n 查找匹配的下一個字符串

 

=================================================================

Solaris vi命令
 
 
 
文本編輯器是所有計算機系統中最常用的一種工具。UNIX下的編輯器有ex,sed和vi等,其中,使用最為廣泛的是vi,而vi命令繁多,論壇裡好像這方面的總結不多,以下稍做總結,以資共享!渴望更正和補充! :em02:

進入vi的命令
vi  filename   :打開或新建文件,並將光標置於第一行首
vi  +n filename  :打開文件,並將光標置於第n行首
vi  + filename    :打開文件,並將光標置於最後一行首
vi +/pattern filename:打開文件,並將光標置於第一個與pattern匹配的串處
vi  -r filename :在上次正用vi編輯時發生系統崩潰,恢復filename
vi  filename....filename :打開多個文件,依次進行編輯

移動光標類命令
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:修改指定數目的行

刪除命令
ndw或ndW:刪除光標處開始及其後的n-1個字
do:刪至行首
d$:刪至行尾
ndd:刪除當前行及其後n-1行
x或X:刪除一個字符,x刪除光標後的,而X刪除光標前的
Ctrl+u:刪除輸入方式下所輸入的文本

搜索及替換命令
/pattern:從光標開始處向文件尾搜索pattern
?pattern:從光標開始處向文件首搜索pattern
n:在同一方向重復上一次搜索命令
N:在反方向上重復上一次搜索命令
:s/p1/p2/g:將當前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:將第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:將文件中所有p1均用p2替換

選項設置
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行之間的內容刪除
:w :保存當前文件
:e filename:打開文件filename進行編輯
:x:保存當前文件並退出
:q:退出vi
:q!:不保存文件並退出vi
:!command:執行shell命令command
:n1,n2 w!command:將文件中n1行至n2行的內容作為command的輸入並執行之,若不指定n1,n2,則表示將整個文件內容作為command的輸入
:r!command:將命令command的輸出結果放到當前行

寄存器操作
"?nyy:將當前行及其下n行的內容保存到寄存器?中,其中?為一個字母,n為一個數字
"?nyw:將當前行及其下n個字保存到寄存器?中,其中?為一個字母,n為一個數字
"?nyl:將當前行及其下n個字符保存到寄存器?中,其中?為一個字母,n為一個數字
"?p:取出寄存器?中的內容並將其放到光標位置處。這裡?可以是一個字母,也可以是一個數字
ndd:將當前行及其下共n行文本刪除,並將所刪內容放到1號刪除寄存器中。 
 
Copyright © Linux教程網 All Rights Reserved