VI 编辑器 命令
使用vi很久了,回想起當(dāng)時(shí)學(xué)習(xí)vi時(shí)的經(jīng)歷,覺得有必要記錄下vi常用命令,希望對(duì)大家有用。
當(dāng)時(shí)學(xué)習(xí)vi,主要是在書上或網(wǎng)上看使用命令,然后實(shí)踐。很多書上都提到了vi的使用,但寫的比較籠統(tǒng),有些命令沒有提到。不常用的命令提到了,常用的命令反而沒提到,反而有點(diǎn)了混淆視聽。而網(wǎng)上網(wǎng)友們提供的vi命令又太過于細(xì)了,不管常用不常用,提出來一堆命令,以至于學(xué)習(xí)沒有重點(diǎn)。
基于此,我覺得有必要記錄下vi常用命令,希望對(duì)大家有用。
(注:[color="#ff0000"]這里只記錄我認(rèn)為常用的命令)
vi有三種工作模式:指令模式、編輯模式和命令模式。
我們從打開vi說起,這樣可以確定下學(xué)習(xí)環(huán)境,也方便學(xué)習(xí)者實(shí)踐。
打開vi,當(dāng)前模式即為指令模式,此時(shí)可以按a, i, 或o進(jìn)入編輯模式,或按:(冒號(hào))進(jìn)入命令模式;進(jìn)入編輯模式后,按Esc鍵則返回指令模式;命令模式只能由指令模式進(jìn)入,命令模式下執(zhí)行命令后,便自動(dòng)返回指令模式。
[color="#ff0000"]1、指令模式:此時(shí)是不可編輯的,即此時(shí)只有按指令鍵,vi才有反應(yīng),否則,vi是不會(huì)我反應(yīng)的。所以此模式下是不能編輯文件的。
[color="#0000ff"]a -- (指輸入a,下同)進(jìn)入編輯模式,在光標(biāo)當(dāng)前位置的后面進(jìn)行輸入 (注:中間的"--"是分隔欄,不是命令的一部分,下同)
[color="#0000ff"]i -- 進(jìn)入編輯模式,在光標(biāo)當(dāng)前位置的前面進(jìn)行輸入
[color="#0000ff"]o -- (小寫字母o)進(jìn)入編輯模式,在光標(biāo)當(dāng)前行下面新插入一行,并將光標(biāo)定位到新行的最前面
[color="#0000ff"]0 -- (數(shù)字0)仍然是指令模式,定位光標(biāo)到當(dāng)前行的最前面
[color="#0000ff"]$ -- (shift+4)仍然是指令模式,定位光標(biāo)到當(dāng)前行的最后面
[color="#0000ff"]j -- 仍然是指令模式,光標(biāo)向下移動(dòng)
[color="#0000ff"]k[color="#0000ff"] -- 仍然是指令模式,光標(biāo)向上移動(dòng)
[color="#0000ff"]h[color="#0000ff"] -- 仍然是指令模式,光標(biāo)向左移動(dòng)
[color="#0000ff"]l[color="#0000ff"] -- 仍然是指令模式,光標(biāo)向右移動(dòng)
[color="#0000ff"]G[color="#0000ff"] -- 仍然是指令模式,光標(biāo)移動(dòng)到文件的最后一行
[color="#0000ff"]nG[color="#0000ff"] -- (n是行數(shù))仍然是指令模式,光標(biāo)移動(dòng)到文件的第n行
[color="#0000ff"]%[color="#0000ff"] -- 仍然是指令模式,如果光標(biāo)當(dāng)前位置的字符為大中小括號(hào)的一部分,則會(huì)自動(dòng)定位到括號(hào)的另一部分,此命令用于代碼的定位比較容易
[color="#0000ff"]x[color="#0000ff"] -- 仍然是指令模式,將光標(biāo)當(dāng)前位置的字符刪除
[color="#0000ff"]ndd[color="#0000ff"] -- (n為行數(shù))仍然是指令模式,將從光標(biāo)當(dāng)前行開始向后計(jì)算共n行,一起cut(剪切)。若n為1,則可不需輸入,只需dd即可。
[color="#0000ff"]nyy[color="#0000ff"] -- (n為行數(shù))仍然是指令模式,將從光標(biāo)當(dāng)前行開始向后計(jì)算共n行,一起copy(復(fù)制)。若n為1,則可不需輸入,只需yy即可。
[color="#0000ff"]p[color="#0000ff"] -- 仍然是指令模式,粘貼內(nèi)容到光標(biāo)所在行的下面
[color="#ff0000"]2、編輯模式:
[color="#0000ff"]即為輸入模式,就和運(yùn)行windows平臺(tái)的記事本一樣。鍵入什么,則輸入什么。
[color="#ff0000"]3、命令模式:
[color="#0000ff"]在指令模式,鍵入:(冒號(hào))則進(jìn)入命令模式,光標(biāo)也會(huì)自動(dòng)定位到vi程序的最下面一行,然后在:(冒號(hào))后面相關(guān)命令,然后"回車"即可。命令執(zhí)行后,會(huì)自動(dòng)返回指令模式。
[color="#0000ff"]:x -- 保存并退出
[color="#0000ff"]:wq -- 同上
[color="#0000ff"]:q! -- 不保存,然后退出
[color="#0000ff"]:n -- (n為行數(shù))光標(biāo)跳轉(zhuǎn)到第n行
[color="#0000ff"]:1,$s/aa/bb/g -- 從第1行到文件的最后一行(整個(gè)文件),將aa替換為bb,不提示全部替換
[color="#0000ff"]:1,$s/aa/bb/g -- 同上,只是每發(fā)現(xiàn)一個(gè)aa,則會(huì)提示是否替換
[color="#0000ff"]:set nu -- 設(shè)置顯示行號(hào)
[color="#0000ff"]:set nonu -- 設(shè)置不顯示行號(hào)
[color="#0000ff"]:set ts=n -- (n為數(shù)字)設(shè)置Table顯示為n個(gè)字符的寬度,只是顯示,而不是替換
[color="#0000ff"]/xxx --(xxx為查找的內(nèi)容)向下查找(不需要冒號(hào))
[color="#0000ff"]?xxx --(xxx為查找的內(nèi)容)向上查找[color="#0000ff"](不需要冒號(hào))
[color="#0000ff"]# --(shift+3)[color="#0000ff"]向上查找光標(biāo)當(dāng)前所在位置的單詞(不需要冒號(hào))
[color="#0000ff"]' --(引號(hào)鍵)在當(dāng)前行和上一次查找結(jié)果前切換,可多次使用(不需要冒號(hào))
[color="#0000ff"]
當(dāng)時(shí)學(xué)習(xí)vi,主要是在書上或網(wǎng)上看使用命令,然后實(shí)踐。很多書上都提到了vi的使用,但寫的比較籠統(tǒng),有些命令沒有提到。不常用的命令提到了,常用的命令反而沒提到,反而有點(diǎn)了混淆視聽。而網(wǎng)上網(wǎng)友們提供的vi命令又太過于細(xì)了,不管常用不常用,提出來一堆命令,以至于學(xué)習(xí)沒有重點(diǎn)。
基于此,我覺得有必要記錄下vi常用命令,希望對(duì)大家有用。
(注:[color="#ff0000"]這里只記錄我認(rèn)為常用的命令)
vi有三種工作模式:指令模式、編輯模式和命令模式。
我們從打開vi說起,這樣可以確定下學(xué)習(xí)環(huán)境,也方便學(xué)習(xí)者實(shí)踐。
打開vi,當(dāng)前模式即為指令模式,此時(shí)可以按a, i, 或o進(jìn)入編輯模式,或按:(冒號(hào))進(jìn)入命令模式;進(jìn)入編輯模式后,按Esc鍵則返回指令模式;命令模式只能由指令模式進(jìn)入,命令模式下執(zhí)行命令后,便自動(dòng)返回指令模式。
[color="#ff0000"]1、指令模式:此時(shí)是不可編輯的,即此時(shí)只有按指令鍵,vi才有反應(yīng),否則,vi是不會(huì)我反應(yīng)的。所以此模式下是不能編輯文件的。
[color="#0000ff"]a -- (指輸入a,下同)進(jìn)入編輯模式,在光標(biāo)當(dāng)前位置的后面進(jìn)行輸入 (注:中間的"--"是分隔欄,不是命令的一部分,下同)
[color="#0000ff"]i -- 進(jìn)入編輯模式,在光標(biāo)當(dāng)前位置的前面進(jìn)行輸入
[color="#0000ff"]o -- (小寫字母o)進(jìn)入編輯模式,在光標(biāo)當(dāng)前行下面新插入一行,并將光標(biāo)定位到新行的最前面
[color="#0000ff"]0 -- (數(shù)字0)仍然是指令模式,定位光標(biāo)到當(dāng)前行的最前面
[color="#0000ff"]$ -- (shift+4)仍然是指令模式,定位光標(biāo)到當(dāng)前行的最后面
[color="#0000ff"]j -- 仍然是指令模式,光標(biāo)向下移動(dòng)
[color="#0000ff"]k[color="#0000ff"] -- 仍然是指令模式,光標(biāo)向上移動(dòng)
[color="#0000ff"]h[color="#0000ff"] -- 仍然是指令模式,光標(biāo)向左移動(dòng)
[color="#0000ff"]l[color="#0000ff"] -- 仍然是指令模式,光標(biāo)向右移動(dòng)
[color="#0000ff"]G[color="#0000ff"] -- 仍然是指令模式,光標(biāo)移動(dòng)到文件的最后一行
[color="#0000ff"]nG[color="#0000ff"] -- (n是行數(shù))仍然是指令模式,光標(biāo)移動(dòng)到文件的第n行
[color="#0000ff"]%[color="#0000ff"] -- 仍然是指令模式,如果光標(biāo)當(dāng)前位置的字符為大中小括號(hào)的一部分,則會(huì)自動(dòng)定位到括號(hào)的另一部分,此命令用于代碼的定位比較容易
[color="#0000ff"]x[color="#0000ff"] -- 仍然是指令模式,將光標(biāo)當(dāng)前位置的字符刪除
[color="#0000ff"]ndd[color="#0000ff"] -- (n為行數(shù))仍然是指令模式,將從光標(biāo)當(dāng)前行開始向后計(jì)算共n行,一起cut(剪切)。若n為1,則可不需輸入,只需dd即可。
[color="#0000ff"]nyy[color="#0000ff"] -- (n為行數(shù))仍然是指令模式,將從光標(biāo)當(dāng)前行開始向后計(jì)算共n行,一起copy(復(fù)制)。若n為1,則可不需輸入,只需yy即可。
[color="#0000ff"]p[color="#0000ff"] -- 仍然是指令模式,粘貼內(nèi)容到光標(biāo)所在行的下面
[color="#ff0000"]2、編輯模式:
[color="#0000ff"]即為輸入模式,就和運(yùn)行windows平臺(tái)的記事本一樣。鍵入什么,則輸入什么。
[color="#ff0000"]3、命令模式:
[color="#0000ff"]在指令模式,鍵入:(冒號(hào))則進(jìn)入命令模式,光標(biāo)也會(huì)自動(dòng)定位到vi程序的最下面一行,然后在:(冒號(hào))后面相關(guān)命令,然后"回車"即可。命令執(zhí)行后,會(huì)自動(dòng)返回指令模式。
[color="#0000ff"]:x -- 保存并退出
[color="#0000ff"]:wq -- 同上
[color="#0000ff"]:q! -- 不保存,然后退出
[color="#0000ff"]:n -- (n為行數(shù))光標(biāo)跳轉(zhuǎn)到第n行
[color="#0000ff"]:1,$s/aa/bb/g -- 從第1行到文件的最后一行(整個(gè)文件),將aa替換為bb,不提示全部替換
[color="#0000ff"]:1,$s/aa/bb/g -- 同上,只是每發(fā)現(xiàn)一個(gè)aa,則會(huì)提示是否替換
[color="#0000ff"]:set nu -- 設(shè)置顯示行號(hào)
[color="#0000ff"]:set nonu -- 設(shè)置不顯示行號(hào)
[color="#0000ff"]:set ts=n -- (n為數(shù)字)設(shè)置Table顯示為n個(gè)字符的寬度,只是顯示,而不是替換
[color="#0000ff"]/xxx --(xxx為查找的內(nèi)容)向下查找(不需要冒號(hào))
[color="#0000ff"]?xxx --(xxx為查找的內(nèi)容)向上查找[color="#0000ff"](不需要冒號(hào))
[color="#0000ff"]# --(shift+3)[color="#0000ff"]向上查找光標(biāo)當(dāng)前所在位置的單詞(不需要冒號(hào))
[color="#0000ff"]' --(引號(hào)鍵)在當(dāng)前行和上一次查找結(jié)果前切換,可多次使用(不需要冒號(hào))
[color="#0000ff"]
轉(zhuǎn)載于:https://www.cnblogs.com/JemBai/archive/2009/11/10/1599521.html
總結(jié)
- 上一篇: 某省高职比赛试题(园区网互联)
- 下一篇: 什么是“软件架构设计”(推荐)