计算机网络/计算机科学与应用/系统/运维/开发

Vim基本命令的使用

一、vim 编辑器三大模式

命令模式--->编辑模式  aio

编辑模式<---命令模式  esc

命令模式--->


二、命令模式进入编辑模式  输入字母 a i o A I O

i 当前字符之前插入(光标前)

I 行首插入(行首)

a 当前字符之后插入(光标后)

A 行尾插入(行尾)

o 下一行插入

O 上一行插入

x 向后删除一个字符  等同于 delete

X 向前删除一个字符

. 命令 会重复上一次操作

u 命令 撤销上次的修改,恢复到原始状态

dd 命令 删除当前行


行操作

home键  或者^ 行首 

$ end 键 行尾 


删除命令 dd

dd 删除一行  数字+dd 删除多行

删除5行  5dd

删除光标后全部内容 d+G


复制粘贴

yy 复制一行  数字+yy复制N行

p  将复制行粘贴 


V模式(批量对每行进行操作)

进入v模式移动光标选择区域

编程的时候需要进行多行注释

1. ctrl+v 进入列编辑模式

2. 向下或向上移动光标

3.  吧需要注释的行的开头标记起来

4. 然后按大写的I

5.在插入注释符 比如 #

6. 在按ESC 就会全部注释了


删除: 再按ctrl+v 进入列编辑模式

向下或向上移动光标

选中注释部分 然后按d  就会删除注释符号


命令行模式 

:w 保存 

:q  没有进行任何修改 退出quit

:q!  修改了 不保存 强制退出

:wq 保存并退出

:wq! 强制保存并退出

:!ifconfig 调用系统命令

!+命令  


替换

格式: %所有内容s替换 旧的内容 新的内容

默认是每一行的第一个符合要求的词 (/g 全部)

:% s/a/b 每一行的第一个a被替换成b

:% s/a/b/g 将文本中所有的1替换成5 

:2,3 s/a/b 

/g 全部


定位

gg 定位到行首

G 定位到最后一行 行首

#G 定位到某一行

:#  定位到某一行 

#gg  定位到某一行 

#代表行号  


dd 命令也可以删除操作,但是会把整行一起删除,如果dd后使用 "." 命令  那么重复上次dd命令 删除当前行


>G 命令会增加从当前行到文档末尾处的缩进层级  如果在此命令后使用 "." 命令 那么重复上次修改 会

让Vim 增加从当前行到文档末尾的缩进层级。


不要自我重复

举例:以下片段在每行末尾加分号

var  foo = 1
var  bar = 'a'
var  foobar = foo + bar


输入A 直接到达本行末尾 输入; 按esc键

A;<ESC>

到达第二行

j

执行上次操作  

.

重复上次操作

j.


技巧4 执行、重复、回退


查找并手动替换

1、查找单词

/content

或者

将光标移动到单词上  按*


试想,如果有100个字符需要修改,如何快速呢?

1、光标移动到单词上之后,使用cw命令会删除从光标位置到单词结束之间的字符,并进入插入模式

2、输入要替换的单词

3、输入"." 命令 把 上面操作的命令"cwcopy<ESC>"作为一个修改

4、当再次输入n命令光标进入下一个匹配的字符

5、按"."命令就会将当前光标的字符修改为copy


image.png


:set nu 设置行号

:set nonu 取消设置行号

:noh 取消高亮显示命令,默认高亮

vim 打开多个文件:

1、上下形式打开并显示2个文件

[root@c7 ~]# vim -o /etc/passwd /etc/hosts

2、以左右形式打开并显示2个文件

[root@c7 ~]# vim -O /etc/passwd /etc/hosts

2 files to edit

使用ctrl+ww组合键,在2个文件之间进行切换编辑


vim linux

无才无以立足,不苦不能成才。

评论

^