VIM命令總結

vim是linux中最常用的全屏編輯器之一, 它主要運行在三個模式下

編輯模式: 也叫命令模式, 在文本上提供基本的操作,如上下左右移動等.

輸入模式: 顧名思義,也就是輸入編輯指令

末行模式:運行vim的內置命令, 例如,搜索,存儲等


幾種模式的轉換

啓動vim默認是編輯模式

編輯模式-->輸入模式: i,I, a, A, o, O

輸入模式-->編輯模式:Esc鍵

 

編輯模式-->末行模式: :

末行模式-->編輯模式: Esc

兩個模式的轉換需要先到編輯模式, 末行模式和輸入模式間不能轉換


vim退出:

q! :不保存退出

wq 或 x: 保存退出

wq!: 強制保存退出

ZZ: 編輯模式保存退出, 省略了切換到末行模式


編輯模式下的基本命令操作

字符間移動: h向下, j向上, k向左, l向右

單詞間跳轉: 光標所在處, w下一個單詞的頭一個字母, e當前或下一個單詞的最後一個字母, b上一個單詞的首字母

行內跳轉: ^行首第一個非空格字母,0絕對行首, $絕對行尾 

行間移動: G最後一行, #G絕對的第幾行


編輯操作

x: 刪除光標所在

#x:刪除光標所在的連續幾個字符

dw: 刪除光標處到下個詞頭,包括光標

de: 刪除表標出到詞尾,包括光標

db: 刪除光標處到自己的詞頭, 不包括光標

d$或dd: 刪除整行

#dd: 刪除從光標處連續的幾行


注意刪除了的結果會保存在緩衝區內, 所以可以粘貼

p: 在光標後粘貼

P:在光標前粘貼


當然可以複製

yy或者y$:複製整行

yw, ye, yb,#yy 和d的用法相同


c: 修改就是先刪除再直接轉換到輸入模式

和d用法一樣也可以用, cc, #cc, cw, ce, cb, 但唯一區別是cw的詞首默認是包括前面的空格的

rx: 光標出刪除並且替換成x

u: 撤銷上一次操作

#u: 撤銷上幾次操作

Ctrl+r:還原, 撤銷撤銷的操作


G:光標移動到文件尾

gg: 光標移動到文件頭


編輯模式到輸入模式:

o: 插入下一行並轉換輸入模式

O: 插入上一行並轉換輸入模式

a: 插入到光標後

A: 插入到行後

i:插入到光標錢

I:插入到行首


末行模式的命令:

搜索

:/ : 後面加正則匹配,向後搜索

:? :向前搜索

n: 搜索後結果, 向前查找匹配

N: 向後查找匹配


末行模式也可以有類似3yy的行間跳轉操作

:#: 跳轉到第幾行

:$ : 跳轉到最後一行

開始行,結束行命令 : 可以同時操作幾行,用命令y, c, d.  例如100,+2y 拷貝100行到102行


文件讀寫相關操作

行寫入文件: . 點代表當前行. 例 ., $w /tmp/test.txt  將當前行到末行的所有內容寫入文件/tmp/test.txt

讀取文件到指定位置: 例如7r /tmp/test.txt 將文件/tmp/test.txt內容寫到第七行下面


查找模式並替換內容

格式:自定義查找範圍s/正則表達式/要替換的內容/參數

參數:

g: 全行替換, 默認一行替換一個

i:大小寫不區分替換

例如:

5,8s/\<test.*\>/excellent/gi  全局替換5到8行內所有以test開頭的單詞, 並且不分大小寫


vim下一些其他常用技巧


vim可視化模式

v:單字符選取後,可執行d, y, c操作

V:行選取後, 可執行d, y, c操作


翻屏幕

Ctrl+f: 往後翻一個屏

Ctrl+b: 往前翻一個屏

Ctrl+d: 往後翻半個屏

Ctrl+u: 往前翻半個屏


多文件模式

可以用命令打開多個文件

vim /var/log/messages1 /var/log/messages2,  這樣會打開messages1文件然後在末行模式下輸入:next命令打開下一個文件, 然後在: last命令顯示前一個文件. 

這個模式可用於多文件之間拷貝

一些可以的命令

:next下一個文件, :previous前一個文件, :last上一個文件, first第一個文件

:wqall寫入並且推出所有文件


多窗口模式

多文件

命令vim /var/log/messages1 /var/log/messages2 參數

-o: 水平分隔兩個窗口

-O:垂直分隔兩個窗口

Ctrl+W, 方向箭頭, 在不同窗口間切換


單文件

在文件用vim打開後:

Ctrl+w, s:水平分隔, 一個文件

Ctrl+w, v垂直分隔一個文件

然後用Ctrl+W, 方向箭頭, 在不同窗口間切換


窗口間屬性配置

:set nu, :setnonu 顯示或關閉行號

:set ai, :set noai 開或關自動換行

:set ic; : set noic 查詢時是否區別大小寫

:set hlsearch, :set nohlsearch 搜索是否高亮

:set sm: set nosm 是否自動匹配括號

:syntax on :syntaxoff 語法是否高亮

注意: 如果在末行模式下改這些參數,只是暫時有效,退出無效. 如果要永久有效要修改配置文件/etc/vimrc 或者 ~/.vimrc

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章