Linux_vim文字編輯器指令整理
阿新 • • 發佈:2019-01-09
- 一般指令模式 : 可以移動游標,可以刪除字元和刪除整列,可以複製貼上
- 編輯模式 : 按下“i, I, o, O, a, A, r, R”任意一個字母時進入;按下ESC退出編輯模式
- 命令列命令模式 : 在一般模式下,輸入“ : / ? ”中任意一個按鈕,就可以輸入命令;
一般指令模式指令
移動游標
指令 | 作用 |
---|---|
hjkl | 等同於←↓↑→ |
n[方向鍵] | 游標向指定方向移動數字個字元 |
[Ctrl] + [f] | 螢幕“向下”移動一頁,相當於 [Page Down]按鍵 |
[Ctrl] + [b] | 螢幕“向上”移動一頁,相當於 [Page Up] 按鍵 |
[Ctrl] + [d] | 螢幕“向下”移動半頁 |
[Ctrl] + [u] | 螢幕“向上”移動半頁 |
n[空格] | 游標向後移動指定字元 |
n[Enter] | 游標向下移動指定字元 |
0或[Home] | 移動到本列最前面 |
$或[End] | 移動到本列最後面 |
G | 移動到檔案最後一列 |
nG | n為數字 移動到第幾行 |
gg | 移動到第一行 相當於1G |
搜尋與取代
指令 | 作用 |
---|---|
/word | 向下尋找word字串 |
$word | 向上尋找word字串 |
n | 正向搜尋 |
N | 反向搜尋 |
:n1,n2s/word1/word2/g | 在n1和n2行之間搜尋word1,替換為word2 |
:1,$s/word1/word2/g | 從第一列到最後一列尋找 word1 字串,並將該字串取代為 word2 |
:1,$s/word1/word2/gc | 從第一列到最後一列尋找 word1 字串,並將該字串取代為 word2 !且在取代前顯示提示字元給使用者 確認 (confirm) 是否需要取代! |
刪除,複製與貼上
指令 | 作用 |
---|---|
x,X | x向後刪除一個字元 , X向前刪除一個字元 |
nx | 向後刪除n個字元 |
dd | 刪除當前列 |
ndd | 刪除n列 |
yy | 複製當前列 |
nyy | 複製n列 |
p, P | p 為將已複製的資料在游標下一列貼上,P 則為貼在游標上一列! |
u | 撤回上一個動作 |
[Ctrl]+r或點 | 重複上個動作 |
切換到編輯模式
指令 | 作用 |
---|---|
i | 從游標進入插入模式 |
a | 從游標下個字元進入插入模式 |
I | 從當前列最左側非空字元前進入插入模式 |
A | 從當前列最後進入插入模式 |
o | 下一行插入新行 |
O | 上一行插入新行 |
r | 進入取代模式1個字元 |
R | 進入一直取代模式 |
[Esc] | 退出編輯模式 |
命令列命令
指令 | 作用 |
---|---|
:w | 儲存 |
:q | 退出 |
:q! | 強制退出 |
:wq | 儲存並退出 |
:w [filename] | 另存為 |
:set nu | 顯示行號 |
:set nonu | 取消行號 |
vim的暫存檔操作
當vim沒有正常儲存,你再次登入的時候會出現
E325: ATTENTION
Found a swap file by the name ".man_db.conf.swp"
owned by: zero dated: Tue Jan 8 15:31:46 2019
file name: /tmp/vitest/man_db.conf
modified: no
user name: zero host name: VM_16_8_centos
process ID: 8151
While opening file "man_db.conf"
dated: Tue Jan 8 15:24:35 2019
(1) Another program may be editing the same file. If this is the case,
be careful not to end up with two different instances of the same
file when making changes. Quit, or continue with caution.
(2) An edit session for this file crashed.
If this is the case, use ":recover" or "vim -r man_db.conf"
to recover the changes (see ":help recovery").
If you did this already, delete the swap file ".man_db.conf.swp"
to avoid this message.
Swap file ".man_db.conf.swp" already exists!
[O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort:
- [O]pen Read-Only:開啟此檔案成為只讀檔案, 可以用在你只是想要查閱該檔案內容並不想要進行編輯行為時。一般來說,在 上課時,如果你是登陸到同學的計算機去看他的配置檔案, 結果發現其實同學他自己也在編輯時,可以使用這個模式;
- (E)dit anyway:還是用正常的方式開啟你要編輯的那個檔案, 並不會載入暫存檔的內容。不過很容易出現兩個使用者互相 改變對方的檔案等問題!不好不好!
- (R)ecover:就是載入暫存檔的內容,用在你要救回之前未儲存的工作。 不過當你救回來並且儲存離開 vim 後,還是要手動 自行刪除那個暫存檔喔!
- (D)elete it:你確定那個暫存檔是無用的!那麼開啟檔案前會先將這個暫存檔刪除! 這個動作其實是比較常做的!因為你可 能不確定這個暫存檔是怎麼來的,所以就刪除掉他吧!哈哈!
- (Q)uit:按下 q 就離開 vim ,不會進行任何動作回到命令提示字元。
- (A)bort:忽略這個編輯行為,感覺上與 quit 非常類似! 也會送你回到命令提示字元就是了;
區塊選擇
以區塊的模式選擇字元
指令|作用
|- |-|
v |字元選擇,會將游標經過的地方反白選擇!
V |列選擇,會將游標經過的列反白選擇!
[Ctrl]+v |區塊選擇,可以用長方形的方式選擇資料
y |將反白的地方複製起來
d |將反白的地方刪除掉
p |將剛剛複製的區塊,在游標所在處貼上!
多檔案編輯
vim [檔案1] [檔案2]
指令 | 作用 |
---|---|
:N | 編輯上一個檔案 |
:n | 編輯下一個檔案 |
:files | 列出目前這個 vim 的開啟的所有檔案 |
分屏
指令 | 作用 |
---|---|
:sp [filename] | 開啟一個新視窗,如果有加 filename, 表示在新視窗開啟一個新檔案,否則表示兩個視窗為同一個檔案內容(同 步顯示)。 |
[ctrl]+w+ j [ctrl]+w+↓ | 按鍵的按法是:先按下 [ctrl] 不放, 再按下 w 後放開所有的按鍵,然後再按下 j (或向下方向鍵),則游標可 移動到下方的視窗。 |
[ctrl]+w+ k [ctrl]+w+↑ | 同上,不過游標移動到上面的視窗。 |
[ctrl]+w+ q | 其實就是 :q 結束離開啦! 舉例來說,如果我想要結束下方的視窗,那麼利用 [ctrl]+w+↓ 移動到下方視窗後, 按下 :q 即可離開, 也可以按下 [ctrl]+w+q 啊 |
vim 環境引數設定
~/.vimrc 用來記錄使用者的vim配置
~/.viminfo 用來記錄使用者vim的使用情況
可以直接修改配置檔案,讓vim記住你的配置,從而不用每次進入vim都設定行號什麼東東了
我這麼設定
"這個檔案中雙引號就是註釋"
set nu "行號"
set ruler "顯示最後一排狀態"
set backspace=2 "退格鍵可以刪除任何內容"
set autoindent "自動縮排"
注意
另外,需要注意與window之間的換行符的不同;換行符轉化和變編碼回頭再整理吧(我基本用不到哈哈)