<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>zgs225 (yuez)</title>
    <link>https://ruby-china.org/zgs225</link>
    <description>热爱简洁</description>
    <language>en-us</language>
    <item>
      <title>Vim 实用技巧</title>
      <description>&lt;p&gt;&lt;strong&gt;原文发表在：&lt;a href="http://yuez.me/vim-ji-qiao/" rel="nofollow" target="_blank" title=""&gt;Vim 技巧&lt;/a&gt;&lt;/strong&gt;，希望留言指正错误或者发表不同意见。&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;在 Github 上看到的一些挺有用的技巧，转载、汇总过来。文章最后会有来源。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="行为一致的n和N"&gt;行为一致的 n 和 N&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;n&lt;/code&gt;和&lt;code&gt;N&lt;/code&gt;在搜索中用来查找下一个或者上一个搜索结果。但是在使用&lt;code&gt;/&lt;/code&gt;或者&lt;code&gt;?&lt;/code&gt;搜索时，它
移动的方向不同，这个经常会混淆。所以，如果你希望&lt;code&gt;n&lt;/code&gt;总是查找下一个搜索结果，&lt;code&gt;N&lt;/code&gt;总
是查找上一个搜索结果的话，你可以这么做：&lt;/p&gt;
&lt;pre class="highlight viml"&gt;&lt;code&gt;nnoremap &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;expr&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;n&lt;/span&gt;  &lt;span class="s1"&gt;'Nn'&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="k"&gt;v&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;searchforward&lt;span class="p"&gt;]&lt;/span&gt;
nnoremap &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;expr&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; N  &lt;span class="s1"&gt;'nN'&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="k"&gt;v&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;searchforward&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="快速移动当前行"&gt;快速移动当前行&lt;/h3&gt;
&lt;p&gt;如果你想将当前行快速上移或者下移几行的话，你可以这么做：&lt;/p&gt;
&lt;pre class="highlight viml"&gt;&lt;code&gt;nnoremap &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="k"&gt;e&lt;/span&gt;  &lt;span class="p"&gt;:&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;c&lt;/span&gt;&lt;span class="p"&gt;-&lt;/span&gt;&lt;span class="k"&gt;u&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nb"&gt;execute&lt;/span&gt; &lt;span class="s1"&gt;'move -1-'&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt; &lt;span class="k"&gt;v&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;count1&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;cr&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
nnoremap &lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="k"&gt;e&lt;/span&gt;  &lt;span class="p"&gt;:&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;c&lt;/span&gt;&lt;span class="p"&gt;-&lt;/span&gt;&lt;span class="k"&gt;u&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nb"&gt;execute&lt;/span&gt; &lt;span class="s1"&gt;'move +'&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt; &lt;span class="k"&gt;v&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;count1&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;cr&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;上面两个映射接受数字做为参数，例如：&lt;code&gt;2]e&lt;/code&gt;表示将当前行下移两行。&lt;/p&gt;
&lt;h3 id="快速宏编辑"&gt;快速宏编辑&lt;/h3&gt;
&lt;p&gt;这条非常有用！这个快捷键打开了一个命令历史窗口，你可以编辑，然后按&lt;code&gt;&amp;lt;cr&amp;gt;&lt;/code&gt;键执行。&lt;/p&gt;
&lt;pre class="highlight viml"&gt;&lt;code&gt;nnoremap &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;leader&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="k"&gt;m&lt;/span&gt;  &lt;span class="p"&gt;:&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;c&lt;/span&gt;&lt;span class="p"&gt;-&lt;/span&gt;&lt;span class="k"&gt;u&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;c&lt;/span&gt;&lt;span class="p"&gt;-&lt;/span&gt;&lt;span class="k"&gt;r&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;=&lt;/span&gt;&lt;span class="s1"&gt;'let @'&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt; &lt;span class="k"&gt;v&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;register &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="s1"&gt;' = '&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt; &lt;span class="nb"&gt;string&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;getreg&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;v&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;register&lt;span class="p"&gt;))&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;cr&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;c&lt;/span&gt;&lt;span class="p"&gt;-&lt;/span&gt;&lt;span class="k"&gt;f&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;left&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;&amp;lt;leader&amp;gt;m&lt;/code&gt;使用这条技巧。&lt;/p&gt;
&lt;h3 id="高亮光标所在当前行和当前列"&gt;高亮光标所在当前行和当前列&lt;/h3&gt;&lt;pre class="highlight viml"&gt;&lt;code&gt;&lt;span class="k"&gt;au&lt;/span&gt; &lt;span class="nb"&gt;WinLeave&lt;/span&gt; * &lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;nocursorline&lt;/span&gt; &lt;span class="nb"&gt;nocursorcolumn&lt;/span&gt;
&lt;span class="k"&gt;au&lt;/span&gt; &lt;span class="nb"&gt;WinEnter&lt;/span&gt; * &lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;cursorline&lt;/span&gt; &lt;span class="nb"&gt;cursorcolumn&lt;/span&gt;
&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;cursorline&lt;/span&gt; &lt;span class="nb"&gt;cursorcolumn&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="显示多余的空白字符"&gt;显示多余的空白字符&lt;/h3&gt;&lt;pre class="highlight viml"&gt;&lt;code&gt;&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="k"&gt;list&lt;/span&gt; &lt;span class="nb"&gt;listchars&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="k"&gt;tab&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;»·&lt;span class="p"&gt;,&lt;/span&gt;trail&lt;span class="p"&gt;:&lt;/span&gt;·
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="在GUI中快速改变字体大小"&gt;在 GUI 中快速改变字体大小&lt;/h3&gt;
&lt;p&gt;测试在控制台的 Vim 中无效。&lt;/p&gt;
&lt;pre class="highlight viml"&gt;&lt;code&gt;command&lt;span class="p"&gt;!&lt;/span&gt; Bigger  &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;let&lt;/span&gt; &amp;amp;&lt;span class="nb"&gt;guifont&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;substitute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&amp;amp;&lt;span class="nb"&gt;guifont&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'\d\+$'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'\=submatch(0)+1'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;''&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
command&lt;span class="p"&gt;!&lt;/span&gt; Smaller &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;let&lt;/span&gt; &amp;amp;&lt;span class="nb"&gt;guifont&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;substitute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&amp;amp;&lt;span class="nb"&gt;guifont&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'\d\+$'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'\=submatch(0)-1'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;''&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="参考"&gt;参考&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/mhinz/vim-galore#tips-1" rel="nofollow" target="_blank" title=""&gt;mhinz/vim-galore&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <author>zgs225</author>
      <pubDate>Mon, 18 Jan 2016 11:47:37 +0800</pubDate>
      <link>https://ruby-china.org/topics/28764</link>
      <guid>https://ruby-china.org/topics/28764</guid>
    </item>
    <item>
      <title>手把手将 Vim 打造成开发 Ruby 和 Rails 的强大 IDE</title>
      <description>&lt;p&gt;本文原文是我发表在自己的&lt;a href="http://yuez.me/jiang-ni-de-vim-da-zao-cheng-qing-qiao-qiang-da-de-ide/" rel="nofollow" target="_blank" title=""&gt;博客&lt;/a&gt;上。&lt;/p&gt;

