本文以Linux操作系统为测试环境,并且要求对vim有些许了解,如果对vim完全没有概念,建议在命令行下输入vimtutor获取vim的入门教程,花一个小时左右即可入门。
我对vim的定位
据我了解,在命令行时代,如果根据编辑器的使用给程序员分类,几乎大致可以分为vim和Emacs两大阵营。我在刚刚接触文本编辑器的时候,也被灌输着必须二选一的思想,诚如传言,vim确实很重要,只要接触Linux而不使用vim是不可能的,而Emacs的组合命令让我实在无法忍受,所以即使Emacs很强大,还没开始学我就决定放弃它了。
在折腾vim很长时间之后,特别是接触了Atom、Sublime Text、VS code等新兴文本编辑器之后,我又得出了一个结论:vim不适合这个时代。也许有很多高手和老黑客还在青睐vim,他们已经把vim玩得很6了,甚至离不开vim了,但是我必须承认有很多更好用的编辑器,我不想再折腾这个老古董了。
但是vim是又是必须的,它是一个很好用的辅助工具,因为一旦我们熟悉了vim的使用,就可以在很多地方包括以上提到的新兴编辑器使用,而vim也确实是一个高效的工作方式。我一直在使用vim:在Linux下,我使用vim编辑小文件,在浏览器端,我使用vimuim插件支持vim快捷键,而我在使用新兴编辑器的时候,我依然是使用vim的键盘快捷方式。高效的辅助工具,这是我对vim的定位。
这个定位也是我写本文的原因。网上有很多vim的教程,但是讲的都很仔细,我也看了一遍又一遍,但是到头来,我发现我记住的还是那么多,因为我只用那么多。我想通过本文总结我在使用vim的时候用到的东西,而且是常用的、不会忘记的东西。
简洁地使用vim
跳转
h 向左移动
k 向上移动
j 向下移动
l 向右移动
H 移动到屏幕的起始行
M 移动到屏幕中间
L 移动到屏幕的底行
gg 移动到文档首行
G 移动到文档尾行
NG N替换为数字,移动到文档的第N行
Ctrl + f 向下翻一页
Ctrl + b 向上翻一页
0 移动到行头
$ 移动到行尾
搜索匹配
普通匹配如下,在命令模式下,先输入/,再输入str即可匹配到字符str,然后按n则匹配下一个str,按N匹配上一个str。而如果输入的是?str,则n和N的功能相反,不管是/str还是?str,在匹配到文始或者文末之后,都会从头开始。
/str 向下搜索匹配字符str
?str 向上搜索匹配字符str
而想要更精确的匹配,就要用到正则表达式匹配,基本使用如下,正则表达式的高级语法请自行百度。
:/str/ 正则表达式匹配字符str
替换与删除
r 替换单个字母
R 从当前字母开始替换
x 删除一个字母
dw 删除一个单词
dd 删除一行
d$ 从当前删除到行末
d0 从当前删除到行头
J 删除本行的回车符,将本行与下一行合并
插入
i 在当前光标前插入
a 在当前光标后插入
o 在本行的下面新建一行并进入编辑模式
O 在本行的上面新建一行并进入编辑模式
复制粘贴
yy 复制本行
p 在光标后面粘贴
P 在光标前面粘贴
更使用的做法是,在命令模式下,先按v进入可视模式,利用上面讲到的跳转命令选择文本,被选择的文本背景会反白,选择好要复制的文本后,按下y即可复制反白文本。
撤销与重复
u 撤销上一次操作,常用
. 重复上一个命令操作
打开、保存、退出
:w 保存而不退出
:w filename 保存副本
:q 退出vim
:q! 强制退出,不保存
:wq 保存并退出
:e path/file 在vim中打开文件
:f file 重命名文件
其他命令
:set nu 显示行号
:syntax on 开启语法高亮
:set option命令常常用来设置vim的界面与相关配置,如上两天配置命令只会临时起作用,而退出vim之后就会失效,所以最好的做法是,在用户主目录下新建一个.vimrc文件,并把自己的配置选项写入文件中,这样vim就知道如何初始化自己了。
:f 或者 Ctrl + G 显示状态栏,这对于想看文件名很有用
:!cm 其中cm为shell命令,这允许我们在vim中运行shell命令
还有一些命令,我不常用,但是我认为可以了解,如下:
:sp 上下分屏
:vsp 左右分屏
Ctrl + w + h 切换到左边屏
Ctrl + w + j 切换到下边屏
Ctrl + w + k 切换到上边屏
Ctrl + w + l 切换到右边屏
其实Ctrl + w可以在不同的屏之间按顺序切换。
总结
这是我对自己使用vim的总结,我认为对于vim,我知道这些就够了,希望对你们有所帮助,发现错误欢迎指正,有意见欢迎反馈。
网友评论