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