当前位置:C++技术网 > 资讯 > 高效Vim--编辑器之神

高效Vim--编辑器之神

更新时间:2016-03-08 20:38:30浏览次数:1+次

编辑器简述

今天编辑器的种类有很多,像Sublime Text、Atom、Notepad++、Emacs、Vim等等,相比于我提到的前几个,Emacs和Vim可以算是古董级别的了吧,但是至今这两个古董依然在被维护,被广大程序员喜爱,并封之为——上古神器!上面提到的这几款编辑器我基本都接触过,其中Emacs是了解最少的,记得有一次在iTerm里输入emacs 之后,就不知道怎么退出去了,后来好像是在知乎上看到了一个相关的问题,有人评论:请告诉Vim用户如何退出Emacs,我看到之后会心的笑了。不过说起来我还是记住了几个Emacs的快捷键,都还是非常实用的,我下面会提到。现在我平时最常用的编辑器就是Vim了,所以这篇文章就主要聊聊Vim吧。

加入Vim阵营

首先谈谈我自己对Vim的理解:

  • Vim是工具,工具存在的意义在于帮助人们更高效的完成工作。
  • Vim是一种语言,就像Java,Python一样,为VimL脚本语言。
  • Vim需要配合插件,没有插件的Vim真的很难用。
  • Vim不是IDE,另外最好也不要使用Vim作为Java开发的主要工具,谁用谁怀孕。

下面给大家分享一下 我的Vim配置 ,配色使用的是solarized方案的dark模式,底色较深,不刺眼。贴图一张:喜欢的朋友可以参考我的配置。接下来就说说Vim的配置和常用的插件吧。

Vim配置与常用插件

说到Vim的配置,内容就太多了,想让Vim适合自己的习惯、用的顺手似乎并不是那么容易,我看到GitHub上有的vimrc配置多达上千行,但是并不一定适合每一个人。我自己的vimrc只有几十行,但是对我来说已经足够了。具体的每项配置,大家可以点击我上面的链接参考。介绍几个实用的插件吧:

  1. Vundle :管理插件的插件,基于git的方式,很方便也很现代。
  2. command-t :快速导航文件,使用 :CommandT 命令调出Command-T窗口。
  3. NerdTree :树形目录插件,使用 :NERDTree 命令调出。
  4. Tagbar :显示变量、类定义、函数列表等的插件,使用 :Tagbar 命令调出。
  5. vim-airline :Vim状态栏美化,在不同的模式下有不同的颜色。
  6. vim-airline-themes :这个是vim-airline插件的主题,不过由于主题越来越丰富,作者把主题模块独立创建了一个仓库,所以如果你想使用不同的主题的话,就需要添加这个插件。
  7. ultisnips :代码片段补全插件。
  8. ctrlp :快速找到项目中的文件,使用 Ctrl+p 调出。
  9. auto-pairs :自动配对括号、引号等。
  10. YouCompleteMe :强大的自动补全插件,支持多种语言。
  11. Emmet :快速编写HTML的插件。
  12. vim-indent-guides :显示缩进的对齐线,对于Python这种语言十分有用。

以上是我正在用的几个插件的介绍和链接,安装的时候最好参照官方文档的说明,根据自己的需要进行安装和配置,最终你的Vim会越来越顺手。

Vim使用

工具配置好了,现在就该开始使用了。当你使用Vim的时候,就应该抛弃鼠标和方向键,如果配合HHKB键盘那就再合适不过了。在Vim中使用 h,j,k,l 移动光标、esc,O,o,a,i 切换普通模式和插入模式是最最基础的事情了,我再介绍一些稍微高级一点的比较常用的命令:

  1. 当光标在括号上时,按 % 键可以在配对的括号之间跳转。
  2. 当光标在一个单词上时,按 # 或 * 键可以 向下 或 向上 搜索这个单词。
  3. 使用 Ctrl+] 可以跳转到光标所在符号的定义,使用 Ctrl+t 可以回到跳转前的位置。
  4. 数字 0 可以跳转到光标所在行的 行头 , $ 可以跳转到 行尾 。
  5. gg 跳转到 第一行 , G 跳转到最 后一行 , :N 可以跳转到 第N行 。
  6. w 光标移动到下一个单词的 开头 , e 移动到下一个单词的 结尾 。
  7. d 删除, dd 删除一行, dw 删除一个单词, y 复制, p 粘贴。
  8. r 替换光标所在的字符, cw 删除一个单词并进入插入模式。
  9. f 在当前行查找指定字符,如 fw 、 f= 分别可以查找字符’w’和’=’。
  10. t 光标定位到当前行指定字符前,如 ta 、 t( 分别可以定位光标到字符’a’和’(‘之前。
  11. /pattern 或 ?pattern 分别可以向下或向上查找指定的内容。
  12. u 撤销, Ctrl+r 重做。
  13. = 可以对选中的代码进行格式化,比如输入 gg=G 则会格式化全部代码,十分方便。
  14. 可以将几个命令组合成语句,比如 d2w 会删除两个单词, yt; 会拷贝光标到分号之间的内容。

上面只是一些相对常用的命令,其实Vim还有相当多的功能,我也还在学习使用当中,当用熟Vim之后,在其他没有Vim模式的编辑器里编辑什么东西时,会感到无比别扭,比如会无意识的去按 esc ,然后突然发现这是一张网页里的文本框,然后脸一黑:flushed:。

Vim相关——Chrome插件cVim

有没有想过像控制Vim一样控制你的浏览器,有没有想过脱离鼠标浏览网页,那可是相当的极客范。这里推荐一款Chrome插件——cVim,之前我使用过Vimium,但是Vimium只是支持了少数的Vim快捷键,而cVim可以说是Vimium的加强版,提供了更多的功能并且可定制性更强,包括控制标签页、书签栏检索等等,还能像在Vim中一样使用 /pattern 来搜索网页中的内容,有没有心动呢?需要的小伙伴赶快去Chrome Store下载吧。

Emacs系快捷键

这是一篇关于Vim的文章,可是为什么要介绍Emacs的快捷键呢?原因很简单:因为真的很好用啊喂!

快捷键 作用
Ctrl+a 光标移动到行首
Ctrl+e 光标移动到行尾
Ctrl+f 光标向前移动一个字符
Ctrl+b 光标向后移动一个字符
Ctrl+p 光标向上移动一行
Ctrl+n 光标向下移动一行
Ctrl+o 在当前行之后新增一行
Ctrl+k 从光标处删除到行尾

上面这些快捷键,基本在 任何 可以进行文本输入的地方都能使用,比如 浏览器地址栏 、 Chrome控制台 、 iTerm 、 Terminal 、 网页中的文本框 等等等等。一致性体验非常好,用熟了之后真的就离不开了呢。