vim命令编辑器
vi和vim是linux中一个强大的文本编辑器,vim是vi的升级版。在vim中有三种模式分别是命令模式、输入模式、末行模式。用vim打开一个文件首先进去的是命令模式。
1.命令模式常用命令
命令 |
命令解释 |
G |
光标移动至文本最末行 |
gg |
光标移动至文本最顶端 |
ngg(n是数字) |
光标移动到第n行 |
0或shift+6 |
光标移动至本行行首(^) |
shift+4 |
光标移动至本行行尾($) |
x |
向后删除一个字符 |
X |
向前删除一个字符 |
dd |
删除光标所在行 |
ndd(n是数字) |
删除光标所在行开始的以下n行 |
dG |
删除光标开始行及以下所有行 |
D |
在光标所在行删除光标以及光标之后的行内容 |
yy |
复制光标所在行 |
nyy(n是数字) |
复制从光标行开始的n行 |
yG |
复制光标开始及以下的所有行 |
p(小写字母) |
将之前删除或复制的数据粘贴到光标之后行 |
P(大写字母) |
将之前删除或复制的数据粘贴到光标之前行 |
u |
撤销上一步的操作 |
r |
替换光标所在的字符,只替换一次 |
R |
一直替换光标所在的字符,一直到按下ESC键 |
ctrl+f |
向下翻页 |
ctrl+b |
向上翻页 |
2.命令模式进入输入模式常用命令
命令 |
命令解释 |
i |
从当前光标前开始插入字符 |
a |
从当前光标后开始插入字符 |
I |
在当前行行首插入字符 |
A |
在当前行行尾插入字符 |
o |
在当前行下面插入新的一行 |
O |
在当前行上面插入新的一行 |
3.末行模式常用命令
命令 |
命令解释 |
:w |
保存不退出文档 |
:q |
退出不保存 |
:wq |
保存并退出 |
:q! |
强制退出不保存 |
:wq! |
强制保存并退出 |
:x |
保存并退出 |
命令 |
命令解释 |
:number |
跳转到对应的行 |
/word |
搜索文件内容中包含word的字符串 |
n |
在匹配的高亮字符串中逐个向下跳转 |
N |
在匹配的高亮字符串中逐个向上跳转 |
:nohl |
取消搜索 |
命令(查找与替换) |
|
:n1,n2 s#word1#word2#g |
查找n1和n2行之间所有word1字符串并替换为word2 |
:1,$ s#word1#word2#g |
查找全局所有word1字符串并替换为word2(1,$表示所有行) |
:% s#word1#word2#g |
查找全局所有word1字符串并替换为word2(%表示所有行) |
:% s#word1#word2#gc |
加上c作用是在替换前需要用户确认 |
命令(读入文件) |
|
:w a.txt |
另存为新文件a.txt |
:1,3 w bb.txt |
将1到3行另存为bb.txt |
:r cc.txt |
将文件cc.txt读入到光标所在行之后 |
:5 r dd.txt |
将文件dd.txt读入到第五行之后 |
4.末行模式-环境变量
1.临时修改
命令 |
命令解释 |
:set nu |
显示行号 |
:set ic |
忽略大小写,在内容搜索时使用 |
:set ai |
自动缩进 |
:set list |
显示制表符(可以看到文件内容中看不到的内容比如空格、tab键等) |
:set nonu |
取消显示行号,其他的都是在前面加“no”取消 |
2.永久生效
通过命令修改的都是临时生效的,关闭后再打开vim则属性消失。如果想永久生效,则需要修改配置文件。在linux中有两个配置文件
针对环境 |
文件名 |
优先级 |
个人用户 |
~/.vimrc |
高 |
全局所有用户 |
/etc/vimrc |
低 |
5.视图模式
在命令模式下按‘ctrl+v’进入可视块模式(VISUAL BLOCKA)选选中需要改变的行或块
1.插入:按住shift+i 进入编辑模式,输入内容例如‘#’,按ESC结束,则批量在选中的每行开始插入#
2.删除:选中内容后,按‘x’或者‘d’键删除即可
3.替换:选中需要替换的内容后,按下r然后直接输入要替换的字符
在命令模式下按‘shift+v’ 进入可视行模式(VISUAL LINE)选中需要改变的行
1.复制:选中后按y键
2.删除:选中后按d键
6.文件对比
在生产中,有时需要对两个相似的文件进行对比,查找两个文件的不同之处,linux给了一个解决方案,可以用vimdiff命令进行对比。