&lt;p&gt;Vim 和 Emacs 一个称为神之编辑器一个被称为编辑器之神，固然很是夸张，但也足以说明这两款软件的优秀和在程序员界的地位。但是它们都已漫长的学习曲线让人望而生畏，阻止了大多数人进入。作为一名几乎完全使用 Vim 写各种代码、文档的人，我想把我自己平时使用的插件和配置整理下来，方便自己的总结和归纳，如果能有幸帮助到一些想学习 Vim 但是又不知道如何入门的人来说，那就再荣幸不过了。&lt;/p&gt;

&lt;p&gt;在下面的内容中，我会介绍我使用的插件、Vim 的配置，最后如果你觉得这些配置手动太麻烦的话，我推荐你看我的另一篇文章（&lt;a href="http://yuez.me/cong-ling-da-jian-he-pei-zhi-osxkai-fa-huan-jing/" rel="nofollow" target="_blank" title=""&gt;从零搭建和配置 OSX 开发环境&lt;/a&gt;），在那篇文章的末尾，我给出了一个&lt;strong&gt;自动化配置和管理 Vim 的方法&lt;/strong&gt;。&lt;/p&gt;

&lt;p&gt;先贴一张我的 Vim 的截图：&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/2015/d949bb2a58f3deb988ce4b47a0ac7de6.png" title="" alt="vim as ide"&gt;&lt;/p&gt;
&lt;h2 id="你看的到的插件"&gt;你看的到的插件&lt;/h2&gt;
&lt;p&gt;从上面那种截图中肉眼能看到的插件说起，把整个界面按照左窗口、主窗口、右窗口和下窗口命名，依次介绍出现在这个窗口中的主要插件。&lt;/p&gt;
&lt;h4 id="主窗口"&gt;主窗口&lt;/h4&gt;
&lt;p&gt;作为一款主要用于书写代码的文本编辑器，一个足够舒服、靓丽的配色当然是首要考虑的。我使用的配色主题是&lt;code&gt;molokai&lt;/code&gt;（&lt;a href="https://github.com/tomasr/molokai" rel="nofollow" target="_blank" title=""&gt;官方地址&lt;/a&gt;），在
你安装好了这个插件之后，你需要下面几行配置应用它：&lt;/p&gt;
&lt;pre class="highlight viml"&gt;&lt;code&gt;&lt;span class="c"&gt;" Switch syntax highlighting on, when the terminal has colors&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;t_Co&lt;/span&gt; &lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="m"&gt;2&lt;/span&gt; &lt;span class="p"&gt;||&lt;/span&gt; &lt;span class="nb"&gt;has&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"gui_running"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &amp;amp;&amp;amp; &lt;span class="p"&gt;!&lt;/span&gt;&lt;span class="nb"&gt;exists&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"syntax_on"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="nb"&gt;syntax&lt;/span&gt; &lt;span class="k"&gt;on&lt;/span&gt;
&lt;span class="k"&gt;endif&lt;/span&gt;

