Linux_vim文本編輯器指令整理
阿新 • • 發佈:2019-01-09
行號 modified src 用戶 強制退出 indent 塊選擇 文本編輯 thead
- 一般指令模式 : 可以移動光標,可以刪除字符和刪除整列,可以復制粘貼
- 編輯模式 : 按下“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之間的換行符的不同;換行符轉化和變編碼回頭再整理吧(我基本用不到哈哈)
打印版
Linux_vim文本編輯器指令整理