離開 vi

ZZ :wq :x 先存檔再離開
:w     檔名 存成他檔
:q     離開 (檔案有改會提示)
:q!     放棄編輯,直接離開
:wq!    強制存檔,並離開

暫時離開 vi  
:!     暫時執行一下UNIX指令
:sh     產生新shell, Ctrl + d 回原編輯處
Ctrl + z   回上一個 shell, 用 fg指令回 vi


插入/命令模式的切換

ESC鍵  插入模式 --> 命令模式

在命令模式下的指令
a   在游標右邊插入文字
i    在游標處插入文字
o    在游標下方增加新列
A    在游標那列末端插入文字
I    在游標那列開頭插入文字
O     在游標上方增加新列

移動游標

k    往上移
j    往下移
h    往左移
l    往右移
^    移到列首
$    移到列尾
w    往右移一個字(word)
b    往左移一個字(word)
e    移到目前所在字(word)的最後字元
G    移到檔尾
nG   移到第 n 列

:n    游標移到第 n 列
:$    游標移到最後一列
H    游標移到螢幕頂端
M    游標移到螢幕中間
L    游標移到螢幕底端
ctrl + d  游標向下捲半頁
ctrl + u  游標向上捲半頁
ctrl + f  游標向上捲一頁
ctrl + b  游標向下捲一頁
ctrl + G  查詢目前的游標位置

刪除資料

x    刪除游標所在字元(delete)
#x   從游標起,刪 # 個字元
X    刪除游標的前一字元(backspace)
#X   從游標起,往前刪 # 個字元
dw   刪一個字(word)
#dw   刪 # 個字(word)
D    刪字到列末
dd   整列刪除
#dd   從游標列開始,刪除 # 列
dG   從游標處刪到檔尾

搬移和複製

ndd   從游標處起 n 列, 剪到暫存區
nyy   從游標處起 n 列, 複製暫存區
p    將暫存區的內容貼到游標處
n,m co x  將 n 到 m 列的資料, 複製到 x 列
n,m m x  將 n 到 m 列的資料, 移到 x 列
.,$ co x  將游標所在列到檔尾的資料, 複製到 x 列

搜尋和取代

/     字串搜尋
:set ic   搜尋時不考慮大小寫
:set noic  搜尋時需考慮大小寫
n    向下搜尋
N    向上搜尋
r    將游標所在換成另一字元
cw   取代一個字串
cc   取代一整列
:s    取代多個字串
:1,$s  /舊字串/新字串/g 1是第1列, $是最後一列, g是全檔
例:下這段指令可以將檔案中所有的 a: b: ... z: 的字串改成*
:1,$s/[a-z]:/*/g

合併 列/檔案

J    合併兩列
:r    檔名 將他檔插在游標所在列之後
: n r   檔名 將他檔插在第 n 列之後
u    取消前一命令(undo)
U    對這列的修改全取消
:set nu  加上行號
:set nonu 不顯示行號

文章標籤
全站熱搜
創作者介紹
創作者 sean 的頭像
sean

My Source Code

sean 發表在 痞客邦 留言(0) 人氣(28)