⒈ 進(jìn)入vi: 要使用vi,應(yīng)先注冊進(jìn)入一用戶,然后如下所示進(jìn)行操作: $ vi <filename>
<Enter> ($ 為提示符) ⒉ 退出vi: (1) "Esc"
退出插入方式進(jìn)入命令方式 :w <Enter> 將文件存盤 :q
<Enter> 退出vi (2) "Esc"
退出插入方式進(jìn)入命令方式 :q! <Enter> 無條件退出vi,修改內(nèi)容不存盤 (3)
"Esc" 退出插入方式進(jìn)入命令方式 :x <Enter>
將文件存盤并退出vi ⒊ 臨時退出vi: (1) "Esc" 退出插入方式進(jìn)入命令方式
:!command <Enter> 執(zhí)行命令command
命令執(zhí)行完成后,按<Enter>返回編輯畫面。 (2) "Esc"
退出插入方式進(jìn)入命令方式 :!sh <Enter> 進(jìn)入子shell
進(jìn)入子shell后出現(xiàn)$提示符,按Ctrl_d退出子shell,再按<Enter>返回編輯畫面。 (3)
"Esc" 退出插入方式進(jìn)入命令方式 !!command <Enter>
執(zhí)行命令command的結(jié)果代替當(dāng)前行 【注】 前面沒有“∶”,當(dāng)前行原來的內(nèi)容消失,代之以命令執(zhí)行的結(jié)果。 ⒋
移動光標(biāo)及屏幕命令: (1) 移動一個字符的位置
-------------------------------------------------------- h
左 也可一次移動n個字符,如5h,就向左 l 右 移動5個字符的位置。
-------------------------------------------------------- (2) 移動一行的位置
-------------------------------------------------------- j
下 也可一次移動n個字符,如5j,就向下 k 上 移動5行。
nG 移到第n行 :n <Enter> 移到第n行
-------------------------------------------------------- (3) 移動一個字的位置
-------------------------------------------------------- W或w 右移一字
(光標(biāo) ①小寫字母鍵把標(biāo)點(diǎn)及非字母符號 定位在字首) (例如,!@#$%^&*
()_-=+等)也看作 E或e 右移一字 (光標(biāo) 一個詞; 定位在字尾)
②大寫字母以空格為字的分界符; B或b 左移一字 (光標(biāo) ③前面加數(shù)字n將移動n個字的位置;
定位在字首) ④從行尾右移則移向下一行的行首, 從行首左移則移向上一行的行尾。
-------------------------------------------------------- (4) 移動一句的位置
-------------------------------------------------------- (
移至句首 以.?!后加兩個空格或換行符的字 ) 移至句尾 符序列定義為句子。 n
( 執(zhí)行n次 ( n) 執(zhí)行n次)
-------------------------------------------------------- (5) 屏幕滾動
-------------------------------------------------------- Ctrl_u
上滾半屏 大寫字母與小寫字母等價 Ctrl_d 下滾半屏 Ctrl_f 下滾一屏
Ctrl_b 上滾一屏
-------------------------------------------------------- (6) 其他常用命令
-------------------------------------------------------- 0
行首 ①這些命令都在命令方式下 ^ 移到行首第一個可
使用; 見字符處 ②H、L、G、M都必須是大寫 $
行尾 字母; Ctrl_G 顯示當(dāng)前行行號 ③z是小寫字母,且按回車才
Ctrl_L 屏幕重顯 有效。 H 屏幕左上角 L
屏幕正文最低行 G 文件最末行 M 屏幕中間行
z<Enter> 當(dāng)前行翻到屏幕頂 nz<Enter> 第n行翻到屏幕頂
-------------------------------------------------------- ⒌ 插入命令
-------------------------------------------------------- I
當(dāng)前行的行首前插入 ①按"Esc"就退出插入方式 A 當(dāng)前行的行尾附加 ②大小寫字母作用不同
i 光標(biāo)前插入 a 光標(biāo)后插入 O 當(dāng)前行前開新行
o 當(dāng)前行后開新行 >> 當(dāng)前行整個右移一個制表符的位置
<< 當(dāng)前行整個左移一個制表符的位置
-------------------------------------------------------- ⒍ 刪除命令
-------------------------------------------------------- dd
刪除當(dāng)前行,并將刪 ①在命令dd,dw,x,X前加數(shù) 除的內(nèi)容存入緩沖區(qū) dw
刪除一個詞 (光標(biāo)到詞 字n等于命令執(zhí)行n次 尾部分) ②Ctrl_u
要在插入方式下 x 刪除光標(biāo)所在字符, 使用,按下ESC鍵后生效
并將刪除的內(nèi)容存入緩 沖區(qū) X
刪除光標(biāo)之前字符, 并將刪除的內(nèi)容存入緩 沖區(qū) D,d$
刪除光標(biāo)至行尾的內(nèi)容 d0 刪除光標(biāo)至行首的內(nèi)容 d^
刪除光標(biāo)至行首第一個 可見字符的內(nèi)容 Ctrl_u 刪除剛插入的所有內(nèi)容
--------------------------------------------------------
要刪除剛插入的內(nèi)容,應(yīng)在沒按ESC鍵(插入狀態(tài)下)時按下 Ctrl_u鍵。光標(biāo)回到插入的開始處,原有插入的正文仍顯示在屏
幕上,它將被鍵入的新內(nèi)容所代替。當(dāng)按下ESC鍵后,原插入 的正文將被刪除。下面是幾個刪除的例子: 3x
刪除光標(biāo)后三個字符 3X 刪除光標(biāo)前三個字符 2dd
刪除當(dāng)前行和下面的一行共兩行 :15,20d 刪除第15到20行 :.,$d
刪除當(dāng)前行到最后一行。"."代表當(dāng)前行,$代 表最后一行。 :.,+3d
刪除當(dāng)前行和下面的三行 :.,-3d 刪除當(dāng)前行和上面的三行
⒎ 恢復(fù) 按下ESC鍵
進(jìn)入命令方式 按下u 恢復(fù)到上一命令以前的狀態(tài) 再按下u 恢復(fù)到上一個u以前的狀態(tài)
⒏
重復(fù)一條命令
任何一條編輯命令執(zhí)行一次后,如果還需要再執(zhí)行同樣的命令,應(yīng)該用重復(fù)命令“.” 來節(jié)省時間,例如在一行中連續(xù)插入三個字符串a(chǎn)bcdef,那么可以用如下的方法:
鍵入i 進(jìn)入插入方式 鍵入abcdef 插入第一個字符串 按下ESC鍵
進(jìn)入命令方式 光標(biāo)移到正確 的位置,連續(xù) 按兩個園點(diǎn). 重復(fù)插入兩個字符串a(chǎn)bcdef
⒐
搜索命令 (1)模式匹配特殊字
-------------------------------------------------------- ^
一行的開始 $ 一行的末尾,或文件的最后一行 . 任一字符 (除換行符外) [
] 字符集內(nèi)的任一字符,如[abc]代表a,b,c中的任一
字符,[1-5]代表1,2,3,4,5中的任一個。 [^ ]
字符集外的任一字符,如[^abc]代表除a,b,c外的任 一字符 \
轉(zhuǎn)義,去掉特殊字符的特殊意義,如\$僅代表$字 符本身
-------------------------------------------------------- (2)常用搜索命令
-------------------------------------------------------- /串 <Enter>
向下搜索 串 <Enter> 向上搜索 n 繼續(xù)搜索 N
繼續(xù)向相反方向搜索 --------------------------------------------------------
搜索命令必須在命令方式下使用。按下"/"或"?"時它會自動出現(xiàn)在狀態(tài)行上,鍵入要搜 索的字符串并按回車,光標(biāo)會移動到該字符串所在行,并定位在該字符串的第一個字符上。 下面的格式把光標(biāo)移到字符上一行的行首:
/字符串/- <Enter> 下面是一些例子: /abc/-2 <Enter>
光標(biāo)移到含abc的行的上兩行的行首 /abc/+2 <Enter> 光標(biāo)移到含abc的行的下兩行的行首 123mn
<Enter> 向上搜索串123mn n
繼續(xù)執(zhí)行前面的搜索命令 /^this<Enter> 搜索開頭為this的行 /p\.r\.c<Enter>
向下搜索字符串p.r.c,因?yàn)?."是特殊字符,所 以前面要加反斜線"\"轉(zhuǎn)義。
⒑
作標(biāo)記 在光標(biāo)所在處作一標(biāo)記,以備需要時及時查找到該處,這也是一種重要的檢索方式,完 成該功能的命令是m。
標(biāo)記命令 --------------------------------------------------------
m標(biāo)記 光標(biāo)所在處作標(biāo)記 ①標(biāo)記是任選的小寫字母 `標(biāo)記 移到標(biāo)記位置 ②注意左撇 ' 與右撇
` '標(biāo)記 移到有標(biāo)記的行的開頭 的不同
--------------------------------------------------------
例如有一正文前三行內(nèi)容如下: 1 This is Line one 2 3 This is Line
two 把光標(biāo)移到第一行的L處,鍵入 mb,作標(biāo)記b (不要回車),以后某一時候要刪除從當(dāng)前 光標(biāo)處到標(biāo)記處,只要鍵入: d`b
即可。 如果再把光標(biāo)移到第三行的"n"處,再作一標(biāo)記s,只要鍵入:
ms即可。如果光標(biāo)在別的 地方,什么時候想把光標(biāo)移到第三行的"n"處,只要鍵入: `s 即可。如果僅是想把光標(biāo)移到 第三行,只要鍵入: 's
即可。
⒒ 搜索并代替
對文件進(jìn)行更復(fù)雜的修改,最好用搜索替代合在一起的命令。這類命令往往是一些簡單 命令的組合。 搜索替代命令
-------------------------------------------------------- g
全局搜索 用于開頭,代表搜索所有行,用于末 尾,代表搜索整行。
s 替代命令 如果出現(xiàn)在命令行中,應(yīng)與其他命令 用"/"隔開。
p 顯示命令 c 提問命令
對要替代的內(nèi)容用符號"^"提示,若按 下"y"才發(fā)生替換,否則不替換。
v 不匹配命令
--------------------------------------------------------
搜索替代命令是在ex轉(zhuǎn)換方式下使用的,即按下"ESC"鍵和":"之后才能使用。鍵入的命 令出現(xiàn)在狀態(tài)行上,按回車執(zhí)行。被搜索替代的字符串兩邊要加斜線"/",
如果不使用全局 命令"g",則只對第一個找到的字符串起作用。命令前面也可以加地址范圍的選擇。 下面是使用命令的例子:
:s/abc/xyz/<Enter> 用xyz替換當(dāng)前行找到的第一個abc
:s/ab/x/g<Enter> 用x替換當(dāng)前行所有的ab
:g/22/s//456/<Enter>
每行找到的第一個字符串"22"都用 字符串"456"替換
:g/22/s//456/g<Enter>
全文找到的所有字符串"22"都用串
"456"替換,第一個"g"代表"每行", 第二個"g"代表一行中的全部。
:g/this/p<Enter> 顯示所有含"this"的行
:v/this/p<Enter> 顯示所有不含"this"的行
:g!/this/p<Enter> 顯示所有不含"this"的行 :g/^/s//abc/g
在文件每一行開頭插入abc,"^"代 表行首。
:g/this/s//THIS/gp<Enter>
全文所有"this"都用"THIS"替代, 并且顯示發(fā)生替代的行。
:3,7s/this/THIS/<Enter>
第3行到第7行中第一個"this"都用 "THIS"替代。
:3,7s/this/THIS/g<Enter>
第3行到第7行中所有的"this"都用 "THIS"替代。
:1,$s/this/THIS/g<Enter> 第一行到最后一行
(全文)中所有的 "this"都用"THIS"替代。
⒓ 替代
在命令方式下執(zhí)行替代命令,按"ESC"結(jié)束。
-------------------------------------------------------- r
替代一個字符 R 替代可以到行尾,超過行尾的部分被附加 ns
替代n個字符,超過數(shù)目的輸入被插入 nS 刪除n行,并處于插入狀態(tài) cw
替代一個字 cc 刪除當(dāng)前行,并進(jìn)入插入狀態(tài)
-------------------------------------------------------- ⒔ 其他常用命令
-------------------------------------------------------- :r 文件名
將文件名所指文件讀入,并放在當(dāng)前行下面 nyw 將光標(biāo)后的n個字放入緩沖區(qū) "anyw
將光標(biāo)后的n個字放入a緩沖區(qū) "Anyw 將光標(biāo)后的n個字附加到a緩沖區(qū) nyy
將當(dāng)前行及下面的行共n行放入緩沖區(qū) "anyy 將當(dāng)前行及下面的行共n行放入a緩沖區(qū),a可用其
他小寫字母代替 "Anyy 將當(dāng)前行及下面的行共n行附加到a緩沖區(qū),A可用
其他大寫字母代替 p 將緩沖區(qū)的內(nèi)容放入當(dāng)前行下面或光標(biāo)后,這取決
于緩沖區(qū)中是否有完整的行。 P 將緩沖區(qū)的內(nèi)容放入當(dāng)前行上面或光標(biāo)前,這取決
于緩沖區(qū)中是否有完整的行。 "ap 將命令"ayy保存的內(nèi)容放入當(dāng)前行下面,a可用其
他小寫字母代替 m 移動正文 t 拷貝正文 w
寫文件 --------------------------------------------------------
下面是一些例子: :r fn 將文件fn讀入,并放在當(dāng)前行下面 2yy
將當(dāng)前行及下一行放入緩沖區(qū) p 將執(zhí)行2yy保存的兩行放到當(dāng)前行下面 2,4m6
將第2到4行移到第6行下面 2,4t6 將第2到4行拷貝到第6行下面 2,4wfn
將第2到4行寫到文件fn中
|