vi 經常會用到的文書處理軟體

===========================================

一般模式          游標跟頁數的移動

------------------------------------------------------------

     h                   游標向左移動一個字元

------------------------------------------------------------

     j                    游標向下移動一個字元

------------------------------------------------------------

     k                   游標向上移動一個字元

------------------------------------------------------------

 

     l                    游標像右移動一個字元

------------------------------------------------------------

[Ctrl] + [f]          螢幕向上移動一頁

------------------------------------------------------------

[Ctrl] + [b]          螢幕向下移動一頁

------------------------------------------------------------

[Ctrl] + [d]          螢幕向上移動半頁

------------------------------------------------------------

[Ctrl] + [u]          螢幕向下移動半頁

------------------------------------------------------------

[Ctrl] + [e]       螢幕往下一行

------------------------------------------------------------

[Ctrl] + [y]        螢幕往上一行

------------------------------------------------------------

+           游標移動到非空白字元的下一列

------------------------------------------------------------

-                            游標移動到非空白字元的上一列

------------------------------------------------------------

n <space>     按下數字後再按空白鍵,游標向右移動n字元

------------------------------------------------------------

n <Enter>     按下數字後再按Enter鍵,游標向下移動n行

------------------------------------------------------------

nG               移動游標到第n行,如30G會移動到該檔案的第30行

------------------------------------------------------------

0 (數字的0) 移動到本行的最前面

------------------------------------------------------------

$                 移動到本行的最後面

------------------------------------------------------------

H                移動到銀幕的最上方的一行

------------------------------------------------------------

M               移動到銀幕中央的那一行

------------------------------------------------------------

L               移動到銀幕的最下方那一行

------------------------------------------------------------

G              移動到整個檔案的最後面一行

------------------------------------------------------------

===========================================

一般模式:       搜尋跟取代的部份

------------------------------------------------------------

/word          向游標之後尋找一個字串名稱為 word 的字串

------------------------------------------------------------

?word         向游標之前尋找一個字串名稱為 word 的字串

------------------------------------------------------------

s(substitute)指令可以搜尋某行跟列的範圍,這個搜尋只會找該行第一個符合條件的字串並加以處理如果  

              該行內有數相同的條件滿足,並想要取代所有的字串,需要加上g的參數

------------------------------------------------------------

g(global)    指令可以搜尋所有編輯檔案內的資料

------------------------------------------------------------

% 可以代表所有編輯的檔案的所有區域的內容

------------------------------------------------------------

:n1,n2s/word1/word2/g  在第 n1 與 n2 行之間尋找 word1 這個字串,並將word1串取代為 word2

------------------------------------------------------------

:1,$s/word1/word2/g     從第一行道最後一行之間尋找 word1 這個字串,並將word1串取代為 word2

------------------------------------------------------------

:1,$s/word1/word2/gc   從第一行道最後一行之間尋找 word1 這個字串,並將word1串取代為 word2

                   並且在取代前詢問(conform)是否需要取代

------------------------------------------------------------

n  往下繼續尋找相同的字串

------------------------------------------------------------

N  往上繼續尋找相同的字串

------------------------------------------------------------

 

===========================================

一般模式:    刪除

------------------------------------------------------------

x , X    x 為向後刪除一個字元, X 為向前刪除一個字元

------------------------------------------------------------

nx          為向後刪除n字元

------------------------------------------------------------

dd        刪除一整列

------------------------------------------------------------

ndd      刪除游標以下的n列

------------------------------------------------------------

d1G    刪除游標所在到第一行的所有資料

------------------------------------------------------------

dG      刪除游標所在到最後一行的所有資料

------------------------------------------------------------

c    重複刪除多個資料,例如:向下刪除10行 [ 10cj]

------------------------------------------------------------

%d   刪除整個目前編輯的資料

------------------------------------------------------------

 

===========================================

一般模式:    複製

------------------------------------------------------------

yy     複製游標所在的那一行

------------------------------------------------------------

nyy   複製游標所在的向下的n列

------------------------------------------------------------

y1G   複製游標所在列到第一列的所有資料

------------------------------------------------------------

yG    複製游標所在列到最後一列的所有資料

 

===========================================

一般模式:    貼上

------------------------------------------------------------

p    將複製的資料貼在游標的下一行(小寫)

------------------------------------------------------------

P    將複製的資料貼在游標的上一行(大寫)

------------------------------------------------------------

===========================================

一般模式:    復原

------------------------------------------------------------

u      復原前一個動作

------------------------------------------------------------

U  復原游標該行的所有的改變

------------------------------------------------------------

 

