vi 编辑器
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
blog comments powered by Disqus