Linux文本编辑器Vim的一般用法
vim的前身是vi,vim是vi的加强版,现在基本都用vim了,它的作用的建立,编辑,显示文本文件,vim没有菜单,只有命令,vim的用法还是非常多的,今天我只分享vim的常用用法,以满足日常工作需求为主。
先来看一张vim的使用图,借用兄弟连课件里的图:
还是很清晰的,分为命令模式,插入模式和编辑模式,在命令模式可以按i,a或者o键进入插入模式,在插入模式按ESC键返回命令模式,在命令模式输入:进入编辑模式,命令以回车结束运行,回到命令模式,输入:wq保存并退出,好了,下面我们来具体实践一下:
首先输入vim fq.list创建一个fq.list的文件并打开
这样就进入了命令模式,在这个模式下是不能编辑内容的,如果我们想编辑内容,需要进入到插入模式
一 插入命令 i a o I A O
1 a:在光标所在字符后插入,我们按a进入编辑模式
下面的INSERT代表进入了编辑模式,这个时候我们就可以输入内容了,好了,下面我编辑一些内容,当我不想再编辑的时候,可以按ESC回到命令模式,回到命令模式后,INSERT就会消失
2 A:在光标所在行行尾插入,比如我现在光标在这个位置
我在命令模式,按了A之后
,光标就会跳到行尾,并且进入插入模式
3 i:在光标所在字符前插入,比如我现在光标在这个位置
我在命令模式,按了i之后,再输入内容d
我们发现d的内容输入在i的前面了,之前的a命令就会输入到i的后面
4 I:在光标所在行行首输入
这个就不演示了
5 o:在光标所在行的下一行输入,比如我现在光标在这个位置
然后我输入o命令
我们看到光标到了下一行
6 O:在光标锁在行的上一行输入,这个跟上面类似,下面我们来看定位命令
二 定位命令
1 set nu :设置行号
2 set nonu:取消行号
3 :n 把光标移动到第nhang
4 0:移至行首
5 $:移至行尾,这个两个就不演示了
三 删除命令
1 x 删除光标所在处字符
现在光标在i处,我在命令模式按x
发现被删掉了
2 nx 删除光标所在处后n个字符
我在命令模式下按5x
3 dd 删除光标所在行
我按下dd后,第三行整行都被删除了
4 :n1,n2d 删除制定范围的行
比如我在刚才的基础上输入:1,2d
我们发现第一行和第二行被我们删掉了
三 复制和剪切命令
1 yy复制当前行,p/P粘贴当前光标所在行的行下或行上
比如我现在文本里是这样的
我按yy,然后按p
2 dd剪切当前行,p/P粘贴当前光标所在行的行下或行上
这个跟上面类型,就不演示了,好了,那么如果我想复制多行怎么办呢
首先用鼠标选择我要复制的区域,然后按y,然后进入编辑模式,再按鼠标右键即可,平时会这个就够用了
四 替换和取消命令
1 r取代光标所在处字符
比如我现在想取代u,那么按r,然后输入a
我们发现u变成了a
2 R从光标所在处开始替换字符,直接按ESC结束
3 u取消上一步操作,只能是上一步
五 搜索和搜索替换命令
1 /string 搜索指定字符串,如果想忽略大小写,在搜索前先输入:set ic,搜索到结果后按n可以找到下一个
比如我现在想搜Donglu
2 :%s/old/new/g 全文替换指定字符串
比如我现在想把Donglu替换成damingbai
3 :n1,n2s/old/new/g 在指定范围内替换,这个就不演示了
六 保存和退出命令
1 :wq保存修改并退出
2 :q!不保存修改并退出
3 ZZ 保存修改并退出的快捷键
七 导入命令执行结果:r !命令
比如我现在想把date的执行结果放到这个文件中:r !date
注意,是放到光标所在处
八 定义快捷键
:map 快捷键 触发命令
:map ^P I#
这个命令什么意思呢,就是把Ctrl+P快捷键定义为I#,I代表定位到行首并进入插入模式,然后插入#号,然后回到命令模式,定义了这个快捷键,后面再想加入注释#,直接Ctrl+P即可
删除#呢
:map ^B 0x 0代表移动到行首,x代表删除当前光标所在字符
九 连续行注释
:n1,n2s/^/#/g
^代表行首
我们想把第一行和第二行注释掉
取消注释一样的
:n1,n2s/^#//g
如果是//这种注释呢
:n1,n2s/^/\/\//g 需要加\转义字符
十 替换
:ab donglu lixin ,比如以后我想输入donglu,自动变为lixin
接下来我进入插入模式输入donglu然后空格或回车
这里变成了lixin
好了,刚刚这几个快捷键或者是替换,在重启或者重新连接后就会失效,怎么办呢,需要在/home/当前用户下创建一个.vimrc的文件,然后在里面保存刚刚的设置,不需要开头的:即可,这样每次重启或者重新连接,配置的快捷键和替换都一直生效
Linux文本编辑器vim的一般用法就总结到这里,其实vim别的用法还有很多,我们知道上面这些操作,就足够可以应付日常工作了,今天的总结就到这里,如有问题,欢迎指正,谢谢。