VIM

扫码查看

vim

打开的姿势

//打开文件后,直接让光标处在第9行的行首
 vim +9 /etc/passwd

//打开文件后,直接处在文件的第一行
 vim + /etc/passwd

// 打开文件后,直接处在文件的最后一行
 vim +$ /etc/passwd

//打开文件后直接让光标处于第一个被模式匹配到的行的行首
vim +/^zhanghe  /etc/passwd 

模式转换

我们刚进入vim的时候默认是编辑模式,并不能编辑,必须转换成为输入模式才可以,从编辑模式转换到输入模式的方式有这几种:

i :在光标所在处前方输入
I :在光标所在行首插入

a :append,在光标所在处后输入
A :在光标所有行的行尾插入

o(小写),在当前光标所在行的下方打开一个新行
O(大写),在当前光标所在行的上方打开一个新行

删除

在编辑模式当中x用来删除光标右侧单个的字符

使用dd命令可以删除一行

d^可以删除一行当中光标到行首的所有内容

d$可以删除一行当中光标到行尾的所有内容

#dd:多行删除

复制

y^复制光标到行首的内容

y$ 复制光标到行尾的内容

y1G 复制光标到文档首部的内容

yG 复制光标到文档尾部的内容

yy复制一整行

#yy复制多行,包括当前所在的行

粘贴

P(小写):缓冲区存的如果为整行,则粘贴当前光标所在行的下方,否则,则粘贴至当前光标所在处的后面。

P(大写):缓冲区存的如果为整行,则粘贴 当前光标所在行的上方,否则,则粘贴到当前光标所在处的前面。

使用d删除的内容实际没有删除,而保存在缓冲区当中。

删除

C:删除光标后面的字符,前进入插入模式

c c;删除一整行的内容

#cc:删除多行然后进入插入模式

c^:插入光标前面的内容进入插入模式

c$:插入光标后面的内容进入插入模式

c1G :插入光标到文档首部的所有内容进入插入模式

cG:插入光标到文档结尾的所有内容进入插入模式

可视操作

可视化模式(使用可视化操作的时候最好使用上下光标来配合)

v:按字符选定

V:按行选定

可视操作在写脚本的时候经常用到,选中之后,通过shift+>进行tab

撤回

在编辑模式使用u即可撤消上一步的操作

ctr+r把撤消给撤消了

精巧

r替换光标所在处的字符

重复上一步的操作使用点即可

翻屏

ctrl+u:向文件首部翻半屏

ctrl+d:向文件尾部翻半屏

地址界定

:start_pos,end_pos

#:具体第#行,例如2表示第2行

#,#:从左侧#表示行起始,到右侧#表示行结尾

#,+#:从左侧#表示起始行,加上右侧#表示的行数

. 当前行

$:最后一行

.,$-1:表示当前行到倒数第二行。

%:全文,相当于1,$

/pat1/,/pat2/

从第一次被pat1模式匹配到的行开始,一直到最后一次被pat2匹配到的行结束

#,/pat/

/pat/,$

经常与编辑命令连用:

d

y

w /PATH/TO/SOMEWERE,将范围内的行另存到指定文件中

r /PATH/FROM/SOMEWERE,在指定位置插入文件中的所有内容

例:把1——24行选中后删除:“:1,24d”

把开头是zhanghe的一直到开头是zhangjia之间所有删除:“:/zhanghe/,/zhangjia/d”

查找

/PATTERN;从当前光标所在处向文件尾部查找

?/PATTERN:从当前光标所在处向文件首部查找

n:与命令同方向

N:与命令反方向

查找替换

s:末行模式下完成查找替换操作

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

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

替换为的内容:不能使用模式,但可以使用\1,\2等后向引用符号,还可以使用&引用前面查找进查找到的整个内容

修饰符:

i忽略大小写

g:全局替换,所有的都替换,如果不加g 话,第行只替换第一次出现

​ note:查找替换中的分隔符/可替换为其它字符,例如:

s@@@

s###

7.14 多文件操作

vim后面跟多个文件可打开多个文件,如:

[root@China ~]# cp /etc/{fstab,passwd,shadow} /tmp
[root@China ~]# vim /tmp/{fstab,passwd,shadow}

在末行模式输入:

:n跳转到下一个文件
:N跳转到上一个文件
:first跳转到第一个文件
:last跳转到最后一个文件
:wall保存所有
:qall退出所有
:wqall退出并保存所有

窗口分割

vim –o FILE……水平分割

vim –O FILE ……垂直分割

在窗口之间切换使用ctrl+w命令,或者再加上箭头

单文件窗口分割

ctrl+w,s:split水平分割

ctrl+w,v:vertical垂直

定制特性

全局:/etc/vimrc

个人:~/.vimrc 默认没有,需自行创建

12-23 13:28
查看更多