1. 程式人生 > >Linux 的vim編輯器

Linux 的vim編輯器

box and 文件頭 跳轉 auto 右移 冒號 處理器 family

Linux 的vim編輯器



一、什麽是VIM?

Vim是從 vi 發展出來的一個文本編輯器。代碼補完、編譯及錯誤跳轉等方便編程的功能特別豐富,在程序員中被廣泛使用。簡單的來說,vi 是老式的字處理器,不過功能已經很齊全了,但是還是有可以進步的地方。 vim 則可以說是程序開發者的一項很好用的工具。



二、VIM的分類

基本上 vi/vim 共分為三種模式,分別是命令模式(Command mode),輸入模式(Insert mode)和底線命令模式(Last line mode)

1.命令模式

控制屏幕光標的移動,字符、字或行的刪除,移動復制某區段及進入Insert mode下,或者到 last line mode。

2.輸入模式

只有在Insert mode下,才可以做文字輸入,按「ESC」鍵可回到命令行模式

3.底行命令模式

將文件保存或退出vi,也可以設置編輯環境,如尋找字符串、列出行號……等




三、VIM的使用

1.命令模式

用戶剛剛啟動 vi/vim,便進入了命令模式。

此狀態下敲擊鍵盤動作會被Vim識別為命令,而非輸入字符。比如我們此時按下i,並不會輸入一個字符,i被當作了一個命令。

若想要編輯文本:啟動Vim,進入了命令模式,按下i,切換到輸入模式。

命令模式只有一些最基本的命令,因此仍要依靠底線命令模式輸入更多命令。

以下是常用的幾個命令:

        • i 切換到輸入模式,以輸入字符。

        • x 刪除當前光標所在處的字符。

        • : 切換到底線命令模式,以在最底一行輸入命令。

ZZ: 保存並退出

ZQ: 不保存直接退出

*h: 向左移動光標

*l: 向右移動光標

*j: 向下移動光標

*k: 向上移動光標

#h|j|k|l 一次性移動指定行 #表示數字

w: 光標移到下一個單詞的詞首

e: 光標移到下一個單詞的詞尾

b: 光標移到當前或上一個單詞的詞首

#w|e|b 一次性移動指定個單詞 #表示數字

H: 光標移到當前頁的頁首

L: 光標移到當前頁的頁尾

M: 光標移到當前頁的頁中

*G: 光標移到整個文件的尾行

#G: 跳到指定行 在退出模式下:#

*gg: 光標移到整個文件的首行

^: 跳轉至行首的第一個非空白字符

0: 跳轉至行首

