vi 與 vim 的指令整理
vi 是 unix 家族下最功能強大的文字編輯器,讓用戶只要使用一個鍵盤就可以完成所有的編輯。而 vim 則是 vi 的加強版,甚至在 Windows 上也找得到 vim 的芳蹤。但 vi/vim 眾多的指令卻經常令初學者卻步,以下就是我所整理出來那些令人卻步的指令:
編輯模式
指令
|
說明
|
|
*
|
i
|
在游標位置進入編輯模式
|
I
|
在游標行的第一個非空白字元進入編輯模式
|
|
*
|
a
|
在游標位置後進入編輯模式
|
*
|
A
|
在游標行的最後一個字元進入編輯模式
|
*
|
o
|
向下新增一行,並進入編輯模式
|
O
|
向上新增一行,並進入編輯模式
|
|
cc
|
刪除游標行,並進入編輯模式
|
|
*
|
[ESC]
|
取消指令或退出編輯模式
|
游標移動
指令
|
說明
|
|
*
|
gg
|
移到第一行
|
*
|
G
|
移到最後一行
|
*
|
行數 → G
|
移動到第 n 行
|
0
|
移動到該行最前面
|
|
$
|
移動到該行最後面
|
|
字數 → [Space]
|
向右移動 n 個字元
|
|
*
|
行數 → [Enter]
|
向下移動 n 行
|
標記與複製
指令
|
說明
|
|
*
|
v
|
開始字串標記
|
*
|
V
|
開始行標記
|
*
|
v → [Ctrl]-V
|
開始區塊標記
|
*
|
d
|
刪除標記的內容
|
*
|
y
|
複製標記的內容
|
*
|
yy
|
複製游標行
|
yG
|
複製游標行到最後一行
|
|
y1G
|
複製游標行到第一行
|
|
y$
|
複製游標處到最後一個字元
|
|
y0
|
複製游標處到第一個字元
|
|
*
|
p
|
在下一行貼上複製或刪除的內容
|
P
|
在上一行貼上複製或刪除的內容
|
|
*
|
[Ctrl]-R → 0
|
在下一行貼上複製或刪除的內容,適用於編輯模式及指令行
|
搜尋與取代
指令
|
說明
|
|
*
|
/搜尋字串
|
向下搜尋字串
|
*
|
*
|
將游標移到字串上,直接按 “*” 也可以做向下搜尋
|
?搜尋字串
|
向上搜尋字串
|
|
*
|
:set ic
|
搜尋時不分大小寫
|
*
|
:set noic
|
搜尋時要分大小寫
|
*
|
n
|
繼續下一個搜尋結果
|
*
|
N
|
繼續上一個搜尋結果
|
*
|
:起始行,終止行s/搜尋字串/取代字串/gic
|
從第 n 行到第 n 行取代字串 (後面的 g: 整行全部, i: 不分大小寫,c: 詢問)
|
*
|
:1,$s/搜尋字串/取代字串/gic
|
全部取代字串 (後面的 g: 整行全部, i: 不分大小寫,
c: 詢問) |
刪除
指令
|
說明
|
|
*
|
dd
|
刪除游標行
|
*
|
dG
|
刪除游標行到最後一行
|
d1G
|
刪除游標行到第一行
|
|
*
|
d$
|
刪除游標處到最後一個字元
|
d0
|
刪除游標處到第一個字元
|
檔案功能
指令
|
說明
|
|
*
|
:w
|
存檔 (加 ! 表示強制存檔)
|
*
|
:w 檔案名稱
|
另存新檔
|
*
|
:wq
|
存檔並退出 vi
|
:e 檔案名稱
|
編輯其它檔案
|
|
*
|
:e!
|
還原至檔案編修前的狀態
|
:r 檔案名稱
|
讀入檔案內容,並加到游標行的後面
|
|
*
|
:n
|
切換到下一個開啟的檔案
|
*
|
:N
|
切換到上一個開啟的檔案
|
*
|
:set nu
|
顯示行號
|
*
|
:set nonu
|
取消行號顯示
|
*
|
:files
|
列出所有開啟的檔案
|
視窗分割
指令
|
說明
|
|
*
|
:new
|
新增水平視窗
|
*
|
:new 檔案名稱
|
新增水平視窗,並在新增的視窗載入檔案
|
*
|
:vnew
|
新增垂直視窗
|
*
|
:vnew 檔案名稱
|
新增垂直視窗,並在新增的視窗載入檔案
|
*
|
[Ctrl]-W → [方向鍵]
|
切換視窗
|
*
|
:only
|
僅保留目前的視窗
|
其它
*
|
指令
|
說明
|
*
|
J
|
將游標行與下一行合併
|
*
|
u
|
還原指令
|
*
|
[Ctrl]-R
|
重做指令
|
*
|
.
|
重覆上一個指令
|
! 命令
|
執行 linux 指令,並顯示執行結果
|
|
*
|
:q
|
退出 vi (加 ! 表示強制退出)
|
vim 的設定檔
通常我會編輯 /etc/vimrc,在檔案最後加入:
" 顯示列號
set number
" 語法高亮度顯示
syntax on
" 標記搜尋到的字串
set hlsearch
" 自動縮排
set autoindent
" 顯示說明
set ruler
" 顯示編輯狀態
set showmode
" 設定註解的顏色
highlight Comment ctermfg=cyan
" 設定搜尋到的字串顏色
highlight Search term=reverse ctermbg=4
ctermfg=7
" 設定 tab 鍵的字元數
set tabstop=4
相關參考連結:
沒有留言:
張貼留言