天天看點

vim編輯器使用方法彙總

作者:寒笛過霜天

安裝vim編輯工具

yum -y install vim*

一般模式:當你vim filename 編輯一個檔案時, 一進入該檔案就是一般模式了。在這個模式下, 你可以做的操作有: 上下移動光标, 删除某個字元, 删除某行, 複制、粘貼一行或者多行。

編輯模式:一般模式下, 是不可以修改某一個字元的, 隻能到編輯模式了。從一般模式進入編輯模式, 隻需你按一個鍵即可(i, I, a, A, o, O, r, R)。

當進入編輯模式時, 會在螢幕的最下一行出現INSERT或REPLACE的字樣。從編輯模式回到一般模式隻需要按一下鍵盤左上方的ESC鍵即可。

指令模式:在一般模式下,輸入 ":" 或者 "/" 即可進入指令模式。在該模式下, 你可以搜尋某個字元或者字元串, 也可以儲存、替換、退出、顯示行号等等。

1. 使用vim打開一個文本檔案

> vim filename 進入一般模式

當我們在終端中使用vi filename, 就會自動打開檔案并進入VI的指令模式。

這個模式下不能編寫任何代碼! 但是可以進行複制、粘貼、删除等操作功能。

2. 編輯模式

a:光标所在的行之後插入(追加) append

i:光标所在的字元之前插入 insert

o:新起一行插入 open

O:目前方的上一行插入

s:删除光标所在字元,然後再插入

退出輸入模式: Esc鍵

打開顯示模式的開關: :set showmode

3. 指令模式

輸入":"或"/"進入指令模式

:w //對編輯後的文檔進行儲存

:q //退出vi編輯器

:wq //儲存文檔并退出編輯器

:q! //強制退出編輯器(不儲存)

:w! //強制儲存

:wq! //強制儲存并退出

為何需要"!",可能你的檔案沒權限, 或者檔案作出了修改

/内容 或 ?内容 //内容查找(搜尋)

//n下一個 N上一個

/字元串 在文本中從上至下搜尋該字元串

?字元串 在文本中從下至上搜尋該字元串

特殊字元的查找, 使用 "\" 轉義

/\[DEFAULT\]

:set number 或 nu //給編輯器設定行号

:set nonumber 或 nonu //取消編輯器行号

:數字 //光标定位到數字所在行

:19 //光标定位到第19行

指定範圍查找:

:1,100/transport_url 從第1行到100行查找 "transport_url" 關鍵字

:/DEFAULT/,100/transport_url 從字元串 "DEFAULT" 所在的行到100行範圍内查找 "transport_url" 關鍵字

:/\[DEFAULT\]/,100/transport_url 從字元串 "[DEFAULT]" 所在的行到100行範圍内查找 "transport_url" 關鍵字

ex常用編輯指令:

d (delete) 删除行

m (move) 移動行

co (copy) 複制行

t 複制行, 和co同義

:3,18 d 删除3~18行

:11,15 m 23 把11~15行移動到23行下面。

:23,29 co 100 複制23~29行并把它們粘貼到100行下面

//内容替換cont1被替換為cont2

:s/cont1/cont2/ //光标所在行的第一個cont1被替換為cont2

:s/cont1/cont2/g //光标所在行的全部cont1被替換為cont2, 不加g則隻替換每行的第一個count1

:%s/cont1/cont2/g //整個文檔的全部cont1被替換為cont2, 不加g則隻替換每行的第一個count1(等同于:1,$s/count1/count2/g)

:1,5s/count1/count2/g //在1-5行之間查找count1并替換為count2, 不加g則隻替換每行的第一個count1

注意: vim 中可用 :s 指令來替換字元串

4. 一般模式操作

1) 光标移動操作

① 字元級

上(k) 下(j) 左(h) 右(l) 鍵

② 單詞級

w: word下個單詞的首字母

e: end下(本)個單詞的尾字母

b: before上(本)個單詞的首字母

③ 行級

$: 行尾

^: 行首(行首的的非空白字元)

0: 行首(數字0鍵,目前行的第一個位置)

k: 向上移動1行

2k:向上移動2行

fx: 移動到指定的字元上(x)

Fx: 向前移動到指定的字元上(x)

④ 段落級(給翻屏)

{: 上(本)個段落的首部

}: 下(本)個段落的尾部

⑤ 螢幕級(不翻屏)

H: 螢幕可見區域的首部

L: 螢幕可見區域的尾部

⑥ 文檔級

G: 文檔尾行

1G: 文檔首行(gg)

nG: 文檔第n行

2) 内容删除操作

dd: 删除光标目前行

n+dd: 從光标所在行向後删除n行内容(包括光标所在行)

x : 删除光标所在的單個字元(小寫向後删除) X(大寫的向向前删除)

cw: 從光标所在位置删除至單詞結尾, 并進入"編輯"模式

J 删除換行符(兩行合并一行)

3) 内容複制操作

yy: 複制光标目前行

n+yy: 從光标所在行向後複制n行内容(包括光标所在行)

p: 對複制(删除)的内容進行"粘貼"

4) 快捷操作

u: undo撤銷(undo單詞的意思是撤銷) Ctrl + r (組合鍵): 反撤銷

J: 連接配接上下兩行

.點 重複執行上次指令

r 替換單個字元

非正常關閉vim編輯器後提示錯誤的解決方法

使用vim, 錯誤出現原因一般為以下兩種情況:

(1) 當你用多個程式編輯同一個檔案時。

(2) 非正常退出時。

會提示以下資訊:

Swap file ".old.txt.swp"already exists!

[O]penRead-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort:

(1)(2)為官方給出的解決方法:

(1) 為了避免同一個檔案産生兩個不同的版本, 還是建議選擇"(Q)uit"或者繼續謹慎修改選擇"(E)dit anyway"。

(2) 也可以選擇"(R)ecover"或"vim -r filename"恢複到未修改之前, 然後再把swp檔案删除(這個時候要確定你的swp檔案沒有用處了)。

最下面選項的意思:

O: 隻讀, 不能改

E: 可以改, 從前的修改都丢失

R: 恢複(從前的修改)

D: 删去(删去.swp檔案, 檔案恢複到未修改前)

Q: 退出

A: 放棄

具體解決方案:

(1) 不想保留原先修改的内容直接選D就可以。

(2) 想保留原先修改的内容選R把修改的内容複制出來儲存, 再退出檔案删除awp檔案。(awp檔案預設為隐藏檔案, 用ls -a指令檢視, 用rm指令删除。)

linux 上檔案用vim 編輯儲存後, 自動生成了一個檔案(檔案名加了個 "~"号)怎麼去除掉?

vim的檔案舊版本備份功能, 但凡你重新編輯一個已經存在的檔案時, 在你儲存的時候會将老版本加一個~另存為一個備份檔案, 當然如果這個備份檔案已經存在就會覆寫原來的.

想要取消這個功能, 用:set nobackup 指令就可以。

~/.vimrc中添加:

set nobackup

set nowritebackup

set noswapfile ! (additionally disable swap files)

繼續閱讀