===========================================

進入編輯模式

------------------------------------------------------------

i    [insert]插入 ,在游標所在的位置向前插入字元

------------------------------------------------------------

I   插入(INSTER) , 從在游標所在的位置那一行的第一個字元開始插入

------------------------------------------------------------

a   [append]插入, 在游標所在的位置向後插入字元

------------------------------------------------------------

A 插入, 從在游標所在的位置那一行的最後一個字元開始插入

------------------------------------------------------------

o  [open]在游標所在位置想向下插入一行

------------------------------------------------------------

O  在游標所在位置向上插入一行

------------------------------------------------------------

r 只會取代游標所在的那一個字元

------------------------------------------------------------

R 會從游標目前所在的位置一直往下取代下去,一直到按下Esc為止

------------------------------------------------------------

Esc 退出編輯模式,回到一般模式中

------------------------------------------------------------

s 刪除游標所在之字元,並進入輸入模式

------------------------------------------------------------

S 刪除游標所在之整行資料,並在那一行進入輸入模

------------------------------------------------------------

 

===========================================

指令列命令模式

------------------------------------------------------------

:w      將編輯的資料寫入硬碟中

------------------------------------------------------------

:w!   若檔案屬性維(唯讀)時候強制寫入時候可以用

------------------------------------------------------------

:q  離開vi

------------------------------------------------------------

:q! 離開但是不存檔,有修改過不想存當離開的時候使用

------------------------------------------------------------

:wq  存檔後離開vi

------------------------------------------------------------

:wq! 強制存檔後離開vi

------------------------------------------------------------

:e!  將檔案還原到最原始的狀態

------------------------------------------------------------

ZZ 檔案如果沒有更改,就不存檔離開,如有更動過,就存檔後離開

------------------------------------------------------------

:w [filename]  將編輯中的檔案 另存成一個新的檔案

------------------------------------------------------------

:r [filename]   將讀入的檔案 ,插入在目前的游標所在行的後面

------------------------------------------------------------

:set nu   or :set number   顯示出行號

------------------------------------------------------------

:set nonu or :set nonumber 取消行號的顯示

------------------------------------------------------------

:! command 暫時離開vi到命令模式下執行 command的顯示結果

------------------------------------------------------------

h向左移一個字元

------------------------------------------------------------

j 向上移一個字元

------------------------------------------------------------

k 向下移一個字元

------------------------------------------------------------

l 向右移一個字元

------------------------------------------------------------

0 移至該行之首

------------------------------------------------------------

$ 移至該行之末

------------------------------------------------------------

^ 移至該行的第一個字元處

------------------------------------------------------------

H 移至視窗的第一列

------------------------------------------------------------

M 移至視窗的中間那列

------------------------------------------------------------

L 移至視窗的最後一列

------------------------------------------------------------

G 移至該檔案的最後一列

------------------------------------------------------------

+ 移至下一列的第一個字元處

------------------------------------------------------------

-  移至上一列的第一個字元處

------------------------------------------------------------

(   移至該行的句首

------------------------------------------------------------

)  移至該行的句末

------------------------------------------------------------

{  移至該段落的句首

------------------------------------------------------------

}  移至該段落的巨末

------------------------------------------------------------

nG 游標移到該行的第 n列

------------------------------------------------------------

n+ 移到游標所在的地方之後的第n列

------------------------------------------------------------

n- 移到游標所在的地方之前的第 n 列

------------------------------------------------------------

[Ctril] + [g] 顯示該行的行號n% ,n代表第幾行,檔案名稱還有總共有幾行等等資訊

------------------------------------------------------------

P.S. 句子(sentence) 是以 ! . ? 束的一串字

------------------------------------------------------------

P.S. 段落(Paragraph) 是以 空白行隔開的文字

------------------------------------------------------------

 

===========================================

恢復編輯時被中斷的檔案

------------------------------------------------------------

#vi –r filename

 ------------------------------------------------------------

===========================================

恢復編輯時被中斷的檔案

------------------------------------------------------------

#vi file1 file2 …同時開啟多個檔案

第一個編輯完成後可以用:w寫入緩衝區的資料

:n 載入下一個檔案

------------------------------------------------------------

 

===========================================

執行一些指令

------------------------------------------------------------

:!ls     執行 ls這個指令,可以看到ls以後的結果,最後按ENTER可以回vi

------------------------------------------------------------

:sh 可以直接跳到 shell 模式 ,  exit 可以回編輯模式

------------------------------------------------------------

===========================================

資料連接的用法跟指令

J 將游標所在的下一行,接在那一行的最後面(大寫的J)