VIM:
編輯,輸入,末行
編輯-->輸入
i,I
o,O
a,A
編輯-->末行
:
跳轉(編輯模式):
h,l; j,k
w
e
b
0,^: 跳至
$:
1G, gg
G
#G
編輯:
x
#x
d
dd
#dd
末行模式
:起始地址,結束地址d
.: 當前光標所在行;
$: 最後一行;
%: 全文
p|P
p:
整行:下方粘貼
非整行:後方粘貼
P:
整行:上方粘貼
非整行:前方粘貼
u:
Ctrl+r
y
yy
#yy
vim [options] FILE
-#:
-o:
-O:
next, prev, first, last
:wq
:q!
:w!
:wall
:qall
:wqall
:x
編輯模式,ZZ
翻屏:
Ctrl+f: 向文件尾部翻一屏;
Ctrl+b: 向文件首部翻一屏;
Ctrl+d: 向文件尾部翻半屏;
Ctrl+u:向文件首部翻半屏;
文本搜索:
/keyword: 從當前光標所在處向文件尾部查找
?keyword:從當前光標所在處向文件首部查找
n: 下一個,跟查找命令相同的方向
N:前一個,跟查找命令相反的方向
模式
/\<d[[:alpha:]]\{2\}n\>
基本表達式:
.
[]
[^]
*
\?
\{m,n\}
\{m\}
^
$
\<
\>
\(\), \1,\2
擴展的正則表達式元字符:
.
[]
[^]
*
?
+
{m,n}
{m}
^
$
\<
\>
a|b|c
()
編輯命令
c:編輯,轉換至輸入模式
cc
#cc
c
vim可視化模式
visual模式
v: 選中光標劃過的字符
V:選中光標劃過的行,整行選取
Esc, Esc:回到編輯模式
同一文檔窗口分割:
Ctrl+w,s: 水平分割
Ctrl+w,v: 垂直分割
Ctrl+w, 箭頭
窗口屬性定義:
顯示行號:
set number, set nu
set nonumber, set nonu
自動縮進
set autoindent, set ai
set noai
不區分字符大小寫
set ignorecase, set ic
set noic
獲取幫助:
set
顯示匹配的括號:
set showmatch, set sm
set nosm
語法着色:
syntax on
syntax off
搜索高亮顯示
set hlsearch
set nohlserach
vim的配置文件:
全局:/etc/vimrc
個人:~/.vimrc
查找替換:
:地址定界s/查找模式/替換成的內容/gi
:地址定界s@查找模式@替換成的內容@gi
global
ignorecase
/dev/null --> /tmp/a.txt
%s/\/dev\/null/\/tmp\/a.txt/g
%s@/dev/null@/tmp/a.txt@g
%s/\<d[[:alpha:]]\{2\}n\>/what/g
down, DowN, doon, DooN
%s@\<d\([[:alpha:]]\{2\}\)n\>@D\1N@g
%s/dev/device/g
Dev, DEVice
dEVice
%s/[dD][eE][Vv]/&ice/g
刪除行首開頭的#:
%s@^#@@
刪除行首開頭的#及後面緊跟的空白字符;
%s@^#[[:space:]]*@@
爲空白字符開頭的行的行首加上#;
%s@^[[:space:]]@#&@
1、刪除/etc/grub.conf文件中行首的空白符;
%s@^[[:space:]]\{1,\}@@
2、替換/etc/inittab文件中"id:3:initdefault:"一行中的數字爲5;
%s@id:3:@id:5:@g
3、刪除/etc/inittab文件中的空白行;
4、刪除/etc/inittab文件中開頭的#號;
5、刪除某文件中開頭的#號及後面的空白字符,但要求#號後面必須有空白字符;
%s@^#[[:space:]]\{1,\}@@
6、爲指定範圍內的行的行首添加#;
1,10s@^@#@g