vim基本用法彙總

vim工作模式:
 編輯模式(命令模式)
 輸入模式
 末行模式
啓動vim:
vim [option] FILE ...
vim +[#] FILE 打開文件並使光標處於第N行 (本文中#表示數字N)
vim + FILE  打開文件使光標處於最後一行
vim +/PATTERN FILE ... 打開文件使光標處於被模式匹配到的第一行的行首
退出vim:
未修改直接退出:q
不保存強制退出:q!
保存退出:wq,
強制保存(編輯只讀文件等特殊文件時):w!
保存: 在編輯模式下,ZZ
打開默認模式:編輯模式
編輯模式-->輸入模式:
i: 當前光標所在字符前面插入
a: 當前光標所在字符後面插入
o: 當前光標所在行的下方新增空白行並輸入
I:當前光標所在行的行首插入
A:當前光標所在行的行尾插入
O:當前光標所在行的上方新增空白行並輸入
c: 先刪除指定範圍的內容,再轉換至輸入模式(同d用法類似)
輸入模式-->編輯模式:
Esc
編輯模式-->末行模式
:
末行模式-->編輯模式:
Esc不馬上回到編輯模式
Esc Esc 馬上回到編輯模式

光標跳轉:
h 左
j 下
k 上
l 右
詞間跳轉:
w: 下一個單詞的詞首
#w: 跳N個單詞
e: 跳轉至後面一個單詞的詞尾
b: 跳轉至前面一個單詞的詞首
都支持前面加#
行首,行尾跳轉:
^跳轉至第一個非空白字符,0跳轉至絕對行首 
$  跳轉至行尾

行間跳轉:
#G 跳到第幾行
G 直接跳轉至文件尾部
末行模式下跳轉:
:# 跳轉到第幾行

翻屏操作:
Ctrl, f 往下翻一屏 
Ctrl, b 往上翻一屏
Ctrl, d 往下翻半屏 
Ctrl, u 往上翻半屏 
翻行 Enter 或者上下鍵
刪除:
x: 刪除光標處的一個字符
#x: 從光標所在處往後刪除幾個字符
X:刪除光標前的一個字符
均支持前面加#的用法

d:刪除
dw 
d$ 刪除光標到行尾的內容  (D)
d0  刪除光標到行首的內容
可以結合跳轉字符
dd 刪除光標所在行
#dd 刪除光標所在行往下幾行
末行模式下的刪除:
地址定界:
ADDR1,ADDR2
.: 表示當前行
$: 表示最後一行
相對地址定界:+#, -#
/PATTERN1/,/PATTERN2/d 刪除第一次被模式一匹配到的行(當前行不算)到第一次被模式二匹配到的行中間的行
用法示例:
1,50d (敲回車)刪除1-50行
.,$d 刪除當前行到最後
1,+5d  刪除第一行以下5行,包括第一行
.,-5d 刪除從當前行到以上5行
.,$-1 刪除當前行到倒數第二行
p:
刪除或複製的是整行:在當前光標所在行下方粘貼
刪除的單詞或行的部分:在當前光標所在處後方粘貼
P:
刪除或複製的是整行:在當前光標所在行上方粘貼
刪除的單詞或行的部分:在當前光標所在處前方粘貼

y:複製 (用法跟粘貼類似)
y: 一般結合w, b, e, ^, 0, $等跳轉字符使用
yy: 複製光標所在行
#yy 複製光標所在行到以下幾行
支持末行模式定界

可視化模式:
v:按字符選取
V:按行選取
 
撤消編輯操作:
u: 撤消上一次編輯操作 默認最多可撤銷最近50次
#u: 撤銷最近N次,只在編輯模式下支持  末行模式下不支持
Ctrl + r:撤消最後的撤消操作

vim搜索:
/keyword
?keyword
使用/keyword時
n 表示跳轉到下一個搜索到的內容
N 表示跳轉到上一個搜索到的內容
使用?keyword時
n 表示跳轉到上一個搜索到的內容
N 表示跳轉到下一個搜索到的內容
搜索到的內容高亮顯示

查找並替換:
在末行模式下使用s命令
:定界s/查找的內容/替換成的內容/gi
查找的內容:支持正則表達式
替換成的內容:不支持正則表達式,但可使用前向引用
修飾符:
g:全局替換 (不加g只替換匹配到的第一次)
i:忽略大小寫
用法示例:
:1,20s/fi/FI/g   1-20行fi替換爲FI
:1,20s/\<u...e\>/ABC/g 把1-20行以u開頭以e結尾的字符串替換爲ABC
:1,20s/\<u\([[:alpha:]]\{3\}e\)\>/U\1/g 把1-20行以u開頭後跟3個字母以e結尾的單詞前面的u換爲U
&:用於引用查找到的整個字符串,例如:
:1,20s/n..e\>/&r/g搜索到匹配到的內容,在其後加r
定界符:
1,$ = %
分隔符可以是任意特殊字符:
一般常用一下幾種
/、#、@·····
:%s/^#[[:space:]]*//g刪除所有以#開頭的行中的#和其後的空格
:%s/[A-Z]//g 刪除所有大寫字母
末行:
!shell command   可以同shell交互
定界符w /path/to/somewhere  將指定的內容複製到另一個文件中,例如:
:1,50w /root/test/vim.txt  將正在編輯的文件中的1-50行復制到/root/test/vim.txt中
 
窗口拆分:
Ctrl-w, s:水平拆分 (Ctrl + w 鬆開之後再按s,下同)
Ctrl-w, v: 垂直拆分
切換窗口
Ctrl-w, ARROW(方向鍵)
Ctrl-w, q 關閉光標當前所在的窗口

vim打開多個文件:
vim FILE1 FILE2
:next   切換至後一個文件
:prev   切換至前一個文件
:first   切換至第一個一個文件
:last    切換至最後一個文件
wall 同時保存
wqall 同時保存退出
qall! 同時不保存退出

打開多個文件並拆分顯示
-o 水平拆分,例如: [root@localhost test]# vim -o rc.sysinit vim.txt
-O 豎直拆分
定製vim的工作屬性:(僅對當前vim有效)
:set [no]nu  顯示(關閉)行號
:set [no]ai  自動縮進
:set [no]ic  忽略大小寫
:syntax on|off 語法高亮
若想長期有效,修改配置文件:
全局配置文件:/etc/vimrc 
個人配置文件:~/.vimrc 不存在 (默認不存在,用時需創建)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章