&lt;span class="c"&gt;" Javascript syntax hightlight&lt;/span&gt;
&lt;span class="nb"&gt;syntax&lt;/span&gt; enable

&lt;span class="c"&gt;" Set syntax highlighting for specific file types&lt;/span&gt;
autocmd &lt;span class="nb"&gt;BufRead&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nb"&gt;BufNewFile&lt;/span&gt; Appraisals &lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="k"&gt;filetype&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="k"&gt;ruby&lt;/span&gt;
autocmd &lt;span class="nb"&gt;BufRead&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nb"&gt;BufNewFile&lt;/span&gt; *&lt;span class="p"&gt;.&lt;/span&gt;md &lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="k"&gt;filetype&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;markdown
autocmd &lt;span class="nb"&gt;Syntax&lt;/span&gt; javascript &lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;syntax&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;jquery

&lt;span class="c"&gt;" Color scheme&lt;/span&gt;
&lt;span class="k"&gt;colorscheme&lt;/span&gt; molokai
&lt;span class="nb"&gt;highlight&lt;/span&gt; NonText guibg&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="mh"&gt;#060606&lt;/span&gt;
&lt;span class="nb"&gt;highlight&lt;/span&gt; Folded  guibg&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="mh"&gt;#0A0A0A&lt;/span&gt; guifg&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="mh"&gt;#9090D0&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;另外一个推荐的 vim 主题是&lt;code&gt;solarized&lt;/code&gt;(&lt;a href="https://github.com/altercation/vim-colors-solarized" rel="nofollow" target="_blank" title=""&gt;官方地址&lt;/a&gt;)。&lt;/p&gt;

&lt;p&gt;在选定了一个适合自己的主题之后，就需要一些配置去解决排版的问题，比如字符编码和缩进等问题。&lt;/p&gt;
&lt;pre class="highlight viml"&gt;&lt;code&gt;&lt;span class="c"&gt;" Backspace deletes like most programs in insert mode&lt;/span&gt;
&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;backspace&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;
&lt;span class="c"&gt;" Show the cursor position all the time&lt;/span&gt;
&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;ruler&lt;/span&gt;
&lt;span class="c"&gt;" Display incomplete commands&lt;/span&gt;
&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;showcmd&lt;/span&gt;
&lt;span class="c"&gt;" Set fileencodings&lt;/span&gt;
&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;fileencodings&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;utf&lt;span class="m"&gt;-8&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;bg18030&lt;span class="p"&gt;,&lt;/span&gt;gbk&lt;span class="p"&gt;,&lt;/span&gt;big5

&lt;span class="k"&gt;filetype&lt;/span&gt; plugin &lt;span class="nb"&gt;indent&lt;/span&gt; &lt;span class="k"&gt;on&lt;/span&gt;

