<story><title>Writing Vim Plugins</title><url>http://stevelosh.com/blog/2011/09/writing-vim-plugins/</url></story><parent_chain></parent_chain><comment><author>telemachos</author><text>Damian Conway wrote a five-part series on Vimscript for IBM&apos;s developerWorks. I found it a good way to start doing more with Vimscript:&lt;p&gt;&lt;a href=&quot;http://www.ibm.com/developerworks/linux/library/l-vim-script-1/index.html&quot; rel=&quot;nofollow&quot;&gt;http://www.ibm.com/developerworks/linux/library/l-vim-script...&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;http://www.ibm.com/developerworks/linux/library/l-vim-script-2/index.html&quot; rel=&quot;nofollow&quot;&gt;http://www.ibm.com/developerworks/linux/library/l-vim-script...&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;http://www.ibm.com/developerworks/linux/library/l-vim-script-3/index.html&quot; rel=&quot;nofollow&quot;&gt;http://www.ibm.com/developerworks/linux/library/l-vim-script...&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;http://www.ibm.com/developerworks/linux/library/l-vim-script-4/index.html&quot; rel=&quot;nofollow&quot;&gt;http://www.ibm.com/developerworks/linux/library/l-vim-script...&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;http://www.ibm.com/developerworks/linux/library/l-vim-script-5/index.html&quot; rel=&quot;nofollow&quot;&gt;http://www.ibm.com/developerworks/linux/library/l-vim-script...&lt;/a&gt;</text></comment>
<story><title>Writing Vim Plugins</title><url>http://stevelosh.com/blog/2011/09/writing-vim-plugins/</url></story><parent_chain></parent_chain><comment><author>codito</author><text>Nice tips. I disagree on the unit test one though. I&apos;ve been hacking on a vim+python based plugin (and learning python on the way) for past few days. When I started, I would fire vim up, test something and hit a non-actionable error (since I won&apos;t have the entire stack trace, nor could I use pdb.set_trace/attach debugger :().&lt;p&gt;Now I isolate vim as much as possible from core piece of code, and use a mock vim[1][2]. For every entrypoint into my python code from vim, I write a small unittest; run/debug it w/ nose and then just hook it to a vim key mapping. It reduced trial/error cycles significantly.
--
[1] &lt;a href=&quot;http://tadhg.com/wp/2010/02/16/some-vim-script-implementation-testing-and-hackery/&quot; rel=&quot;nofollow&quot;&gt;http://tadhg.com/wp/2010/02/16/some-vim-script-implementatio...&lt;/a&gt;
[2] &lt;a href=&quot;http://symlink.me/repositories/entry/blogit/testing/mock_vim.py&quot; rel=&quot;nofollow&quot;&gt;http://symlink.me/repositories/entry/blogit/testing/mock_vim...&lt;/a&gt;</text></comment>