$: 跳轉至行尾

):下一句(:上一句

}:下一段{:上一段

Ctrl+f: 向文件尾部翻一屏

Ctrl+b: 向文件首部翻一屏

Ctrl+d: 向文件尾部翻半屏

Ctrl+u:向文件首部翻半屏

x: 刪除光標處的字符

#x: 刪除光標處起始的#個字符

xp: 交換光標所在處的字符及其後面字符的位置

~:轉換大小寫

J:刪除當前行後的換行符

*r: 替換光標所在處的字符

*R:切換成REPLACE模式

*d$: 剪切到行尾

*d^:剪切到非空行首

d0:剪切到行首

*dw: 剪切當前單詞

*dd: 剪切光標所在的行

#dd:多行剪切

y$: 復制到行尾

y^:復制到非空行首

y0:復制到行首

*yw: 復制當前單詞

*yy: 復制光標所在的行

#yy:多行復制

*p:緩沖區存的如果為整行,則粘貼當前光標所在行的下方;否則,則粘貼至當前光標所在處的後面

*P:緩沖區存的如果為整行,則粘貼當前光標所在行的上方;否則,則粘貼至當前光標所在處的前面

c$: 刪除到行尾,同時進入插入模式

c^:刪除到行首,同時進入插入模式

c0:刪除到行首,包含帶空格的行首,同時進入插入模式

*cw: 刪除到當前單詞的詞尾,同時進入插入模式

*cc: 刪除當前行,同時進入插入模式

#cc:多行刪除,同時進入插入模式

"[a-z]d|y 復制或剪切到指定的寄存器

"[a-z]p|P



2.輸入模式

在命令模式下按下i就進入了輸入模式。

在輸入模式中,可以使用以下按鍵:

        • 字符按鍵以及Shift組合,輸入字符

        • ENTER,回車鍵,換行

        • BACK SPACE,退格鍵,刪除光標前一個字符

        • DEL,刪除鍵,刪除光標後一個字符

        • 方向鍵,在文本中移動光標

        • HOME/END,移動光標到行首/行尾

        • Page Up/Page Down,上/下翻頁

        • Insert,切換光標為輸入/替換模式,光標將變成豎線/下劃線

        • ESC,退出輸入模式,切換到命令模式

        光標移動方式:

        • h或退格: 左移一個字符;

        • l或空格: 右移一個字符;

        • j: 下移一行;

        • k: 上移一行;

        • gj: 移動到一段內的下一行;

        • gk: 移動到一段內的上一行;

        • +或Enter: 把光標移至下一行第一個非空白字符。

        • -: 把光標移至上一行第一個非空白字符。

        • w: 前移一個單詞,光標停在下一個單詞開頭;

        • W: 移動下一個單詞開頭,但忽略一些標點;

        • e: 前移一個單詞,光標停在下一個單詞末尾;

        • E: 移動到下一個單詞末尾,如果詞尾有標點,則移動到標點;

        • b: 後移一個單詞,光標停在上一個單詞開頭;

        • B: 移動到上一個單詞開頭,忽略一些標點;

        • ge: 後移一個單詞,光標停在上一個單詞末尾;

        • gE: 同 ge ,不過‘單詞’包含單詞相鄰的標點。

        • (: 前移1句。

        • ): 後移1句。

        • {: 前移1段。

        • }: 後移1段。

        • fc: 把光標移到同一行的下一個c字符處

        • Fc: 把光標移到同一行的上一個c字符處

        • tc: 把光標移到同一行的下一個c字符前

        • Tc: 把光標移到同一行的上一個c字符後

        • ;: 配合f & t使用,重復一次

        • ,: 配合f & t使用,反向重復一次

        上面的操作都可以配合n使用,比如在正常模式(下面會講到)下輸入3h, 則光標向左移動3個字符。

        • 0: 移動到行首。

        • g0: 移到光標所在屏幕行行首。

        • ^: 移動到本行第一個非空白字符。

        • g^: 同 ^ ,但是移動到當前屏幕行第一個非空字符處。

        • $: 移動到行尾。

        • g$: 移動光標所在屏幕行行尾。

        • n|: 把光標移到遞n列上。

        • nG: 到文件第n行。

        • :n<cr> 移動到第n行。

        • :$<cr> 移動到最後一行。

        • H: 把光標移到屏幕最頂端一行。

        • M: 把光標移到屏幕中間一行。

        • L: 把光標移到屏幕最底端一行。

        • gg: 到文件頭部。

        • G: 到文件尾部。



3.底行命令模式

在命令模式下按下:(英文冒號)就進入了底線命令模式。

底線命令模式可以輸入單個或多個字符的命令,可用的命令非常多。

在底線命令模式中,基本的命令有(已經省略了冒號):

        • q 退出程序

        • w 保存文件

按ESC鍵可隨時退出底線命令模式。

以下是常用的幾個命令:

*q退出

*q!強制退出不保存

*w保存

*w!強制保存(僅限root及文件的owner)

*wq或x 保存並退出

*wq!或x! 強制保存並退出 (僅限root及文件的owner)

r /path/filename 在光標所在行向下粘貼指定路徑的文件的內容

w /path/newfilename 將當前文件另存為到指定路徑的新文件中。

r! command 在光標所在行向下粘貼命令的輸出結果

.! command 將光標所在行替換並粘貼命令的輸出結果

:# 光標移到第#行






Linux 的vim編輯器