<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Extensibility in Vim and Emacs</title>
	<atom:link href="http://items.sjbach.com/560/extensibility-in-vim-and-emacs/feed" rel="self" type="application/rss+xml" />
	<link>http://items.sjbach.com/560/extensibility-in-vim-and-emacs</link>
	<description></description>
	<lastBuildDate>Mon, 12 Jul 2010 13:57:32 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: SirVer</title>
		<link>http://items.sjbach.com/560/extensibility-in-vim-and-emacs/comment-page-1#comment-3330</link>
		<dc:creator>SirVer</dc:creator>
		<pubDate>Thu, 25 Jun 2009 16:16:09 +0000</pubDate>
		<guid isPermaLink="false">http://items.sjbach.com/?p=560#comment-3330</guid>
		<description>vim script is a deadend! I really enjoyed your break down. I used vim forever (&gt; 15 years now... wow) and only took a short look to emacs, I am convinced that the two editors are the best on the planet. I agree though that vimscript is awful: limited syntax and hard to debug. I see light on the tunnel though:  &lt;a href=&quot;http://www.vim.org/sponsor/vote_results.php&quot; rel=&quot;nofollow&quot;&gt;on the vim site&lt;/a&gt;, a top requested feature is the proper support for python scripting and since Bram is a Fan of Python himself (he has written his A-A-P build system in it) I consider it likely that future updates will go into this direction. I shall very much enjoy it, if this is the case.</description>
		<content:encoded><![CDATA[<p>vim script is a deadend! I really enjoyed your break down. I used vim forever (&gt; 15 years now&#8230; wow) and only took a short look to emacs, I am convinced that the two editors are the best on the planet. I agree though that vimscript is awful: limited syntax and hard to debug. I see light on the tunnel though:  <a href="http://www.vim.org/sponsor/vote_results.php" rel="nofollow">on the vim site</a>, a top requested feature is the proper support for python scripting and since Bram is a Fan of Python himself (he has written his A-A-P build system in it) I consider it likely that future updates will go into this direction. I shall very much enjoy it, if this is the case.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anonymoose</title>
		<link>http://items.sjbach.com/560/extensibility-in-vim-and-emacs/comment-page-1#comment-3243</link>
		<dc:creator>Anonymoose</dc:creator>
		<pubDate>Wed, 03 Jun 2009 20:22:12 +0000</pubDate>
		<guid isPermaLink="false">http://items.sjbach.com/?p=560#comment-3243</guid>
		<description>&lt;blockquote&gt;I do not think Vim has built-in support for programmatic completion.&lt;/blockquote&gt;

Vim does in fact have support for this, although it is limited (see &lt;code&gt;:h complete()&lt;/code&gt; or &lt;code&gt;:h complete-functions&lt;/code&gt;). However, the built-in completion for vim seems much harder to script; for instance, it seems nearly impossible to do things like adding items that would appear on the keyword-completion menu (shown via  or ) onto an omnicompletion menu (shown via the unfriendly ), check whether the completion menu is visible after pressing  or any of the other many keystrokes to display the slightly different versions (no, &lt;code&gt;pumvisible()&lt;/code&gt; does not work), among other simple things like binding an item on the menu to a keystroke.

&lt;blockquote&gt;Speaking broadly: Emacs feels engineered, while Vim gives the impression of having grown piecemeal.&lt;/blockquote&gt;

Although I have not used Emacs enough to have a viable opinion on it, I definitely agree with the latter assessment (despite using vim every day ;).</description>
		<content:encoded><![CDATA[<blockquote><p>I do not think Vim has built-in support for programmatic completion.</p></blockquote>
<p>Vim does in fact have support for this, although it is limited (see <code>:h complete()</code> or <code>:h complete-functions</code>). However, the built-in completion for vim seems much harder to script; for instance, it seems nearly impossible to do things like adding items that would appear on the keyword-completion menu (shown via  or ) onto an omnicompletion menu (shown via the unfriendly ), check whether the completion menu is visible after pressing  or any of the other many keystrokes to display the slightly different versions (no, <code>pumvisible()</code> does not work), among other simple things like binding an item on the menu to a keystroke.</p>
<blockquote><p>Speaking broadly: Emacs feels engineered, while Vim gives the impression of having grown piecemeal.</p></blockquote>
<p>Although I have not used Emacs enough to have a viable opinion on it, I definitely agree with the latter assessment (despite using vim every day <img src='http://items.sjbach.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike</title>
		<link>http://items.sjbach.com/560/extensibility-in-vim-and-emacs/comment-page-1#comment-3127</link>
		<dc:creator>Mike</dc:creator>
		<pubDate>Fri, 01 May 2009 08:50:22 +0000</pubDate>
		<guid isPermaLink="false">http://items.sjbach.com/?p=560#comment-3127</guid>
		<description>I&#039;m an Emacs user and I&#039;ve written one mode in for my own use (in very, very pedestrian Elisp). I use VM for email and Magit for accessing git.

Quite a few of the problems with Emacs that were mentioned have to do with its age: Elisp is the way it is partly because it originated on very limited hardware by today&#039;s standards. The reason that displaying line numbering has appeared as late as it has is likely because of limited integration with the GUI toolkits and the requirement to work also in terminals. It&#039;s obviously much easier to do something like that in, say, Gedit, which only has to work on Gtk.

I&#039;m somewhat hopeful that Emacs development will pick up some speed. The project finally has a proper bug tracker and will hopefully soon switch to Bazaar for version control. The need for a shorter release cycle is also widely acknowledged, I think. Maybe they&#039;ll even fix some of the fundamental problems in Elisp (concurrency?).</description>
		<content:encoded><![CDATA[<p>I&#8217;m an Emacs user and I&#8217;ve written one mode in for my own use (in very, very pedestrian Elisp). I use VM for email and Magit for accessing git.</p>
<p>Quite a few of the problems with Emacs that were mentioned have to do with its age: Elisp is the way it is partly because it originated on very limited hardware by today&#8217;s standards. The reason that displaying line numbering has appeared as late as it has is likely because of limited integration with the GUI toolkits and the requirement to work also in terminals. It&#8217;s obviously much easier to do something like that in, say, Gedit, which only has to work on Gtk.</p>
<p>I&#8217;m somewhat hopeful that Emacs development will pick up some speed. The project finally has a proper bug tracker and will hopefully soon switch to Bazaar for version control. The need for a shorter release cycle is also widely acknowledged, I think. Maybe they&#8217;ll even fix some of the fundamental problems in Elisp (concurrency?).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: short and sweet elisp primer &#171; Awhan Patnaik</title>
		<link>http://items.sjbach.com/560/extensibility-in-vim-and-emacs/comment-page-1#comment-2765</link>
		<dc:creator>short and sweet elisp primer &#171; Awhan Patnaik</dc:creator>
		<pubDate>Sat, 18 Apr 2009 19:18:56 +0000</pubDate>
		<guid isPermaLink="false">http://items.sjbach.com/?p=560#comment-2765</guid>
		<description>[...] on the subject of emacs this article is surely a reassuring read for those emacs users who are constantly vexed by vim users. will the [...]</description>
		<content:encoded><![CDATA[<p>[...] on the subject of emacs this article is surely a reassuring read for those emacs users who are constantly vexed by vim users. will the [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Moonie</title>
		<link>http://items.sjbach.com/560/extensibility-in-vim-and-emacs/comment-page-1#comment-2470</link>
		<dc:creator>Moonie</dc:creator>
		<pubDate>Thu, 09 Apr 2009 13:15:46 +0000</pubDate>
		<guid isPermaLink="false">http://items.sjbach.com/?p=560#comment-2470</guid>
		<description>I&#039;ve used both Vim and Emacs a lot and can code with both editor&#039;s scripting language. My opinion is that Vim is a great text &lt;i&gt;editor&lt;/i&gt; which can be &lt;i&gt;customized&lt;/i&gt; easily. By customization I don&#039;t mean &lt;i&gt;extensibility&lt;/i&gt;. It&#039;s really difficult to write good, large extensions for Vim so that they work nicely in all modes and interact well with other extensions and the rest of the system. There will never be anything like Gnus, Org-mode or CC-mode in Vim. Perhaps only cheap imitations with a small subset of features. In short, Vim is great unless you want to go beyond customizable text editor.</description>
		<content:encoded><![CDATA[<p>I&#8217;ve used both Vim and Emacs a lot and can code with both editor&#8217;s scripting language. My opinion is that Vim is a great text <i>editor</i> which can be <i>customized</i> easily. By customization I don&#8217;t mean <i>extensibility</i>. It&#8217;s really difficult to write good, large extensions for Vim so that they work nicely in all modes and interact well with other extensions and the rest of the system. There will never be anything like Gnus, Org-mode or CC-mode in Vim. Perhaps only cheap imitations with a small subset of features. In short, Vim is great unless you want to go beyond customizable text editor.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stephen Bach</title>
		<link>http://items.sjbach.com/560/extensibility-in-vim-and-emacs/comment-page-1#comment-2445</link>
		<dc:creator>Stephen Bach</dc:creator>
		<pubDate>Wed, 08 Apr 2009 13:47:46 +0000</pubDate>
		<guid isPermaLink="false">http://items.sjbach.com/?p=560#comment-2445</guid>
		<description>Meikel, I suspect you know more than I about how completion works in Vim, so I&#039;m willing to concede this point.  I do still think it&#039;s unwieldy.  The same function call is used to both:
&lt;ol&gt;
&lt;li&gt;Return a substring for completing -- sort-of like &lt;code&gt;try-completion&lt;/code&gt; in Emacs&lt;/li&gt;
&lt;li&gt;Return the possible completions for that substring -- &lt;code&gt;all-completions&lt;/code&gt; in Emacs&lt;/li&gt;
&lt;/ol&gt;

I&#039;ve been intending to try VimClojure.  At some point I&#039;ll put your assertion to the test. :-)</description>
		<content:encoded><![CDATA[<p>Meikel, I suspect you know more than I about how completion works in Vim, so I&#8217;m willing to concede this point.  I do still think it&#8217;s unwieldy.  The same function call is used to both:</p>
<ol>
<li>Return a substring for completing &#8212; sort-of like <code>try-completion</code> in Emacs</li>
<li>Return the possible completions for that substring &#8212; <code>all-completions</code> in Emacs</li>
</ol>
<p>I&#8217;ve been intending to try VimClojure.  At some point I&#8217;ll put your assertion to the test. <img src='http://items.sjbach.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: mb</title>
		<link>http://items.sjbach.com/560/extensibility-in-vim-and-emacs/comment-page-1#comment-2427</link>
		<dc:creator>mb</dc:creator>
		<pubDate>Wed, 08 Apr 2009 06:28:25 +0000</pubDate>
		<guid isPermaLink="false">http://items.sjbach.com/?p=560#comment-2427</guid>
		<description>I&#039;m not sure, I follow your argument on completion. Vim has a wide variety
of completion functions: keyword completion, filename completion, omni
completion... You can use eg. omni completion programmatically because it
is specified by a function. Whether this function is called by Vim or by you
doesn&#039;t really matter...

I don&#039;t see, where this is less &quot;heavy-duty&quot; than emacs. But of course it depends
on the quality of the completion function. I think, eg. VimClojure&#039;s omni completion
beats the one of SLIME.</description>
		<content:encoded><![CDATA[<p>I&#8217;m not sure, I follow your argument on completion. Vim has a wide variety<br />
of completion functions: keyword completion, filename completion, omni<br />
completion&#8230; You can use eg. omni completion programmatically because it<br />
is specified by a function. Whether this function is called by Vim or by you<br />
doesn&#8217;t really matter&#8230;</p>
<p>I don&#8217;t see, where this is less &#8220;heavy-duty&#8221; than emacs. But of course it depends<br />
on the quality of the completion function. I think, eg. VimClojure&#8217;s omni completion<br />
beats the one of SLIME.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anonymous</title>
		<link>http://items.sjbach.com/560/extensibility-in-vim-and-emacs/comment-page-1#comment-2426</link>
		<dc:creator>Anonymous</dc:creator>
		<pubDate>Wed, 08 Apr 2009 05:11:09 +0000</pubDate>
		<guid isPermaLink="false">http://items.sjbach.com/?p=560#comment-2426</guid>
		<description>&lt;code&gt;(global-linum-mode 1)&lt;/code&gt;</description>
		<content:encoded><![CDATA[<p><code>(global-linum-mode 1)</code></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stephen Bach</title>
		<link>http://items.sjbach.com/560/extensibility-in-vim-and-emacs/comment-page-1#comment-2421</link>
		<dc:creator>Stephen Bach</dc:creator>
		<pubDate>Wed, 08 Apr 2009 03:06:42 +0000</pubDate>
		<guid isPermaLink="false">http://items.sjbach.com/?p=560#comment-2421</guid>
		<description>Krylen, DZ, thanks!

Anonymous, this is very informative.  I wasn&#039;t aware of that irritating side-effect of &lt;code&gt;ignorecase&lt;/code&gt;, though I have been bitten by &lt;code&gt;&quot;.&lt;/code&gt;.</description>
		<content:encoded><![CDATA[<p>Krylen, DZ, thanks!</p>
<p>Anonymous, this is very informative.  I wasn&#8217;t aware of that irritating side-effect of <code>ignorecase</code>, though I have been bitten by <code>".</code>.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anonymous</title>
		<link>http://items.sjbach.com/560/extensibility-in-vim-and-emacs/comment-page-1#comment-2417</link>
		<dc:creator>Anonymous</dc:creator>
		<pubDate>Wed, 08 Apr 2009 01:31:32 +0000</pubDate>
		<guid isPermaLink="false">http://items.sjbach.com/?p=560#comment-2417</guid>
		<description>Another problem with vim script is its reliance on user settings. For instance, &lt;code&gt;==&lt;/code&gt; relies on the &lt;code&gt;ignorecase&lt;/code&gt; setting (see &lt;code&gt;:help expr4&lt;/code&gt;). This is completely counter-intuitive, not to mention pointless; most users don&#039;t bother to check this (and rightly so, it&#039;s not the case in _any_ other language), so their scripts randomly break on certain cases (making it not portable, which is terrible for a scripting language). It&#039;s not just these operators, so many functions do this too, like &lt;code&gt;search()&lt;/code&gt;, &lt;code&gt;searchpair()&lt;/code&gt;, &lt;code&gt;match()&lt;/code&gt;, etc...

Also, a minor detail that has annoyed me on my scripts is that the last inserted text register (&lt;code&gt;:h &quot;.&lt;/code&gt;) is read-only. This makes it very hard to not break the &quot;.&quot; command in, for instance, completion plugins.

I like Vim and use it every day, but I think it would be much better of if it went with a standard (good) scripting language like Python or Lua. Vim is very extensible, it&#039;s just typically a pain to do it, and, as you said, vim script is also only applicable to Vim, whereas learning something like Lisp, Python, etc. has other applications.</description>
		<content:encoded><![CDATA[<p>Another problem with vim script is its reliance on user settings. For instance, <code>==</code> relies on the <code>ignorecase</code> setting (see <code>:help expr4</code>). This is completely counter-intuitive, not to mention pointless; most users don&#8217;t bother to check this (and rightly so, it&#8217;s not the case in _any_ other language), so their scripts randomly break on certain cases (making it not portable, which is terrible for a scripting language). It&#8217;s not just these operators, so many functions do this too, like <code>search()</code>, <code>searchpair()</code>, <code>match()</code>, etc&#8230;</p>
<p>Also, a minor detail that has annoyed me on my scripts is that the last inserted text register (<code>:h ".</code>) is read-only. This makes it very hard to not break the &#8220;.&#8221; command in, for instance, completion plugins.</p>
<p>I like Vim and use it every day, but I think it would be much better of if it went with a standard (good) scripting language like Python or Lua. Vim is very extensible, it&#8217;s just typically a pain to do it, and, as you said, vim script is also only applicable to Vim, whereas learning something like Lisp, Python, etc. has other applications.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (enhanced) (user agent is rejected)
Database Caching using disk

Served from: items.sjbach.com @ 2010-07-29 13:50:09 -->