進(jìn)入vi的命令
郁南網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),郁南網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為郁南成百上千提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)要多少錢(qián),請(qǐng)找那個(gè)售后服務(wù)好的郁南做網(wǎng)站的公司定做!
vi filename :打開(kāi)或新建文件,并將光標(biāo)置于第一行首
vi +n filename :打開(kāi)文件,并將光標(biāo)置于第n行首
vi + filename :打開(kāi)文件,并將光標(biāo)置于最后一行首
vi +/pattern filename:打開(kāi)文件,并將光標(biāo)置于第一個(gè)和pattern匹配的串處
vi -r filename :在上次正用vi編輯時(shí)發(fā)生系統(tǒng)崩潰,恢復(fù)filename
vi filename....filename :打開(kāi)多個(gè)文件,依次進(jìn)行編輯
移動(dòng)光標(biāo)類(lèi)命令
h :光標(biāo)左移一個(gè)字符
l :光標(biāo)右移一個(gè)字符
space:光標(biāo)右移一個(gè)字符
Backspace:光標(biāo)左移一個(gè)字符
k或Ctrl+p:光標(biāo)上移一行
j或Ctrl+n :光標(biāo)下移一行
Enter :光標(biāo)下移一行
w或W :光標(biāo)右移一個(gè)字至字首
b或B :光標(biāo)左移一個(gè)字至字首
e或E :光標(biāo)右移一個(gè)字至字尾
) :光標(biāo)移至句尾
( :光標(biāo)移至句首
}:光標(biāo)移至段落開(kāi)頭
{:光標(biāo)移至段落結(jié)尾
nG:光標(biāo)移至第n行首
n+:光標(biāo)下移n行
n-:光標(biāo)上移n行
n$:光標(biāo)移至第n行尾
H :光標(biāo)移至屏幕頂行
M :光標(biāo)移至屏幕中間行
L :光標(biāo)移至屏幕最后行
0:(注意是數(shù)字零)光標(biāo)移至當(dāng)前行首
$:光標(biāo)移至當(dāng)前行尾
屏幕翻滾類(lèi)命令
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b;向文件首翻一屏
nz:將第n行滾至屏幕頂部,不指定n時(shí)將當(dāng)前行滾至屏幕頂部。
插入文本類(lèi)命令
i :在光標(biāo)前
I :在當(dāng)前行首
a:光標(biāo)后
A:在當(dāng)前行尾
o:在當(dāng)前行之下新開(kāi)一行
O:在當(dāng)前行之上新開(kāi)一行
r:替換當(dāng)前字符
R:替換當(dāng)前字符及其后的字符,直至按ESC鍵
s:從當(dāng)前光標(biāo)位置處開(kāi)始,以輸入的文本替代指定數(shù)目的字符
S:刪除指定數(shù)目的行,并以所輸入文本代替之
ncw或nCW:修改指定數(shù)目的字
nCC:修改指定數(shù)目的行
刪除命令
ndw或ndW:刪除光標(biāo)處開(kāi)始及其后的n-1個(gè)字
do:刪至行首
d$:刪至行尾
ndd:刪除當(dāng)前行及其后n-1行
x或X:刪除一個(gè)字符,x刪除光標(biāo)后的,而X刪除光標(biāo)前的
Ctrl+u:刪除輸入方式下所輸入的文本
搜索及替換命令
/pattern:從光標(biāo)開(kāi)始處向文件尾搜索pattern
?pattern:從光標(biāo)開(kāi)始處向文件首搜索pattern
n:在同一方向重復(fù)上一次搜索命令
N:在反方向上重復(fù)上一次搜索命令
:s/p1/p2/g:將當(dāng)前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:將第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:將文件中所有p1均用p2替換
選項(xiàng)設(shè)置
all:列出所有選項(xiàng)設(shè)置情況
term:設(shè)置終端類(lèi)型
ignorance:在搜索中忽略大小寫(xiě)
list:顯示制表位(Ctrl+I)和行尾標(biāo)志($)
number:顯示行號(hào)
report:顯示由面向行的命令修改過(guò)的數(shù)目
terse:顯示簡(jiǎn)短的警告信息
warn:在轉(zhuǎn)到別的文件時(shí)若沒(méi)保存當(dāng)前文件則顯示NO write信息
nomagic:允許在搜索模式中,使用前面不帶“”的特別字符
nowrapscan:禁止vi在搜索到達(dá)文件兩端時(shí),又從另一端開(kāi)始
mesg:允許vi顯示其他用戶(hù)用write寫(xiě)到自己終端上的信息
最后行方式命令
:n1,n2 co n3:將n1行到n2行之間的內(nèi)容拷貝到第n3行下
:n1,n2 m n3:將n1行到n2行之間的內(nèi)容移至到第n3行下
:n1,n2 d :將n1行到n2行之間的內(nèi)容刪除
:w :保存當(dāng)前文件
:e filename:打開(kāi)文件filename進(jìn)行編輯
:x:保存當(dāng)前文件并退出
:q:退出vi
:q!:不保存文件并退出vi
:!command:執(zhí)行shell命令command
:n1,n2 w!command:將文件中n1行至n2行的內(nèi)容作為command的輸入并執(zhí)行之,若不指定n1,n2,則表示將整個(gè)文件內(nèi)容作為command的輸入
:r!command:將命令command的輸出結(jié)果放到當(dāng)前行
寄存器操作
"?nyy:將當(dāng)前行及其下n行的內(nèi)容保存到寄存器?中,其中?為一個(gè)字母,n為一個(gè)數(shù)字
"?nyw:將當(dāng)前行及其下n個(gè)字保存到寄存器?中,其中?為一個(gè)字母,n為一個(gè)數(shù)字
"?nyl:將當(dāng)前行及其下n個(gè)字符保存到寄存器?中,其中?為一個(gè)字母,n為一個(gè)數(shù)字
"?p:取出寄存器?中的內(nèi)容并將其放到光標(biāo)位置處。這里?能是個(gè)字母,也能是個(gè)數(shù)字
ndd:將當(dāng)前行及其下共n行文本刪除,并將所刪內(nèi)容放到1號(hào)刪除寄存器中。
進(jìn)入vi
vi test
離開(kāi)vi
:q! 離開(kāi)vi,并放棄剛在緩沖區(qū)內(nèi)編輯的內(nèi)容。
:wq 將緩沖區(qū)內(nèi)的資料寫(xiě)入磁盤(pán)中,并離開(kāi)vi。
:ZZ 同wq
同wq
:w 將緩沖區(qū)內(nèi)的資料寫(xiě)入磁盤(pán)中,但并不離開(kāi)vi。
:q 離開(kāi)vi,若文件被修改過(guò),則會(huì)被需求確認(rèn)是否放棄修改的內(nèi)容,此指令可和: w 配合使用。
Vi 的操作模式
Vi 提供兩種操作模式:
輸入模式(insert mode)
指令模式(command mode)
當(dāng)使用者進(jìn)入vi后,既處于指令模式下,此刻鍵入所有字元皆被視為指令。
輸入模式:a(append) 游標(biāo)之后加入資料。
A 該行之末加入資料
i (insert) 游標(biāo)之前加入資料
I 該行之首加入資料
o (open) 新增一行和該行之下供輸入資料
O 新增一行和該行之上供輸入資料
指令模式:B 移至該行第一個(gè)字符,若光標(biāo)在該行第一字符則光標(biāo)移至上一行第一字符。
b 由游標(biāo)所在位置之前一個(gè)字串的第一個(gè)字元
cc 刪除整行,修改整行的內(nèi)容。
D 以行為單位,刪除游標(biāo)在內(nèi)后面的所有字符。
db 刪除該行光標(biāo)前字符
dd 刪除該行
de 刪除自光標(biāo)開(kāi)始后面的字符
d加字符 刪除光標(biāo)所在位置至字符之間的單
E移至該行最后字符,若光標(biāo)在該行最后字符則光標(biāo)移至下一行最后字符
e由游標(biāo)所在位置至該字串的最后一個(gè)字元
G 移至該檔案的最后一行
h 向前移一個(gè)字元
j 向下移一個(gè)字元
k 向上移一個(gè)字元
0 移至該行之首
M 移至視窗的中間那行
L 移至視窗的最后一行
l 向后移一個(gè)字符
0 由游標(biāo)所在位置該行的第一個(gè)字元
nG 移至該檔案的第n行
n+ 自游標(biāo)所在位置向后移n行至該行的第一字符
n- 自游標(biāo)所在位置向前移n行至該行的第一字符
R 進(jìn)入取代狀態(tài),直到《ESC》為止
s 刪除游標(biāo)所在字元,并進(jìn)入取代模式直到《ESC》
S 刪除游標(biāo)所在之該行資料,并進(jìn)入輸入模式直到《ESC》
w 由游標(biāo)所在位置之下一個(gè)字串的第一個(gè)字元
x 刪除游標(biāo)所在該字元。
X 刪除游標(biāo)所在之前一字元。
r 用接于此指令之后的字元取代(replace)游標(biāo)所在字元
yy yank整行,使游標(biāo)所在該行復(fù)制到記憶體緩沖區(qū)
顯示該行之行號(hào)、檔案名稱(chēng)、檔案中最末之行號(hào)、游標(biāo)所在行號(hào)占
總行號(hào)之百分比
$ 由游標(biāo)所在位置至該行的最后一個(gè)字元。
) 由游標(biāo)所在位置至下一個(gè)句子的第一個(gè)字元。
( 由游標(biāo)所在位置至該句子的第一個(gè)字元。
{ 由游標(biāo)所在位置至該段落的最后一個(gè)字元。
} 由游標(biāo)所在位置至該段落的第一個(gè)字元
yank和delete可將指定的資料復(fù)制到記憶體緩沖區(qū),而藉有put指令可將緩沖區(qū)內(nèi)的資料復(fù)制到熒幕上
例如:搬移一行 :在該行執(zhí)行dd
游標(biāo)移至目的地
執(zhí)行p
復(fù)制一行 :在該行執(zhí)行yy
游標(biāo)移至目的地
執(zhí)行p
視窗移動(dòng):
視窗往下卷一頁(yè)
視窗往上卷一頁(yè)
視窗往下卷半頁(yè)
視窗往上卷半頁(yè)
視窗往下卷一行
視窗往上卷一行
刪除、復(fù)制及修改指令介紹:
d(delete)、c(change)和y(yank)這一類(lèi)的指令在vi 中的指令格式為:
operation+scope=command
(運(yùn)算子)(范圍)
運(yùn)算子:
d 刪除指令。刪除資料,但會(huì)將刪除資料復(fù)制到記憶體緩沖區(qū)。
y 將資料(字組、行列、句子或段落)復(fù)制到緩沖區(qū)。
p 放置(put)指令,和d和y配合使用。可將最后delete或yank的資料放置于游標(biāo)所在位置之行列下。
c 修改(change)指令,類(lèi)似delete于insert的組合。刪除一個(gè)字組、句子等資料,并插入新鍵入的
vi 只是編輯器,保存退出后,可以命令行看到當(dāng)前保存的文件。比如ls hello.c
接下來(lái)要用編譯器來(lái)編譯程序, 比如gcc hello.c -o ?hello
執(zhí)行程序只要在命令行執(zhí)行就可以了, 比如./hello
建議先去了解一下基本的shell命令。
如下:
~#vi tmp.c
按i進(jìn)入插入模式,輸入源文件內(nèi)容
#include stdio.h
int main(int argc,char *argv[])
{
printf("just a case!\r\n");
return(0);
}
按ESC退出插入模式,輸入
:wq
回到shell
~#gcc tmp.c
~#./a.out
可是我輸入執(zhí)行卻不行,想問(wèn)下為什么??
在#后輸入:gcc tmp.c
提示:bash: gcc:command not found
vi profile
返回
:q 退出
:wq或者:x或者shift+zz 保存并退出
:q! 不保存并退出
:w 保存
:w! 強(qiáng)制保存
編輯到輸入模式:
i 在當(dāng)前光標(biāo)前面輸入
I 在當(dāng)前光標(biāo)所在行的行首,轉(zhuǎn)換為輸入模式
a 在當(dāng)前光標(biāo)后面輸入
A 在當(dāng)前光標(biāo)所在行的行尾,轉(zhuǎn)換為輸入模式
o 在當(dāng)前光標(biāo)所在行的下方,新建一行,并轉(zhuǎn)為輸入模式
O 在當(dāng)前光標(biāo)所在行的上方,新建一行,并轉(zhuǎn)為輸入模式
1、 移動(dòng)光標(biāo)
字符:方向鍵上下左右或者鍵盤(pán)kjhl(上下左右)
單詞:w移至下一個(gè)單詞的詞首;e跳至當(dāng)前或下一個(gè)單詞的詞尾;b跳至當(dāng)前或前一個(gè)單詞的詞首
行內(nèi):0絕對(duì)行首;^行首的第一個(gè)非空白字符;$絕對(duì)行尾
行間:G文章末尾;3G第3行;gg文章開(kāi)頭
翻屏:ctrl f【往后翻】;Ctrl b【往前翻】
2、 刪除、替換單個(gè)字符
x刪除光標(biāo)位置字符;3x刪除光標(biāo)開(kāi)始3個(gè)字符;r替換光標(biāo)位置字符
dw刪除一個(gè)單詞;4dw刪除光標(biāo)開(kāi)始的4個(gè)單詞;dd刪除光標(biāo)所在行;5dd刪除光標(biāo)開(kāi)始的5行
3、復(fù)制粘貼剪切
yw復(fù)制一個(gè)單詞,p在該行粘貼單詞;yy復(fù)制整行,p在該行下方粘貼整行
dd剪切整行,p再粘貼整行;dw剪切一個(gè)單詞,p再粘貼一個(gè)單詞
4、 撤銷(xiāo)重做
u:撤銷(xiāo);ctrl+r:重做撤銷(xiāo)的操作;.重復(fù)上一步的操作【假設(shè)先dd,再.,會(huì)再執(zhí)行dd命令】
1、 set設(shè)置
set nu
set nonu
set readonly #設(shè)置只讀文件,不能修改,只在當(dāng)前環(huán)境有效,退出文件,再次打開(kāi),這個(gè)只讀就無(wú)效了
set noreadonly #取消只讀
2、 /查找
/after查找文檔中的after【可以找到所有的after】,n向下翻,N向上翻
:/after查找文檔中的after所在行【可以找到所有的after】,n向下翻,N向上翻
3、!執(zhí)行命令
比如:查找root目錄
:!ls /root/
4、 查找并替換
格式
【 :查找范圍s/查找的詞/要替換的詞/ 】
或者【:查找范圍s#查找的詞#要替換的詞# 】
或者【:查找范圍s%查找的詞%要替換的詞%】,
即分隔符可以是/、#、%
其中, 查找范圍 包括【.當(dāng)前光標(biāo)行】;【$末尾行】;【%全文】;【g一行內(nèi)全部替換】;【i忽略大小寫(xiě)】
比如 【 :.,$s/after/before/】 表示在當(dāng)前光標(biāo)行【.】到末尾【$】這個(gè)范圍內(nèi),將after替換為before, 但是如果一行有多個(gè)after的話(huà),只會(huì)把第一個(gè)after替換掉 。
比如 【 :%s/after/before/】 表示在全文,將after替換為before,但是如果一行有多個(gè)after的話(huà),只會(huì)把第一個(gè)after替換掉。
比如 【:%s/after/before/g】 ,表示在全文,將after替換為before,但是 如果一行有多個(gè)after的話(huà),會(huì)把該行所有after替換掉,因?yàn)樵诿罾锩婕恿薵 。
比如 【:%s/after/before/gi】 ,表示在全文,將after替換為before,且忽略大小寫(xiě)并替換一行內(nèi)所有after。
比如 【 :%d或者dG】 ,表示刪除全文
比如 【:1,$-4d】 ,表示刪除第一行到倒數(shù)第5行的數(shù)據(jù)
比如 【:1,4y】 ,表示復(fù)制1到4行,再按p可粘貼這4行
Vi,是一款由加州大學(xué)伯克利分校、Bill Joy研究開(kāi)發(fā)的文本編輯器。
文本編輯器有很多,比如圖形模式的gedit、kwrite、OpenOffice,文本模式下的編輯器有VI、vim。vi和vim是我們?cè)贚inux中最常用的編輯器。vi或vim是Linux最基本的文本編輯工具,vi或vim雖然沒(méi)有圖形界面編輯器那樣點(diǎn)鼠標(biāo)的簡(jiǎn)單操作,但vi編輯器在系統(tǒng)管理、服務(wù)器管理字符界面中,永遠(yuǎn)不是圖形界面的編輯器能比的。
注意:vi是Unix/Linux操作系統(tǒng)中最經(jīng)典的文本編輯器,只能在編輯字符,不能對(duì)字體、段落進(jìn)行排版,它既可以新建文件,也可以編輯文件;它沒(méi)有菜單,只有命令,且命令繁多。
雖然vi的操作方式與其他常用的文本編輯器很不相同,但是由于其運(yùn)行于字符界面,并可用于所有Unix/Linux環(huán)境,仍被經(jīng)常使用。
vi的三種命令模式
command(命令)模式,用于輸入命令
Insert(插入)模式,用于插入文本
Visual(可視)模式,用于視化的高亮并選定正文
①命令模式
命令模式是啟動(dòng)vi后進(jìn)入的工作模式,并可轉(zhuǎn)換為文本編輯模式和最后行模式。在命令模式下,從鍵盤(pán)上輸入的任何字符都被當(dāng)作編輯命令來(lái)解釋?zhuān)粫?huì)在屏幕上顯示。如果輸入的字符是合法的vi命令,則vi就會(huì)完成相應(yīng)的動(dòng)作,否則vi會(huì)響鈴警告。
②文本編輯模式
文本編輯模式用于字符編輯。在命令模式下輸入i、a等命令后進(jìn)入文本編輯模式,此時(shí)輸入的任何字符都被vi當(dāng)作文件內(nèi)容顯示在屏幕上。按Esc鍵可從文本編輯模式返回到命令模式。
③最后行模式
在命令模式下,按“:”進(jìn)入最后行模式,此時(shí)vi會(huì)在屏幕的底部顯示“:”符號(hào)年作為最后行模式的提示符,等待用戶(hù)輸入相關(guān)命令。命令執(zhí)行完畢后,vi自動(dòng)回到命令模式。
分享文章:linux中vi執(zhí)行命令,linux的vi命令用法
鏈接地址:http://m.newbst.com/article0/hsegoo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、云服務(wù)器、商城網(wǎng)站、小程序開(kāi)發(fā)、關(guān)鍵詞優(yōu)化、網(wǎng)站維護(hù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)