&lt;span class="c"&gt;" Softtabs, 2 spaces&lt;/span&gt;
&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;tabstop&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;
&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;shiftwidth&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;
&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;shiftround&lt;/span&gt;
&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;expandtab&lt;/span&gt;

&lt;span class="c"&gt;" Display extra whitespace&lt;/span&gt;
&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="k"&gt;list&lt;/span&gt; &lt;span class="nb"&gt;listchars&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="k"&gt;tab&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;»·&lt;span class="p"&gt;,&lt;/span&gt;trail&lt;span class="p"&gt;:&lt;/span&gt;·

&lt;span class="c"&gt;" Make it obvious where 80 characters is&lt;/span&gt;
&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;textwidth&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="m"&gt;80&lt;/span&gt;
&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;colorcolumn&lt;/span&gt;&lt;span class="p"&gt;=+&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;

&lt;span class="c"&gt;" Numbers&lt;/span&gt;
&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="k"&gt;number&lt;/span&gt;
&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;numberwidth&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="m"&gt;5&lt;/span&gt;

&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;matchpairs&lt;/span&gt;&lt;span class="p"&gt;+=&amp;lt;:&amp;gt;&lt;/span&gt;
&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;hlsearch&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在第 68 行，水平和垂直方向分别有一条高亮条，这是用来表示我当 前光标所处于的行和列用的。实现它，只需要几行简单的配置就可以了：&lt;/p&gt;
&lt;pre class="highlight viml"&gt;&lt;code&gt;&lt;span class="c"&gt;" Highlight current line&lt;/span&gt;
&lt;span class="k"&gt;au&lt;/span&gt; &lt;span class="nb"&gt;WinLeave&lt;/span&gt; * &lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;nocursorline&lt;/span&gt; &lt;span class="nb"&gt;nocursorcolumn&lt;/span&gt;
&lt;span class="k"&gt;au&lt;/span&gt; &lt;span class="nb"&gt;WinEnter&lt;/span&gt; * &lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;cursorline&lt;/span&gt; &lt;span class="nb"&gt;cursorcolumn&lt;/span&gt;
&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;cursorline&lt;/span&gt; &lt;span class="nb"&gt;cursorcolumn&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;h5 id="关于代码补全"&gt;关于代码补全&lt;/h5&gt;
&lt;p&gt;有些人可能已经发现了，在我的主窗口中没有演示代码补全的功能，我需要对此做一个说明。我本人不喜欢过于强大的代码补全，所以默认的对于我来说已经完全足够了，如果你需要使用更强大的代码补全，我推荐你使用&lt;code&gt;YouCompleteMe&lt;/code&gt;（&lt;a href="https://github.com/Valloric/YouCompleteMe" rel="nofollow" target="_blank" title=""&gt;官方地址&lt;/a&gt;）。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/2015/59ce90f20186a7eccd25d4c28c14a6b9.gif" title="" alt="YouCompleteMe"&gt;&lt;/p&gt;
&lt;h4 id="左窗口"&gt;左窗口&lt;/h4&gt;
&lt;p&gt;左窗口是一个用于浏览目录结构的插件&lt;code&gt;nerdtree&lt;/code&gt;（&lt;a href="https://github.com/scrooloose/nerdtree" rel="nofollow" target="_blank" title=""&gt;官方地址&lt;/a&gt;）。同样一些简单的配置之后，它便能为你提供一个方便够用的功能。&lt;/p&gt;
&lt;pre class="highlight viml"&gt;&lt;code&gt;&lt;span class="c"&gt;" NERD tree&lt;/span&gt;
&lt;span class="k"&gt;let&lt;/span&gt; NERDChristmasTree&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;
&lt;span class="k"&gt;let&lt;/span&gt; NERDTreeWinSize&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="m"&gt;35&lt;/span&gt;
&lt;span class="k"&gt;let&lt;/span&gt; NERDTreeChDirMode&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;
&lt;span class="k"&gt;let&lt;/span&gt; NERDTreeIgnore&lt;span class="p"&gt;=[&lt;/span&gt;&lt;span class="s1"&gt;'\~$'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'\.pyc$'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'\.swp$'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="k"&gt;let&lt;/span&gt; NERDTreeShowBookmarks&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;
&lt;span class="k"&gt;let&lt;/span&gt; NERDTreeWinPos&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"left"&lt;/span&gt;
&lt;span class="c"&gt;" Automatically open a NERDTree if no files where specified&lt;/span&gt;
autocmd vimenter * &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;!&lt;/span&gt;&lt;span class="nb"&gt;argc&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; NERDTree &lt;span class="p"&gt;|&lt;/span&gt; &lt;span class="k"&gt;endif&lt;/span&gt;
&lt;span class="c"&gt;" Close vim if the only window left open is a NERDTree&lt;/span&gt;
autocmd bufenter * &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;winnr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"$"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;==&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt; &amp;amp;&amp;amp; &lt;span class="nb"&gt;exists&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"b:NERDTreeType"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &amp;amp;&amp;amp; &lt;span class="nv"&gt;b:NERDTreeType&lt;/span&gt; &lt;span class="p"&gt;==&lt;/span&gt; &lt;span class="s2"&gt;"primary"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; &lt;span class="k"&gt;q&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; &lt;span class="k"&gt;endif&lt;/span&gt;
&lt;span class="c"&gt;" Open a NERDTree&lt;/span&gt;
nmap &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;F5&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;NERDTreeToggle&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;cr&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id="右窗口"&gt;右窗口&lt;/h4&gt;
&lt;p&gt;在我的截图中，右窗口陈列出了我当前打开的 rb 文件中申明的类、变量及方法等等。这是一款名叫&lt;code&gt;tagbar&lt;/code&gt;的插件，它为我们提供了一个简单的方式去浏览当前文件的结构，并且支持在各个标签之间快捷的跳转。同理，安装之后，需要一些配置：&lt;/p&gt;
&lt;pre class="highlight viml"&gt;&lt;code&gt;&lt;span class="c"&gt;" Tagbar&lt;/span&gt;
&lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="nv"&gt;g:tagbar_width&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="m"&gt;35&lt;/span&gt;
&lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="nv"&gt;g:tagbar_autofocus&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;
nmap &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;F6&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;TagbarToggle&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;CR&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果你发现默认的&lt;code&gt;Tagbar&lt;/code&gt;不能支持你的语言，比如 Css, Clojure, Markdown 等等，你可以参照&lt;a href="https://github.com/majutsushi/tagbar/wiki" rel="nofollow" target="_blank" title=""&gt;这篇文章&lt;/a&gt;为它提供额外的支持。&lt;/p&gt;
&lt;h4 id="下窗口"&gt;下窗口&lt;/h4&gt;
&lt;p&gt;下窗口包含了两个部分：一个是用于全局搜索的窗口和一个状态条。&lt;/p&gt;

&lt;p&gt;全局搜索是一个基于文件名的搜索功能，可以快速定位一个文件。这是&lt;code&gt;ctrlp&lt;/code&gt;这个插件提供的功能。下面是&lt;code&gt;ctrlp&lt;/code&gt;的一些配置：&lt;/p&gt;
&lt;pre class="highlight viml"&gt;&lt;code&gt;&lt;span class="c"&gt;" ctrap&lt;/span&gt;
&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;wildignore&lt;/span&gt;&lt;span class="p"&gt;+=&lt;/span&gt;*&lt;span class="sr"&gt;/tmp/&lt;/span&gt;*&lt;span class="p"&gt;,&lt;/span&gt;*&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;so&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;*&lt;span class="p"&gt;.&lt;/span&gt;swp&lt;span class="p"&gt;,&lt;/span&gt;*&lt;span class="p"&gt;.&lt;/span&gt;zip&lt;span class="p"&gt;,&lt;/span&gt;*&lt;span class="p"&gt;.&lt;/span&gt;png&lt;span class="p"&gt;,&lt;/span&gt;*&lt;span class="p"&gt;.&lt;/span&gt;jpg&lt;span class="p"&gt;,&lt;/span&gt;*&lt;span class="p"&gt;.&lt;/span&gt;jpeg&lt;span class="p"&gt;,&lt;/span&gt;*&lt;span class="p"&gt;.&lt;/span&gt;gif " MacOSX/Linux
&lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="nv"&gt;g:ctrlp_custom_ignore&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'\v[\/]\.(git|hg|svn)$'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;ctrlp&lt;/code&gt;默认会使用&lt;code&gt;grep&lt;/code&gt;进行搜索，效率低且慢。所以，我使用了&lt;code&gt;ag&lt;/code&gt;去替换默认的搜索功能。ag 是一款轻量级的搜索工具，速度非常快。为了集成 ag，需要添加下列配置：&lt;/p&gt;
&lt;pre class="highlight viml"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nb"&gt;executable&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'ag'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="c"&gt;" Use Ag over Grep&lt;/span&gt;
  &lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;grepprg&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;ag\ &lt;span class="p"&gt;--&lt;/span&gt;nogroup\ &lt;span class="p"&gt;--&lt;/span&gt;nocolor
  &lt;span class="c"&gt;" Use ag in CtrlP for listing files.&lt;/span&gt;
  &lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="nv"&gt;g:ctrlp_user_command&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'ag %s -l --nocolor -g ""'&lt;/span&gt;
  &lt;span class="c"&gt;" Ag is fast enough that CtrlP doesn't need to cache&lt;/span&gt;
  &lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="nv"&gt;g:ctrlp_use_caching&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;
&lt;span class="k"&gt;endif&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;下面状态条中会依次显示：当前模式、Git 分支、文件路径、文件是否保存以及当前所载行和列的信息。这是通过&lt;code&gt;vim-powerline&lt;/code&gt;来实现的。其中显示 Git 信息需要配合&lt;code&gt;vim-fugitive&lt;/code&gt;
插件一些使用。&lt;/p&gt;
&lt;pre class="highlight viml"&gt;&lt;code&gt;&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;laststatus&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt; " Always &lt;span class="k"&gt;display&lt;/span&gt; the status &lt;span class="nb"&gt;line&lt;/span&gt;
&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;statusline&lt;/span&gt;&lt;span class="p"&gt;+=&lt;/span&gt;%&lt;span class="p"&gt;{&lt;/span&gt;fugitive#&lt;span class="nb"&gt;statusline&lt;/span&gt;&lt;span class="p"&gt;()}&lt;/span&gt; "  Git Hotness
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id="小结"&gt;小结&lt;/h4&gt;
&lt;p&gt;通过以上的配置，你就可以拥有一些如第一张图所示的那样，看起来还不错的编辑器。当然，Vim 之所以如此倍受推崇，只是依靠这些还是远远不够的。接下来，我要介绍一些看不见的插件来实实在在的提升 Vim 体验。&lt;/p&gt;
&lt;h2 id="看不见的实用插件"&gt;看不见的实用插件&lt;/h2&gt;&lt;h4 id="现代化的插件管理"&gt;现代化的插件管理&lt;/h4&gt;
&lt;p&gt;在我的另一篇文章中（&lt;a href="/cong-ling-da-jian-he-pei-zhi-osxkai-fa-huan-jing/" title=""&gt;从零搭建和配置 OSX 开发环境&lt;/a&gt;），我已经详细介绍过&lt;code&gt;Vundle&lt;/code&gt;这个管理 Vim 插件的一个软件，这里不做过多介绍。&lt;/p&gt;
&lt;h4 id="在Vim中执行你想要运行的命令"&gt;在 Vim 中执行你想要运行的命令&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;vim-run-interactive&lt;/code&gt;让你可以在 Vim 中执行几乎任何你想要在命令行中执行的命令。举例来说，假设你有条&lt;code&gt;git update&lt;/code&gt;的自定义命令，你可以通过&lt;code&gt;:RunInInteractiveShell git update&lt;/code&gt;来执行它，而不需要退出 Vim。添加一条配置，可以简化这个步骤：&lt;/p&gt;
&lt;pre class="highlight viml"&gt;&lt;code&gt;&lt;span class="c"&gt;" Run commands that require an interactive shell&lt;/span&gt;
nnoremap &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;Leader&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="k"&gt;r&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;RunInInteractiveShell&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;space&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如此一来，你可以通过&lt;code&gt;&amp;lt;Leader&amp;gt; + r + 命令&lt;/code&gt;键来激活执行命令。如果你不知道什么是&lt;code&gt;Leader&lt;/code&gt;键，你可以去百度或者 Google 一下。&lt;/p&gt;
&lt;h4 id="Vim的语法检查"&gt;Vim 的语法检查&lt;/h4&gt;
&lt;p&gt;Vim 中有个很强大的语法检查插件，它支持几乎所有常用的语言的语法检测&lt;a href="https://github.com/scrooloose/syntastic" rel="nofollow" target="_blank" title=""&gt;syntastic&lt;/a&gt;。&lt;/p&gt;

&lt;p&gt;附上一张来自官方的截图：&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/2015/5a5e8c78fbb52dc58c5813fae0a5f7bd.png" title="" alt="syntastic"&gt;&lt;/p&gt;

&lt;p&gt;为了让它更好的工作，同样需要一些配置：&lt;/p&gt;
&lt;pre class="highlight viml"&gt;&lt;code&gt;&lt;span class="c"&gt;" configure syntastic syntax checking to check on open as well as save&lt;/span&gt;
&lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="nv"&gt;g:syntastic_check_on_open&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;
&lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="nv"&gt;g:syntastic_html_tidy_ignore_errors&lt;/span&gt;&lt;span class="p"&gt;=[&lt;/span&gt;&lt;span class="s2"&gt;" proprietary attribute \"ng-"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="nv"&gt;g:syntastic_always_populate_loc_list&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;
&lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="nv"&gt;g:syntastic_auto_loc_list&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;
&lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="nv"&gt;g:syntastic_check_on_wq&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;
&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;statusline&lt;/span&gt;&lt;span class="p"&gt;+=&lt;/span&gt;%#warningmsg#
&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;statusline&lt;/span&gt;&lt;span class="p"&gt;+=&lt;/span&gt;%&lt;span class="p"&gt;{&lt;/span&gt;SyntasticStatuslineFlag&lt;span class="p"&gt;()}&lt;/span&gt;
&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;statusline&lt;/span&gt;&lt;span class="p"&gt;+=&lt;/span&gt;%*
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id="Rails集成开发套件"&gt;Rails 集成开发套件&lt;/h4&gt;
&lt;p&gt;我是一名 Ruby 的爱好者，所以 Vim 中少不了针对 Ruby 的一系列插件。我作为一名 Web 开发者，Rails 这个大名鼎鼎的框架自然也是有所涉猎。所以在我的 Vim 中有着针对它们开发的一套插件。&lt;/p&gt;

&lt;p&gt;插件列表：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://github.com/vim-ruby/vim-ruby" rel="nofollow" target="_blank" title=""&gt;ruby-vim&lt;/a&gt;&lt;/strong&gt;：在快速的在 module, class,
method 中跳跃。&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://github.com/tpope/vim-bundler" rel="nofollow" target="_blank" title=""&gt;vim-bundler&lt;/a&gt;&lt;/strong&gt;：在 Vim 中集成&lt;code&gt;Bundler&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://github.com/tpope/vim-endwise" rel="nofollow" target="_blank" title=""&gt;vim-endwise&lt;/a&gt;&lt;/strong&gt;：自动补全&lt;code&gt;end&lt;/code&gt;关键字。&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://github.com/tpope/vim-rails" rel="nofollow" target="_blank" title=""&gt;vim-rails&lt;/a&gt;&lt;/strong&gt;：它的功能很多，可以说是用
Vim 开发 Rails 不可缺少的一个插件。更详细的信息，可以前往它的官方网站获取。&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://github.com/thoughtbot/vim-rspec" rel="nofollow" target="_blank" title=""&gt;vim-rspec&lt;/a&gt;&lt;/strong&gt;：在 Vim 中执行 Rspec 测试。&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class="highlight viml"&gt;&lt;code&gt;&lt;span class="c"&gt;" Cucumber navigation commands&lt;/span&gt;
autocmd &lt;span class="nb"&gt;User&lt;/span&gt; Rails Rnavcommand step features&lt;span class="sr"&gt;/step_definitions -glob=**/&lt;/span&gt;* &lt;span class="p"&gt;-&lt;/span&gt;suffix&lt;span class="p"&gt;=&lt;/span&gt;_steps&lt;span class="p"&gt;.&lt;/span&gt;rb
autocmd &lt;span class="nb"&gt;User&lt;/span&gt; Rails Rnavcommand config config &lt;span class="p"&gt;-&lt;/span&gt;&lt;span class="nb"&gt;glob&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;**/* &lt;span class="p"&gt;-&lt;/span&gt;suffix&lt;span class="p"&gt;=.&lt;/span&gt;rb &lt;span class="p"&gt;-&lt;/span&gt;default&lt;span class="p"&gt;=&lt;/span&gt;routes

&lt;span class="c"&gt;" RSpec.vim mappings&lt;/span&gt;
&lt;span class="nb"&gt;map&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;Leader&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="k"&gt;t&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;call&lt;/span&gt; RunCurrentSpecFile&lt;span class="p"&gt;()&amp;lt;&lt;/span&gt;CR&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nb"&gt;map&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;Leader&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;s &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;call&lt;/span&gt; RunNearestSpec&lt;span class="p"&gt;()&amp;lt;&lt;/span&gt;CR&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nb"&gt;map&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;Leader&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="k"&gt;l&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;call&lt;/span&gt; RunLastSpec&lt;span class="p"&gt;()&amp;lt;&lt;/span&gt;CR&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nb"&gt;map&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;Leader&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="k"&gt;a&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="k"&gt;call&lt;/span&gt; RunAllSpecs&lt;span class="p"&gt;()&amp;lt;&lt;/span&gt;CR&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id="更多好用的工具"&gt;更多好用的工具&lt;/h4&gt;
&lt;p&gt;还有很多好用的插件，如果每个都一一说明，那么篇幅再长一倍怕也是不够。所以，我这里就把一些好用的插件列出来，有兴趣的可以自己看看。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/danro/rename.vim" rel="nofollow" target="_blank" title=""&gt;rename.vim&lt;/a&gt;：在 Vim 中为文件重命名。&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/kchmck/vim-coffee-script" rel="nofollow" target="_blank" title=""&gt;vim-coffee-script&lt;/a&gt;：在 Vim 中舒心
的编写、编译 Coffeescript。&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/pbrisbin/vim-mkdir" rel="nofollow" target="_blank" title=""&gt;vim-mkdir&lt;/a&gt;：当你在 Vim 中新建文件的时候，
自动帮你创建不存在的目录。&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/tpope/vim-surround" rel="nofollow" target="_blank" title=""&gt;vim-surround&lt;/a&gt;：快速的删除、修改和添加
括号、引号、XML 标签等等。&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/tmhedberg/matchit" rel="nofollow" target="_blank" title=""&gt;matchit&lt;/a&gt;：用&lt;code&gt;%&lt;/code&gt;去在两个对应的字符间跳转。&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/vim-scripts/tComment" rel="nofollow" target="_blank" title=""&gt;tComment&lt;/a&gt;：快速注释、反注释代码。&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/mattn/emmet-vim" rel="nofollow" target="_blank" title=""&gt;emmet-vim&lt;/a&gt;：&lt;code&gt;Emmet&lt;/code&gt;的 Vim 版。&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/godlygeek/tabular" rel="nofollow" target="_blank" title=""&gt;tabular&lt;/a&gt;：快速对齐。&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/msanders/snipmate.vim" rel="nofollow" target="_blank" title=""&gt;snipmate.vim&lt;/a&gt;：快速的代码片段。&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/Lokaltog/vim-easymotion" rel="nofollow" target="_blank" title=""&gt;vim-easymotion&lt;/a&gt;：在文件中快速定位。&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/suan/vim-instant-markdown" rel="nofollow" target="_blank" title=""&gt;vim-instant-markdown&lt;/a&gt;：Vim 中对
Markdown 文档的实时预览。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="备注"&gt;备注&lt;/h2&gt;
&lt;p&gt;有更多的一些插件我没有都列出来，它们一般用于特定语法的开发，不一定适合所有人。你可以参考&lt;a href="http://yuez.me/cong-ling-da-jian-he-pei-zhi-osxkai-fa-huan-jing/" rel="nofollow" target="_blank" title=""&gt;从零搭建和配置 OSX 开发环境&lt;/a&gt;这篇文章，自动管理、配置你的 Vim 环境。&lt;/p&gt;

&lt;p&gt;在上文中，我有一些遗漏的或者错误的地方，希望朋友发现后可以在下方留言指正。如果你有一些更好的插件、配置，也恳请你在下方留言。谢谢。&lt;/p&gt;</description>
      <author>zgs225</author>
      <pubDate>Fri, 24 Apr 2015 12:39:14 +0800</pubDate>
      <link>https://ruby-china.org/topics/25295</link>
      <guid>https://ruby-china.org/topics/25295</guid>
    </item>
  </channel>
</rss>
