天天看点

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