檔案編輯器vi使用方法簡介 vi 是visual edit 的縮寫硅则。
指令模式:游標(biāo)的移動(dòng)冒掌、視窗的移動(dòng)噪裕、刪除/復(fù)制及修改指令介紹(delete change、yank)股毫、刪除與復(fù)制(delete膳音、replace)、搬移與復(fù)制(delete/put铃诬、yank/put)祭陷、指令重復(fù)、取消前一動(dòng)作(undo)趣席、字串搜尋兵志、資料的連接與分行、環(huán)境的設(shè)定宣肚、ex指令其他方面:中文編輯想罕、恢復(fù)編輯時(shí)被中斷的檔案、編輯多個(gè)檔案? ?
?vi 進(jìn)入:? ? ? ? vi filename??
? vi 離開:? ? ? ? q!? ? ? ? 離開vi,并放棄剛在緩沖區(qū)內(nèi)編輯的內(nèi)容钉寝。? ??
? ? Wq/zz /x? ? 將緩沖區(qū)內(nèi)的資料寫入磁盤中弧呐,并離開vi? ? ? ? w? ? ? ? ? 將緩沖區(qū)內(nèi)的資料寫入磁盤中闸迷,但并不離開vi? ? ? ? q? ? ? ? ? 離開vi ,若檔案被修改過,則會(huì)被要求確認(rèn)是否放棄修改的內(nèi)容??
? vi 的操作模式 ? ? ? ?Vi 提供兩種操作模式:輸入模式(insert mode)和指令模式? ? ? ? (command mode)俘枫。當(dāng)使用者進(jìn)入vi后腥沽,既處于指令模式下,此刻鍵入任何? ? ? ? 字元皆被視為指令鸠蚪。? ? ?
?? 輸入模式:a(append)? 游標(biāo)之后加入資料今阳。? ? ? ? ? ? ? ? ? ? A? ? ? ? ? 該行之末加入資料? ? ? ? ? ? ? ? ? ? i (insert)? ? 游標(biāo)之前加入資料? ? ? ? ? ? ? ? ? ? I? ? ? ? ? 該行之首加入資料? ? ? ? ? ? ? ? ? ? o (open)? ? 新增一行與該行之下供輸入資料? ? ? ? ? ? ? ? ? ? O? ? ? ? ? 新增一行與該行之上供輸入資料? ? ? ? 指令模式:h? ? ? ? ? 向左移一個(gè)字元? ? ? ? ? ? ? ? ? ? 1? ? ? ? ? 向右移一個(gè)字元? ? ? ? ? ? ? ? ? ? j? ? ? ? ? 向上移一個(gè)字元? ? ? ? ? ? ? ? ? ? k? ? ? ? ? 向下移一個(gè)字元? ? ? ? ? ? ? ? ? ? 0? ? ? ? ? 移至該行之首? ? ? ? ? ? ? ? ? ? M? ? ? ? 移至視窗的中間那列? ? ? ? ? ? ? ? ? ? L? ? ? ? ? 移至視窗的最后一列? ? ? ? ? ? ? ? ? ? G? ? ? ? ? 移至該檔案的最后一列? ? ? ? ? ? ? ? ? ? ? nG? ? ? ? 移至該檔案的第n列? ? ? ? ? ? ? ? ? ? n+? ? ? ? 移至游標(biāo)所在位置之后的第n列? ? ? ? ? ? ? ? ? ? n-? ? ? ? 移至游標(biāo)所在位置之前的第n列顯示該行之行號(hào)、檔案名稱茅信、檔案中最末之行號(hào)盾舌、游標(biāo)所在行號(hào)占? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 總行號(hào)之百分比? ? ? ? ??
? 視窗移動(dòng):視窗往下卷一頁視窗往上卷一頁視窗往下卷半頁視窗往上卷半頁視窗往下卷一行視窗往上卷一行? ? ? ??
? ? 刪除、復(fù)制及修改指令介紹:? ? ? ? ? ? d(delete)蘸鲸、c(change)和y(yank)這一類的指令在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)指令,類似delete于insert的組合千康。
刪除一個(gè)字組享幽、句子等? ? ? ? ? ? ? ? ? ? ? ? 資料,并插入新鍵入的資料吧秕。? ? ? ? ? ? 范圍:? ? ? ? ? ? ? ? ? ? e? 由游標(biāo)所在位置至該字串的最后一個(gè)字元琉闪。? ? ? ? ? ? ? ? ? ? w? 由游標(biāo)所在位置之下一個(gè)字串的第一個(gè)字元。? ? ? ? ? ? ? ? ? ? b? 由游標(biāo)所在位置之前一個(gè)字串的第一個(gè)字元砸彬。? ? ? ? ? ? ? ? ? ? $? 由游標(biāo)所在位置至該行的最后一個(gè)字元颠毙。? ? ? ? ? ? ? ? ? ? 0? 由游標(biāo)所在位置該行的第一個(gè)字元。? ? ? ? ? ? ? ? ? ? )? 由游標(biāo)所在位置至下一個(gè)句子的第一個(gè)字元砂碉。? ? ? ? ? ? ? ? ? ? (? 由游標(biāo)所在位置至該句子的第一個(gè)字元蛀蜜。? ? ? ? ? ? ? ? ? ? {? 由游標(biāo)所在位置至該段落的最后一個(gè)字元。? ? ? ? ? ? ? ? ? ? }? 由游標(biāo)所在位置至該段落的第一個(gè)字元增蹭。? ? ? ? ? ? 整行動(dòng)作:? ? ? ? ? ? ? ? ? ? dd? 刪除整行滴某。? ? ? ? ? ? ? ? ? ? D? 以行為單位,刪除游標(biāo)后所有字元。? ? ? ? ? ? ? ? ? ? cc? 修改整行的內(nèi)容霎奢。? ? ? ? ? ? ? ? ? ? yy? yank整行户誓,使游標(biāo)所在該行復(fù)制到記憶體緩沖區(qū)。? ? ? ? ? ? 刪除與修改:? ? ? ? ? ? ? ? ? ? x? 刪除游標(biāo)所在該字元幕侠。? ? ? ? ? ? ? ? ? ? X? 刪除游標(biāo)所在之前一字元帝美。? ? ? ? ? ? ? ? ? ? dd? 刪除游標(biāo)所在該行。? ? ? ? ? ? ? ? ? ? r? 用接于此指令之后的字元取代(replace)游標(biāo)所在字元晤硕。? ? ? ? ? ? ? ? ? ? R? 進(jìn)入取代狀態(tài)悼潭,直到《ESC》為止? ? ? ? ? ? ? ? ? ? s? 刪除游標(biāo)所在字元,并進(jìn)入取代模式直到《ESC》? ? ? ? ? ? ? ? ? ? S? 刪除游標(biāo)所在之該行資料舞箍,并進(jìn)入輸入模式直到《ESC》? ? ? ? ? ? 搬移與復(fù)制:yank和delete可將指定的資料復(fù)制到記憶體緩沖區(qū)舰褪,而藉有put指令可將緩沖區(qū)內(nèi)的資料復(fù)制到熒幕上? ? ? ? ? ? ? ? ? ? 例如:搬移一行? ? ? :在該行執(zhí)行dd? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 游標(biāo)移至目的地? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 執(zhí)行p? ? ? ? ? ? ? ? ? ? ? ? ? 復(fù)制一行? ? ? :在該行執(zhí)行yy? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 游標(biāo)移至目的地? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 執(zhí)行p? ? ? ? ? ? 指令重復(fù):在指令模式中,可在指令前加入一數(shù)字n疏橄,則此指令動(dòng)作會(huì)重復(fù)執(zhí)行n次占拍。? ? ? ? ? ? ? 例如: 刪除10行? ? :10dd? ? ? ? ? ? ? ? ? ? ? 復(fù)制10行? ? :10yy? ? ? ? ? ? 取消前一動(dòng)作(undo):即復(fù)原執(zhí)行上一指令前的結(jié)果。? ? ? ? ? ? ? ? ? ? u? ? 恢復(fù)最后一個(gè)指令之前的結(jié)果软族。? ? ? ? ? ? ? ? ? ? U? ? 恢復(fù)游標(biāo)該行之所有改變刷喜。? ? ??
? ? ? 搜尋:在vi中可搜尋某一字串残制,使游標(biāo)移至該處立砸。? ? ? ? ? ? ? ? ? ? /字串? ? ? 往游標(biāo)之后尋找該字串。? ? ? ? ? ? ? ? ? ? 初茶?字串? ? 往游標(biāo)之前尋找該字串颗祝。? ? ? ? ? ? ? ? ? ? n? ? ? ? ? 往下繼續(xù)尋找下一個(gè)相同的字串。? ? ? ? ? ? ? ? ? ? N? ? ? ? ? 往上繼續(xù)尋找下一個(gè)相同的字串恼布。? ? ? ? ? ? 資料的連接:? ? ? ? ? ? ? ? ? ? J? ? 句子的連接螺戳。將游標(biāo)所在之下一行連接至游標(biāo)該行的后面。? ? ? ? ? ? ? ? ? ? 若某行資料太長亦可將其分成兩行折汞,只要將游標(biāo)移至分開點(diǎn)倔幼,進(jìn)入輸入模式(可利用a、i等指令)在按《ENTER》即可爽待。每周專題之vi命令 Vi命令是我們在Unix和linux上接觸最多的文本編輯器了损同,雖然使用vi也近兩年了,但最近使用還是感覺有好多常用的鍵位沒有用到鸟款,于是又找了些vi命令方面的資料膏燃,惡補(bǔ)了下,特此把一些很實(shí)用的但我們又不是很熟悉的命令總結(jié)下: Vi文本處理器 通常情況下Vi分為3種模式何什,即“一般模式”组哩,“編輯模式”及“命令行模式”。 一般模式:Vi編輯文件時(shí),一進(jìn)入該文件就是一般模式了伶贰。在此模式中蛛砰,可使用上下左右鍵來移動(dòng)光標(biāo),可使用“刪除字符”或“刪除整行”來處理文件內(nèi)容黍衙,也可以使用“復(fù)制”暴备、“粘貼”來處理你的文件數(shù)據(jù)。 編輯模式:一般模式下可以處理刪除们豌、復(fù)制涯捻、粘貼等動(dòng)作,但是卻無法編輯望迎。在按下i,I,o,O,a,A,r,R等字母后才進(jìn)入編輯模式障癌。注意,通常在Linux中辩尊,按下上述字母后涛浙,在畫面的左下方會(huì)出現(xiàn)INSERT或REPLACE字樣,這才可以輸入任何字符寫入你的文件中(其實(shí)unix也一樣)摄欲。如要回到一般模式轿亮,必須按下Esc鍵,才可退出編輯模式胸墙。 命令行模式:在一般模式下我注,輸入“:”或“/”就可以將光標(biāo)移到最末一行。在這個(gè)模式中迟隅,您可以搜索數(shù)據(jù)但骨,讀取,存盤智袭,大量字符替換奔缠。?
下面總結(jié)下各個(gè)模式下的一些很實(shí)用的命令: 一般模式: Ctrl +f? ? ? ? ? ? ? ? ? ? 屏幕向前翻動(dòng)一頁 Ctrl +b? ? ? ? ? ? ? ? ? ? 屏幕向后翻動(dòng)一頁 0? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 光標(biāo)移動(dòng)到此行第一個(gè)字符處 $? ? ? ? ? ? ? ? ? ? ? ? 光標(biāo)移動(dòng)到此行最后一個(gè)字符處 G? ? ? ? ? ? ? ? ? ? ? ? 移動(dòng)到這個(gè)文件的最后一行 nG? ? ? ? ? ? ? ? ? ? ? ? 移動(dòng)到這個(gè)文件的第n行。例如 1G吼野,則移動(dòng)到文件的最上面第一行 n光標(biāo)向下移動(dòng)n行
/word? ? ? ? ? ? ? ? ? ? ? 在光標(biāo)之后查找一個(gè)名為word的字符串
?word? ? ? ? ? ? ? ? ? ? 在光標(biāo)之前查找一個(gè)名為word的字符串
x,X? ? ? ? ? ? ? ? ? ? ? ? x為向后刪除一個(gè)字符校哎,X為向前刪除一個(gè)字符
nx? ? ? ? ? ? ? ? ? ? ? ? 向后刪除n個(gè)字符
d$? ? ? ? ? ? ? ? ? ? ? ? 刪除光標(biāo)所在位置往后到這行的最后的所有數(shù)據(jù)
ndd? ? ? ? ? ? ? ? ? ? ? ? 刪除光標(biāo)所在行的向下n行,20dd刪除向下的20行
yy? ? ? ? ? ? ? ? ? ? ? ? 復(fù)制光標(biāo)所在行
nyy? ? ? ? ? ? ? ? ? ? ? ? 復(fù)制光標(biāo)所在行的向下n行瞳步,如20yy則是復(fù)制20行
p,P? ? ? ? ? ? ? ? ? ? ? ? p為復(fù)制的數(shù)據(jù)粘貼在光標(biāo)下一行闷哆,P則為粘貼在光標(biāo)上一行
u? ? ? ? ? ? ? ? ? ? ? ? ? 恢復(fù)前一個(gè)動(dòng)作
編輯模式:
r,R? ? ? ? ? ? ? ? ? ? ? ? ? 替換:r會(huì)替換光標(biāo)所指的那一個(gè)字符:R會(huì)一直替換光標(biāo)所指的文字,直到按下Esc為止
命令行模式:
:w [filename]? ? ? ? ? ? ? ? ? 將編輯數(shù)據(jù)保存為另一個(gè)文件
:r [filename]? ? ? ? ? ? ? ? ? 在編輯的數(shù)據(jù)中谚攒,讀另一個(gè)文件的數(shù)據(jù)
:set nu? ? ? ? ? ? ? ? ? ? ? ? 顯示行號(hào)
:se nonu? ? ? ? ? ? ? ? ? ? ? 取消設(shè)置行號(hào)
其中大部分命令我感覺是很實(shí)用的阳准,尤其是u、d$馏臭、r野蝇、setnu命令都是很管用讼稚,能提高你工作的效率