Vim编辑器:

全屏幕的编辑器:VIM

vi: visual interface

sed:行编辑器

vi, vi iMproved

vim: 

模式化:

编辑模式:命令模式

输入模式:

末行模式:

编辑模式 --> 输入模式:

i: insert, 

a:append,

o:new line,

I: 行首

A:行尾

O:上方新建行

输入模式 --> 编辑模式:

ESC

编辑模式 --> 末行模式:

:

末行模式 --> 编辑模式

ESC

打开vim:

# vim

# vim /PATH/TO/SOMEFILE

+#:#为行号;

+/PATTERN

关闭vim:

:q

:q!

:wq

:x

ZZ:保存退出

光标跳转:

字符间跳转:

h:

l:

j:

k:

#COMMAND:

单词间跳转:

w:后单词的词首

e:当前或后一个单词的词尾;

b:当前或前一单词的词首;

#COMMAND:

行内跳转:

^: 跳转至行首的第一个非空白字符;

0:跳转至行首;

$: 跳转至行尾;

行间移动:

#G: 

1G, gg

G

句间移动:

)

(

段落间移动:

}

{

编辑命令:

字符编辑:

x: 删除光标所在处的字符

#x:

xp: 

r: 替换光标所在处的字符;

删除命令:

d: 

d^

d$

d0

dw, de, db

dd: 

#COMMAND

注意:删除的内容会被vim编辑器保存至缓冲区当中;

粘贴:p (paste, put)

如果此复制或删除的内容不是一个完整行

p:粘贴至当前光标所在处后面;

P:粘贴至当前光标所在处前面;

如果复制的内容是完整行(可不止一行)

p: 粘贴至当前光标所在行下方;

P:行上方;

复制命令:y, yank

y

y$, y^, y0

ye, yw, yb

yy: 复制行

#COMMAND

改变命令:c, change

c$, c^, c0

cb, ce, cw

cc: 

#COMMAND

撤消此前的编辑操作:

u: undo

撤消此前编辑操作;

#u

Ctrl+r:

恢复此前的撤消操作

.: 重复前一个编辑操作

翻屏操作:

Ctrl+f: 向后一屏;

Ctrl+b:向前一屏;

Ctrl+d: 向后半屏

Ctrl+u: 向前半屏

vim内建教程:

vimtutor

vim的末行模式

(1) 地址,定界

:start_pos,end_pos

#:第#行;

#,#

#,+#

.: 当前行

$: 最后一行

%: 全文,相当于1,$

/pat1/:第一次被此模式所匹配到的行;

#,/pat1/

/pat1/,/pat2/

后可跟编辑命令:

d, y

w, r

(2) 查找

/PATTERN:向尾部进行

?PATTERN:向首部进行

n: 与命令同方向

N:与命令反方向 

(3) 查找替换

s: 在末行模式下,在地址定界的范围内完成查找替换操作;

s/要查找的内容/替换为的内容/修饰符

要查找的内容:可使用模式

替换为的内容:不能使用模式,但可以使用后向引用符号,以引用前面模式中的分组括号所匹配到的内容;

\1, \2, ...

&:引用“要找的内容”匹配到的整个内容;

修饰符:

i: 忽略大小写

g: 全局替换

/:用于分隔符,所以,要查找的内容或替换为的内容中出现此符号,要使用\对其转义,使用格式:\/

分隔符可替换为其它字符:例如@,#等;

多文件模式:

vim FILE1 FILE2 ...

:next

:first

:prev

:last

:wqall

:q!all

多文件窗口分割:

vim -o|-O FILE1 FILE2 ...

Ctrl+w, ARROW

单文件窗口分割:

Ctrl+w, s: split, 水平分割

Ctrl+w, v: vertical, 垂直分割

定制vim的某些工作特性:

(1) 行号

显示:set nu

禁用:set nonu

(2) 括号匹配

显示:set sm

禁用:set nosm

(3) 自动缩进:

set ai

set noai

(4) 高亮搜索

set hlsearch

set nohlsearch

(5) 语法着色

syntax on

syntax off

(6) 忽略字符大小写

set ic

set noic

:help 获取帮助

:help SUBJECT

特性设定的永久生效方式:

全局配置文件:/etc/vimrc

用户个人的配置文件:~/.vimrc