占位,待完善。。


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


练习:

1、复制/etc/grub2.cfg配置文件至/tmp目录,用查找替换命令删除/tmp/grub2.cfg文件中的行首的空白字符;

CentOS: /etc/grub.conf


2、复制/etc/rc.d/init.d/functions文件至/tmp目录,用查找替换命令为/tmp/functions的每行开头为空白字符的行的行首加一个#; 原有空白字符保留;


3、替换/tmp/functions文件中的/etc/sysconfig/init为/var/log;


4、删除/tmp/functions文件中所以#开头,且#后面至少跟了一个空白字符的行的行首#;