vi [語(yǔ)法]:vi [-wn] [-R] 文件... [說(shuō)明]: vi 是一個(gè)基于行編輯器 ex 上的全屏幕編輯器,可以在vi中使用ex,ed的全部命令,vi選項中 -wn 指將編輯窗口大小置為n行,-R為將編輯的文件置為只讀模式, vi工作模式分為命令模式和輸入模式,一般情況下在命令模式下,可敲入vi命令,進(jìn)入輸入模式下時(shí)可以編輯要編輯的文本,命令 a A i I o O c C s S R 可進(jìn)入輸入模式,在輸入模式下按 ESC 鍵可推出輸入模式,回到命令模式,在命令模式中敲入:命令,則可進(jìn)入ex方式,在屏幕底部出現提示符 : ,此時(shí)可使用任意ex命令,屏幕底行也用來(lái)作/ ? ! 命令的提示行,大多數命令可以在其前面加數字,表示命令執行的重復次數,下面簡(jiǎn)單介紹一下vi 的命令集,^ 表示(CTRL)鍵 ^B 退回前一頁(yè),前面加數字表示重復次數,每次換頁(yè)時(shí)保留上一頁(yè)的兩行 ^D 在命令模式下,表示下滾屏幕的一半,在輸入模式下,表示回退至左邊的自動(dòng)縮進(jìn)處 ^E 顯示屏幕底線(xiàn)之下的一行 ^F 前進(jìn)一頁(yè),前面加數字表示重復次數,每次換頁(yè)時(shí)保留上一頁(yè)的兩行 ^G 顯示當前文件名,當前行號和文件總行數,并用百分號當前行在整個(gè)文件中的位置 ^H(退格) 在命令模式下,光標左移一格;在輸入模式下,刪去前面的字符 ^I(TAB) 在輸入模式下,產(chǎn)生一串空格 ^J(LF) 光標下移一行 ^L 刷新屏幕,即將屏幕重新顯示 ^M(回車(chē)) 在命令模式下,光標移動(dòng)至下行開(kāi)頭在輸入模式下,開(kāi)辟一新行 ^N 光標下移一行 ^P 光標上移一行 ^Q 在輸入模式下,將其后的非打印字符作為正文插入 ^R 刷新屏幕 ^U 屏幕上滾一半,前面加數字時(shí)表示上滾的行數,此數字對以后的^D ^U 命令有效 ^V 在輸入模式下,將其后的非打印字符作為正文插入 ^W 在輸入模式下,使光標回退一個(gè)字 ^Y 顯示屏幕底線(xiàn)之上的一行 ^Z 暫停編輯,退回上層Shell ^[(ESC) 退出輸入模式,回到命令模式 ! 暫時(shí)退出編輯,執行Shell命令 "(雙引號) 用于標志有名緩沖區,編號緩沖區1-9用于保存被刪去的正文,字母名緩沖區a-z供用戶(hù)存放自定義的正文 $ 將光標移動(dòng)到當前行尾,前加數字則表示前移行數,如2$表示移動(dòng)到下一行行尾 % 將光標移動(dòng)到配對的小括號()或大括號{}上去 ( 退回句子開(kāi)頭 ) 前移到句子開(kāi)頭 - 退到上一行第一個(gè)非空格字符 . 重復上一次改變緩沖區內容的命令 / 模式 向前搜索模式,將光標移動(dòng)到模式出現處,模式是一個(gè)正規表達式,(參看 grep) ?。?nbsp;在屏幕底部提示:,其后可使用ex命令 功能同 / ,但方向是向前查找 [[ 光標回退至前一節分界處 \ 轉意符 ]] 光標前移至節分界處 ^(不是CTRL) 光標移至當前行第一個(gè)非空字符上 ' 連續兩個(gè)''表示將光標移至其移動(dòng)前的位置,'后跟字母表示光標字母標記的行首(參看 m 命令)
A 在行尾插入正文,進(jìn)入輸入模式 B 光標回退一個(gè)字 C 替換光標后的內容 D 刪除光標后的內容 E 光標前移到字尾 F 字符 在當前行向左查找指定字符 G 光標移動(dòng)到其前面數字指定的行,若未指定則移動(dòng)到最后一行 H 光標移動(dòng)到屏幕頂行,若前面有數字,則移動(dòng)到屏幕上該數字指定的行 I 在行開(kāi)頭插入正文 J 連接兩行,若前面有數字則連接數字指定的行 L 光標移動(dòng)到屏幕底行,若前面有數字,則移動(dòng)到屏幕底線(xiàn)往上數該數字指定的行 M 光標移動(dòng)到屏幕中線(xiàn) N 使用模式查找/或?時(shí),重復找下一個(gè)匹配的模式,但方向與上次相反,其功能同 n ,但方向相反 O 在當前行上開(kāi)辟一新行 P 將上次被刪除的正文插入光標前面,可在其前面加緩沖區編號,編號1-9用于保存被刪去的正文,字母名緩沖區a-z供用戶(hù)存放自定義的正文 Q 從vi 推出進(jìn)入ex命令狀態(tài) R 替換字符串 S 替換整行 T 字符 向左查找字符 U 將當前行恢復至第一次修改前的狀態(tài) W 光標移至下一個(gè)字首 X 刪除光標前的字符 Y 將當前行存入無(wú)名緩沖區,前面加數字表示存入的行數,也可用有名緩沖區來(lái)保存,以后可用命令p或P將其取出 ZZ 存盤(pán)退出vi a 光標后插入正文 b 光標回退至上一個(gè)字首 cw 替換當前字 c) 替換當前句子 dw 刪除一個(gè)字 dd 刪除一行 e 光標移到下一個(gè)字末 f 字符 在當前行向前查找字符 h 光標左移一格 i 在光標前插入正文 j 光標下移一行 k 光標上移一行 l 光標右移一格 m 字母 用字母標記當前行,以后可用 '字母使光標移動(dòng)到當前行,(參看'命令) n 重復上次 / 或 ? 命令 o 在當前行下開(kāi)辟一新行 p 將用戶(hù)緩沖區內容放到光標位置(參看P命令) r 替換當前字符 s 用一串字符替換當前字符 t 字符 光標移動(dòng)至字符前 u 取消上次操作 w 光標移至下一字首 x 刪除當前字符 yw 將當前字存入無(wú)名緩沖區,前面可加"x,表示存入名字為x的有名緩沖區(x為a-z),也可加數字表示存入的字數,以后可用P或p命令取出 yy 將當前行存入無(wú)名緩沖區,用法參看yw { 光標移動(dòng)至前一段開(kāi)頭 | 光標移至行首,若前面加數字,則移到數字指定行的行首 } 光標移至下一段開(kāi)頭在:提示符下,常用命令如下: ?。簑 當前文件存盤(pán) ?。簑! 強制存盤(pán) ?。簑 文件 將內容寫(xiě)入指定文件 ?。簑! 文件 強制寫(xiě)入指定文件 ?。簒,y w 文件 將 x至 y 行寫(xiě)入指定文件中 ?。簉 文件 將文件讀到光標位置 ?。簉 ! 命令 將系統命令的輸出讀到光標位置 ?。簈 退出編輯 ?。簈! 強制退出 ?。簒 與命令ZZ相同 ?。篹 文件名 編輯另一文件 ?。篹 ! 重新編輯文件,放棄任何改變 ?。簊h 執行sh,結束后回到編輯 ?。? 命令 執行命令后回到編輯 ?。簄 編輯下一文件 ?。簄 文件表 重新定義待編輯文件表 ?。簊et 設置 vi 的選項,例如 set nu 表示每行前顯示行號,在選項前加no則表示清除該選項,例如 set nonu 表示每行前不顯示行號,下面是一些常用的選項: ai 自動(dòng)縮進(jìn) aw 編輯下一文件前自動(dòng)存盤(pán) ic 查找字符串時(shí)不區分大小寫(xiě) nu 每行前顯示行號 sm 輸入)及}時(shí)顯示與之配對的( 或 { slow 插入時(shí)延遲屏幕刷新 ws 使查找能繞過(guò)文件尾從頭進(jìn)行 wa 寫(xiě)文件之前不作對文件的檢查