写在前面:vim功能很强大,这篇文章,首先带你复习 vim基本的常用命令,然后带你看几个骚操作,小技巧,合理使用,可以帮助你大幅提高效率
1.编辑器模式:
vim编辑模式常用有三种:
- 命令行模式
- 文本输入模式
- 末行模式
使用vim打开文件,默认进入的是命令行模式;
输入 a,A,i,I,o,O中任意一个按键进入文本输入模式,
文本输入模式中按一下Esc退回到命令行模式,
命令行模式中按一下:(冒号),进入末行模式。
其实当你按下R,还会进入“替换模式”,我初学的时候就不小心进去了一次,直接懵逼了… 这时按Esc就退回命令行模式了。
2.基本必备操作:
命令行模式下的常用操作:
- yy: 复制一行
- nyy:向下复制n行(包括光标所在行)
- p/P:粘贴
- dd:删除所在行
- ndd:删除n行
- dG:删除所在行到行尾(也可以使用:n1,n2d删除指定范围的行)
其实dd也是剪切按键,你可以试一下,dd删除一行后,使用粘贴按键(p)可以把刚才删的复制上
- gg:定位到第一行
- G:定位到最后一行
- nG:定位到第n行(或者使用:n也可以)
- 0:定位到行首
- $:定位到行尾
- u:撤销 撤销上一次
- U:撤销当前所有
- x:删除光标所在字符(同样nx可以删除n个字符,但我还是习惯进入文本输入模式一个一个删。。)
末行模式下常用命令:
- :set nu 设置行号
- :set nonu 取消行号
- :wq 保存退出(w是保存 q是quit) 其实还有一个zz快捷键 快捷保存退出
- :wq! 强制保存退出
- :q!强制退出
- /word 查找字符(从前往后找 按键n切换到下一个)
- ?word 查找字符 (从后往前)
- :n1,n2s/old/new/g n1到n2行中 把old替换成new (g是不询问)
- :1,$s/old/new/g 第一行到最后一行替换
- :1,2,5s/old/new/g 1,2,5行替换
其他操作(进阶):
vim功能很强大,有时候下面的几个骚操作小技巧是很好用的,可以帮助你提高效率
1. :r 文件名 可以把这个文件内容导入进来 导入到光标位置
:r! 命令 可以在不退出vim的情况下执行命令
有一个实用的用法,如可以给当前文件导入日期:
2.自定义快捷键map
比如添加注释和去掉注释的操作,如果正常来说,直接操作 需要1.光标定位到行首 2.进入文本输入模式 3.删除#4.Esc退回 四部
这时候我们可以定义一个快捷键 ,一步就可以搞定
方法如下:
添加注释:
:map (然后要按一下ctrl +v 再按一下 ctrl +p 这里ctrl+p就是我们定义的快捷键),按完了效果如下
然后后面定义 操作 I#<.ESC> I是插入,#是添加#号,<.ESC>就是按一下ESC;
设置好直接回车,这时候我们的快捷键ctrl+p就设置好了,现在我们在每一行行首 按一下ctrl +p 就会直接加上注释
取消注释:
同上,这次我们的快捷键是ctrl +B ;0代表定位到行首,x删除第一个字符(#),回车,现在我们就可以十分快乐的给任意行 一键删注释了~
这里你可以发挥自己的创意,定义自己的快捷键,来解决你的繁琐问题。
3.怎么快速给多行增加注释
首先 :set nu 加上行号
然后比如我们要给1到4行添加注释:
:1,4s/^/#/g
解释:这里其实就是前面基本命令中的替换操作,只不过用到了“^”这个特殊的符号,它表示行首的意思
快速去掉多行注释:
:1,4s/^#//g
解释:就是把# 替换成了空字符,但是有一个问题,可能有的行中间有#号,所以我们使用的是^#,这里只会去掉行首的#。
4.快速输入 ab:
用法如下:
:ab qq 123456789
回车后你会发现一个神奇的现象,你只要输入qq,qq这个字符会直接变成123456789
注意:以上快捷键,当你重启主机后会失效,如果想永久有效,需要进入用户家目录中编辑vimrc文件。