<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Electricmonk.nl weblog &#187; vim</title>
	<atom:link href="http://www.electricmonk.nl/log/category/vim/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.electricmonk.nl/log</link>
	<description>Ferry Boender&#039;s ramblings</description>
	<lastBuildDate>Mon, 15 Apr 2013 18:48:50 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Persistent undo history in Vim</title>
		<link>http://www.electricmonk.nl/log/2012/07/26/persistent-undo-history-in-vim/</link>
		<comments>http://www.electricmonk.nl/log/2012/07/26/persistent-undo-history-in-vim/#comments</comments>
		<pubDate>Thu, 26 Jul 2012 08:34:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://www.electricmonk.nl/log/?p=4963</guid>
		<description><![CDATA[Once you quit Vim, the undo history for that file is gone. This sometimes gives me problems if I accidentally made a change in a file without knowing it. This usually happens due to a bad Vim command which, for instance, capitalized a single letter. There&#039;s an option which allows you to make the undo [...]]]></description>
				<content:encoded><![CDATA[<p>Once you quit Vim, the undo history for that file is gone. This sometimes gives me problems if I accidentally made a change in a file without knowing it. This usually happens due to a bad Vim command which, for instance, capitalized a single letter. </p>
<p>There&#039;s an option which allows you to make the undo history persistent between Vim sessions. That means you can still undo changes you made in a file, even if you&#039;ve quit Vim in the meantime.</p>
<p>You can add the following to your <tt>.vimrc</tt> to enable it:</p>
<pre>
set undofile   # Maintain undo history between sessions
</pre>
<p>This will create undo files all over the place, which look like this:</p>
<pre>
-rw-r--r-- 1 fboender fboender 320 2012-07-26 10:23 bad_gateway.txt
-rw-r--r-- 1 fboender fboender 523 2012-07-24 14:51 .bad_gateway.txt.un~
</pre>
<p>You can remedy this by including the following option in your configuration:</p>
<pre>
set undodir=~/.vim/undodir
</pre>
<p>Make sure to create the <tt>undodir</tt>:</p>
<pre>
$ <b>mkdir ~/.vim/undodir</b>
</pre>
<p>The undo files will now be saved in the <tt>undodir</tt>:</p>
<pre>
$ <b>ls -la .vim/undodir/</b>
total 12
drwxr-xr-x  2 fboender fboender 4096 2012-07-26 10:32 .
drwxr-xr-x 12 fboender fboender 4096 2012-07-26 10:24 ..
-rw-r--r--  1 fboender fboender  519 2012-07-26 10:32 %home%fboender%bad_gateway.txt
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.electricmonk.nl/log/2012/07/26/persistent-undo-history-in-vim/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Conque: Terminal emulators in Vim buffers</title>
		<link>http://www.electricmonk.nl/log/2012/06/03/conque-terminal-emulators-in-vim-buffers/</link>
		<comments>http://www.electricmonk.nl/log/2012/06/03/conque-terminal-emulators-in-vim-buffers/#comments</comments>
		<pubDate>Sun, 03 Jun 2012 09:33:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[libre software]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://www.electricmonk.nl/log/?p=4918</guid>
		<description><![CDATA[For the longest time, I&#039;ve searched for a way to run terminal emulators in Vim buffers. As a kind of work-around, I created Bexec, which allows you to run the current contents of a buffer through an external program. It then captures the output and inserts/appends it to another buffer. Although Bexec works reasonable, and [...]]]></description>
				<content:encoded><![CDATA[<p>For the longest time, I&#039;ve searched for a way to run terminal emulators in Vim buffers. </p>
<p>As a kind of work-around, I created <a href="http://www.electricmonk.nl/Programmings/Bexec">Bexec</a>, which allows you to run the current contents of a buffer through an external program. It then captures the output and inserts/appends it to another buffer.</p>
<p>Although Bexec works reasonable, and still has it&#039;s uses, it&#039;s not a true terminal emulator in Vim. Today I finally found a Vim plugin that let&#039;s you actually run interactive commands / terminals in Vim buffers: <a href="http://code.google.com/p/conque/">Conque</a>.</p>
<p><a href="http://conque.googlecode.com/svn/wiki/screenshot/windows.jpg"><img width="640" src="http://conque.googlecode.com/svn/wiki/screenshot/windows.jpg"></a></p>
<p>It requires Vim with Python support built in. Installation is straight-forward if you&#039;ve got the requirements.</p>
<p>Download <a href="http://code.google.com/p/conque/downloads/list">the .vmb file</a>, edit it in vim, and issue:</p>
<pre>
:so %
</pre>
<p>It will then be installed. Quit vim, restart it, and you can now run start using it:</p>
<pre>
:ConqueTerm bash
</pre>
<p>Very awesome.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.electricmonk.nl/log/2012/06/03/conque-terminal-emulators-in-vim-buffers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vim and PHP: tips</title>
		<link>http://www.electricmonk.nl/log/2007/08/31/vim-and-php-tips/</link>
		<comments>http://www.electricmonk.nl/log/2007/08/31/vim-and-php-tips/#comments</comments>
		<pubDate>Fri, 31 Aug 2007 15:01:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[link]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://www.electricmonk.nl/log/2007/08/31/vim-and-php-tips/</guid>
		<description><![CDATA[I&#039;ve been using Vim for years now, but there&#039;s still new stuff to learn. Check out this page for the PDF version of the slides of a talk given by Andrei Zmievski on editing PHP with Vim. His configuration files are also available. Here&#039;s my favourite list of tips: Add the following text to your [...]]]></description>
				<content:encoded><![CDATA[<p>I&#039;ve been using <a href="http://www.vim.org">Vim</a> for years now, but there&#039;s still new stuff to learn. Check out <a href="http://www.gravitonic.com/blog/archives/000357.html">this page</a> for the <a href="http://www.gravitonic.com/do_download.php?download_file=talks/vancouver-2007/vim-for-php-programmers.pdf">PDF version of the slides</a> of a talk given by Andrei Zmievski on editing <a href="http://www.php.net">PHP</a> with Vim. His <a href="http://www.gravitonic.com/do_download.php?download_file=other/andrei-vim-files.tar.gz">configuration files</a> are also available.</p>
<p>Here&#039;s my favourite list of tips:</p>
<p>Add the following text to your <tt>~/.vim/ftplugin/php.vim</tt> file:</p>
<pre>
set formatoptions+=tcqlro
let php_sql_query=1
let php_htmlInStrings=1
let php_folding = 1
</pre>
<p>This will:</p>
<ul>
<li>Turn on automatic text formatting for PHP so that, for instance, Vim automatically inserts a &#039;*&#039; if you press enter inside a <tt>/* */</tt> comment.</li>
<li>Makes Vim highlight SQL queries in strings.</li>
<li>Makes VIm highlight HTML in strings.</li>
<li>Allows folding on PHP classes and functions. (With the cursor on the first line of a function, press <tt>z-c</tt> to hide the function. <tt>z-o</tt> to show it again. (<b>C</b>lose and <b>O</b>pen the fold)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.electricmonk.nl/log/2007/08/31/vim-and-php-tips/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vim tip: Recognise syntax for other extensions</title>
		<link>http://www.electricmonk.nl/log/2007/07/09/vim-tip-recognise-syntax-for-other-extensions/</link>
		<comments>http://www.electricmonk.nl/log/2007/07/09/vim-tip-recognise-syntax-for-other-extensions/#comments</comments>
		<pubDate>Mon, 09 Jul 2007 19:46:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://www.electricmonk.nl/log/2007/07/09/vim-tip-recognise-syntax-for-other-extensions/</guid>
		<description><![CDATA[If you want Vim to recognise files with other extensions as a certain syntax, this tip is for you. For instance, many people name their include files in PHP .inc (Coincidentally, not a very smart thing to do, but anyway). But Vim won&#039;t recognise files with the .inc extension as PHP. Here&#039;s how to deal [...]]]></description>
				<content:encoded><![CDATA[<p>If you want Vim to recognise files with other extensions as a certain syntax, this tip is for you. For instance, many people name their include files in PHP .inc (Coincidentally, not a very smart thing to do, but anyway). But Vim won&#039;t recognise files with the .inc extension as PHP. Here&#039;s how to deal with that:</p>
<p>Edit your <code>.vimrc</code> and add the following lines:</p>
<pre>
if has("autocmd")
  augroup php
    autocmd BufRead <b>*.inc</b> set filetype=<b>php</b>
  augroup END
endif
</pre>
<p>This will make Vim recognise <code>.inc</code> files as PHP files and treat them accordingly (syntax highlighting and whatever else you&#039;ve set Vim up to do with PHP files).</p>
<p><b>Security note:</b> It&#039;s not a good idea to name files that will be included &#039;.inc&#039;. Bad configuration of your webserver may make the source of those file available unparsed through your webserver. Either name them .inc.php, or don&#039;t place them in a dir under your webroot.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.electricmonk.nl/log/2007/07/09/vim-tip-recognise-syntax-for-other-extensions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ctags and Object Oriented PHP5</title>
		<link>http://www.electricmonk.nl/log/2006/02/11/ctags-and-object-oriented-php/</link>
		<comments>http://www.electricmonk.nl/log/2006/02/11/ctags-and-object-oriented-php/#comments</comments>
		<pubDate>Sat, 11 Feb 2006 21:57:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[About CTags Ctags is a great utility. It creates a file with a list of &#039;tags&#039; that are found in various program sources that it finds in the directory where you run it. These tags can then be read by editors so that they know where in the source to find, for instance, the definitions [...]]]></description>
				<content:encoded><![CDATA[<p><strong>About CTags</strong></p>
<p><a href="http://ctags.sourceforge.net/">Ctags</a> is a great utility. It creates a file with a list of &#039;tags&#039; that are found in various program sources that it finds in the directory where you run it. These tags can then be read by editors so that they know where in the source to find, for instance, the definitions of functions, methods, constants and variables. Or as the CTags homepage describes it:</p>
<p><span class="quote">Ctags generates an index (or tag) file of language objects found in source files that allows these items to be quickly and easily located by a text editor or other utility. A tag signifies a language object for which an index entry is available (or, alternatively, the index entry created for that object).</span><br />
Editors like <a href="http://www.vim.org">Vim</a> use it to let you peek at or jump to the definition of a function; a feature commonly thought to only exist in bloated IDE&#039;s such as Eclipse.</p>
<p><strong>PHP5 Object Oriented</strong></p>
<p>Unfortunately, CTags doesn&#039;t support PHP&#039;s Object Oriented features very well. All you&#039;ll get is globally defined constants and functions. It also generates tags for classes, but that&#039;s it. No support for methods or anything! Hardly very useful in it&#039;s current form, I&#039;d say. Thankfully there is a patch available that greatly extends CTags&#039; Object Oriented PHP support.</p>
<p><strong>Fixing CTags</strong></p>
<p>To fix CTags so that it <em>does</em> support PHP in a not-completely-retarded fashion, you&#039;ll have to patch and compile CTags yourself. Here&#039;s how:</p>
<p>Download <a href="http://prdownloads.sourceforge.net/ctags/ctags-5.5.4.tar.gz">CTags v5.5.4</a>.<br />
Download the <a href="http://svn.bitflux.ch/repos/public/misc/ctags-php5.patch">patch</a> (alternatively and in case the patch disappears from the previous location, download it from <a href="http://www.electricmonk.nl/data/miscellaneous/ctags-php5.patch">electricmonk&#039;s mirror</a>.</p>
<p>Next, patch, build and install CTags:</p>
<pre class="code">[todsah@jib]~/download$ tar -vxzf ctags-5.5.4.tar.gz
[todsah@jib]~/download$ patch ctags-5.5.4/php.c ctags-php5.patch
[todsah@jib]~/download$ cd ctags-5.5.4
[todsah@jib]~/download/ctags-5.5.4$ ./configure
[todsah@jib]~/download/ctags-5.5.4$ make
[todsah@jib]~/download/ctags-5.5.4$ sudo make install</pre>
<p>The new ctags binary will be installed in /usr/local/bin by default.</p>
<p>Now you can use the self-built version of ctags to create tag files that contain enough information about your PHP&#039;s source code to actually do something meaningful:</p>
<pre class="code">[todsah@jib]~/plugwiki$ /usr/local/bin/ctags -R --extra=+q</pre>
<p>Fire up your Vim editor (you are using Vim, aren&#039;t you?? Get off my site, you dirty Emacs user!) and start exploiting your newly created tags file.</p>
<p><strong>Using ctags in Vim</strong></p>
<p>In case you don&#039;t know how to use ctags from within Vim, don&#039;t worry. It&#039;s really easy. Move the cursor on top of some method call and press <tt>Ctrl-]</tt>. Vim will jump to the definition of the method/function/constant/whatever that the cursor was currently on. To jump back to where you came, press <tt>Ctrl-t</tt>. It&#039;s a simple as that.</p>
<p>An example. Suppose I have the following code:</p>
<pre class="code">if (!$page-&gt;hasAccess(</pre>
<p>I&#039;ll position my cursor on <tt>hasAccess</tt> and press <tt>Ctrl-]</tt>. Vim will now jump to this text:</p>
<pre class="code">  public function hasAccess($user, $access)
  {
    $userId = $user-&gt;getUserId();</pre>
<p>When I type <tt>Ctrl-t</tt>, Vim will jump back to:</p>
<pre class="code">if (!$page-&gt;hasAccess(</pre>
<p>and I can complete my code.</p>
<p>Another cool tool for Vim that uses tags is <a href="http://www.vim.org/scripts/script.php?script_id=273">TagList</a>.</p>
<p><span class="quote">The &#034;Tag List&#034; plugin is a source code browser plugin for Vim and provides an overview of the structure of source code files and allows you to efficiently browse through source code files for different programming languages.</span><br />
You can see TagList in action <a href="http://www.electricmonk.nl/images/vim.png">in this screenshot of Vim</a>.</p>
<p><sup>(Thanks to Michiel van Baak for corrections in this post.)</sup></p>
]]></content:encoded>
			<wfw:commentRss>http://www.electricmonk.nl/log/2006/02/11/ctags-and-object-oriented-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows Vim settings</title>
		<link>http://www.electricmonk.nl/log/2004/07/06/windows-vim-settings/</link>
		<comments>http://www.electricmonk.nl/log/2004/07/06/windows-vim-settings/#comments</comments>
		<pubDate>Tue, 06 Jul 2004 09:07:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[vim]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Geez, the default settings for the windows version of vim suck! It&#039;s got all these crooked little &#039;shift-arrowkeys for selecting text&#039; options and whatnot. I don&#039;t want that crap! Autoindenting was completely fubar too. So much so that I couldn&#039;t even normally insert text without each line violently shaking the left and right. So I [...]]]></description>
				<content:encoded><![CDATA[<p>Geez, the default settings for the windows version of vim suck! It&#039;s got all these crooked little &#039;shift-arrowkeys for selecting text&#039; options and whatnot. I don&#039;t want that crap! Autoindenting was completely fubar too. So much so that I couldn&#039;t even normally insert text without each line violently shaking the left and right. </p>
<p>So I tweaked the vimrc settings to make Vim under windows as much the same as GVim for Linux as possible. I&#039;ve put the resulting <a href="index.php?page=Vim">_vimrc online</a>.</p>
<p>I also did some updates on the white.vim colorscheme.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.electricmonk.nl/log/2004/07/06/windows-vim-settings/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows GVim FTP</title>
		<link>http://www.electricmonk.nl/log/2004/07/02/windows-gvim-ftp/</link>
		<comments>http://www.electricmonk.nl/log/2004/07/02/windows-gvim-ftp/#comments</comments>
		<pubDate>Fri, 02 Jul 2004 08:15:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[vim]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[I&#039;ve spent an eternity trying to find out how to get gvim under Windows to open files transparantely over FTP. According to the manual, it&#039;s supposed to work like this: :e ftp://[user]@[hostname]/file But that didn&#039;t work for me. I thought I tried everything, but it just wouldn&#039;t work. Some red-coloured errors flashed by everytime I [...]]]></description>
				<content:encoded><![CDATA[<p>I&#039;ve spent an eternity trying to find out how to get gvim under Windows to open files transparantely over FTP. According to the manual, it&#039;s supposed to work like this:</p>
<p><code>:e ftp://[user]@[hostname]/file</code></p>
<p>But that didn&#039;t work for me. I thought I tried everything, but it just wouldn&#039;t work. Some red-coloured errors flashed by everytime I tried to open a FTP file, but I coulnd&#039;t read the errors because they were gone too fast.</p>
<p>Turns out I had to make sure of at least the following:
<ul>
<li>Don&#039;t forget to create a temporary directory c:temp or c:tmp, or some other path which is set in the &#039;directory&#039; setting in vim (type &#034;:set directory<enter>&#034; to find out). GVim needs it to temporary store the file there.</li>
<li>Make sure the NetRW plugin is loaded.</li>
<li>When opening a FTP file, make sure you put a DOUBLE SLASH between the hostname and any filenames. For instance, I tried opening the file ftp://hostname/myfile.php, and it worked. But when I tried to open ftp://hostname/mydir/myfile.php, it failed! When I entered ftp://hostname//mydir/myfile.php, it worked again. Weird stuff but who cares? As long as it works, it&#039;s all fine with me.</li>
</ul>
<p>I&#039;ve got some more tips and pointers about the windows version of GVim. One of them is: &#034;Don&#039;t use windows.&#034; ;-) Some other tips might be added to my vim page in the near future (where &#039;near future&#039; in my dictionary is defined as &#039;somewhere between now and a vague and distant future).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.electricmonk.nl/log/2004/07/02/windows-gvim-ftp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux IDE&#039;s</title>
		<link>http://www.electricmonk.nl/log/2004/03/27/linux-ide-s/</link>
		<comments>http://www.electricmonk.nl/log/2004/03/27/linux-ide-s/#comments</comments>
		<pubDate>Sat, 27 Mar 2004 17:18:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[opinion]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Lately I&#039;ve been hearing all kinds of people say &#034;Linux doesn&#039;t have a decent IDE&#034;. For those that don&#039;t know: an IDE is an Integrated Development Evironment, which means that you get a tool that includes all kinds of other tools with which you can easily develop programs. It&#039;s kind of like a mix between [...]]]></description>
				<content:encoded><![CDATA[<p>Lately I&#039;ve been hearing all kinds of people say &#034;Linux doesn&#039;t have a decent IDE&#034;. For those that don&#039;t know: an IDE is an Integrated Development Evironment, which means that you get a tool that includes all kinds of other tools with which you can easily develop programs. It&#039;s kind of like a mix between an editor, debugger, compiler, etc. Most of the time these users also mean that Linux doesn&#039;t have a decent GUI builder also known as a Rapid Application Development tool. They want stuff like Delphi, Visual C/C++ builder, Java builder or some other clickety-click &#039;programming&#039; enviroment. And they&#039;re right, Linux doesn&#039;t have one. And that&#039;s a Good Thing.</p>
<p>Why is that a Good Thing? Because programmers are lazy. Now, usually that&#039;s a good thing. A lazy programmer is a good programmer because they don&#039;t want to do stuff twice. This forces them to create all kinds of neat stuff which they can re-use later on. On the other side, being a lazy programmer is a Bad Thing. Some programmers don&#039;t want to think about design or underlaying structure of programs. They just want something that works. </p>
<p>So, what does that have to do with RAD (Rapid Application Developement) tools? A lot. Today&#039;s RAD tools like Java Builder or Visual .NET allow you to click around a bit and put together a nice interface. Then you double click some button and add some code to load some things into some list somewhere. Double click another button and make it write the information in the list to a file. You&#039;re happily clicking all over the place, adding some code here and some code there, but you&#039;ve missed a very important thing. You&#039;re mixing the logic of your program with the interface! In expensive manager-speak: You&#039;re mixing Business Logic with Presentation Logic. Ouch, that&#039;s a very bad thing. </p>
<p>One of the most important (and incidentelly one of the least tought lesson in IT educations) leasons in programming is: Low coupling! What?! Low coupling! Let me explain by quoting my favorite piece of programming-related writing, The TAO of programming:</p>
<p><i>&#034;A program should be light and agile, its subroutines connected like a string of pearls.&#034;</i> &#8212; TAO of programming.</p>
<p>The pearls are your Business Logic. The string is the interface. It&#039;s as simple as that. One pearl for loading a list of data, one pearl for the list (not the list you see on-screen but the list in memory) itself, one pearl for saving, etc. The user interface is the string which connects the pearls. From the load button, which calls the load pearl to the list you see on-screen which calls the list pearl.</p>
<p>Suppose you&#039;ve mixed the business logic of saving the list into the save button. What if you want to extend your program so it can be controlled remotely via the network? You would have to move the logic of saving the list to a seperate function and have the save button and the remote save method both call that function. In the end, you are still decoupling your user interface and business logic. So why not start out with low coupling in the first place?</p>
<p>Of course it&#039;s perfectelly possible to write low coupled applications in Rapid Application Development tools, but they make it sooo easy too just add the business logic into the user interface. I once said to a proffesional programmer: &#034;Then you add a function there to do this and that&#034; and he replied: &#034;Uhm, where&#039;s the button for adding a function?&#034;. Excuse me?</p>
<p>Most good open source developers know about low coupling. They also know about the power of the current tools for developing programs under Unix. They know that NO RAD tool can beat the development power of Vim or Emacs or some other advanced editor. Want to compile stuff from your editor? Vim does that. Debugging? Vim does that too. Advanced Unix editors do all of the stuff an &#039;IDE&#039; can do and much much more. Except for designing an interfacei by dragging buttons onto some window. And that&#039;s just the way most developers like it. That&#039;s probably why there aren&#039;t any RAD tools for Linux like there are for Windows.</p>
<p>And besides; coding your interface from scratch isn&#039;t that hard to do at all. And because you have to actually assemble the interface yourself, you get a much better understanding of the underlaying code. Extending your program will become easier and faster. No more copy-pasting of code from all over the place and ending up with the same piece of code in four places all over your program. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.electricmonk.nl/log/2004/03/27/linux-ide-s/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Firefox and Vim, they&#039;re back</title>
		<link>http://www.electricmonk.nl/log/2004/03/11/firefox-and-vim-they-re-back/</link>
		<comments>http://www.electricmonk.nl/log/2004/03/11/firefox-and-vim-they-re-back/#comments</comments>
		<pubDate>Thu, 11 Mar 2004 18:16:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[vim]]></category>
		<category><![CDATA[website]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[I&#039;ve transfered and refactored the old Vim and Firefox pages from my old homepage over to this place. They&#039;re here: Firefox and Vim.]]></description>
				<content:encoded><![CDATA[<p>I&#039;ve transfered and refactored the old Vim and Firefox pages from my old homepage over to this place. They&#039;re here: <a href="?page=Firefox">Firefox</a> and <a href="?page=Vim">Vim</a>. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.electricmonk.nl/log/2004/03/11/firefox-and-vim-they-re-back/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vim section</title>
		<link>http://www.electricmonk.nl/log/2003/07/23/vim-section/</link>
		<comments>http://www.electricmonk.nl/log/2003/07/23/vim-section/#comments</comments>
		<pubDate>Tue, 22 Jul 2003 22:26:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[vim]]></category>
		<category><![CDATA[website]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Added a Vim section.]]></description>
				<content:encoded><![CDATA[<p>Added a <a class="news" href="index.php?p=Linux/Vim">Vim</a> section.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.electricmonk.nl/log/2003/07/23/vim-section/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
