<?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>Erlends hjem i skyene &#187; gsoc</title>
	<atom:link href="http://hamberg.no/erlend/category/gsoc/feed/" rel="self" type="application/rss+xml" />
	<link>http://hamberg.no/erlend</link>
	<description>meta = &#38;meta;</description>
	<lastBuildDate>Tue, 17 Jan 2012 18:24:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>The Vi input mode for Kate is “done”</title>
		<link>http://hamberg.no/erlend/2008/11/24/the-vi-input-mode-for-kate-is-done/</link>
		<comments>http://hamberg.no/erlend/2008/11/24/the-vi-input-mode-for-kate-is-done/#comments</comments>
		<pubDate>Mon, 24 Nov 2008 20:08:10 +0000</pubDate>
		<dc:creator>Erlend</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[gsoc]]></category>
		<category><![CDATA[kate]]></category>
		<category><![CDATA[kde]]></category>

		<guid isPermaLink="false">http://hamberg.no/erlend/?p=800</guid>
		<description><![CDATA[Please see http://kate-editor.org/kate-vi-mode/ for an updated overview of the Kate VI mode project.
I just marked the Vi input mode ("V.I.M."? :) ) for the Kate kpart as done in the feature plan for KDE 4.2. It feels a bit weird to mark it as done, though, as there are tonnes of things I want ...]]></description>
			<content:encoded><![CDATA[<p class="wp-flattr-button"></p><div style="border: 1px solid black; margin: 0pt auto -1px; padding: 1em; background-color: #eeeeee; width: 50%; text-align: center;">Please see <a href="http://kate-editor.org/kate-vi-mode/">http://kate-editor.org/kate-vi-mode/</a> for an updated overview of the Kate VI mode project.</div>
<p>I just marked the Vi input mode (&#8220;V.I.M.&#8221;? <img src='http://hamberg.no/erlend/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ) for the Kate kpart as done in <a href="http://techbase.kde.org/Schedules/KDE4/4.2_Feature_Plan">the feature plan for KDE 4.2</a>. It feels a bit weird to mark it as done, though, as there are tonnes of things I want to implement after KDE 4.2.</p>
<p>As you may know this started as a <a href="http://code.google.com/soc/2008/kde/appinfo.html?csaid=370F903C96FF67D1">Google Summer of Code project</a> and I&#8217;m quite happy with the way things have turned out. Since we are in feature freeze I would like to present the features that will be in the Vi input mode for the Kate part in KDE 4.2.</p>
<div id="attachment_789" class="wp-caption aligncenter" style="width: 310px"><a href="http://folk.ntnu.no/hamberg/images/vimode1.png"><img class="size-medium wp-image-789" title="vimode1" src="http://hamberg.no/erlend/wp-content/uploads/2008/11/vimode1-300x237.png" alt="Kate Vi Input Mode in action" width="300" height="237" /></a><p class="wp-caption-text">Kate Vi Input Mode in action – visual mode selection</p></div>
<p><span id="more-800"></span></p>
<p>The Vi input mode can be used as the default editing mode by selecting it in Settings → Configure Kate&#8230; → Editing → Vi Input Mode and/or toggled any time by selecting View → Vi Input Mode. Nifty, eh?</p>
<p><span style="color: #993300;"><em>[Edit: this has been moved to the "Edit" menu.]</em></span></p>
<p style="text-align: center;">
<div id="attachment_790" class="wp-caption aligncenter" style="width: 378px"><a href="http://folk.ntnu.no/hamberg/images/vimode2.png"><img class="size-full wp-image-790" title="vimode2" src="http://hamberg.no/erlend/wp-content/uploads/2008/11/vimode2.png" alt="Vi Input Mode toggle" width="368" height="211" /></a><p class="wp-caption-text">Vi Input Mode toggle</p></div>
<p>Thanks to <a href="http://dimsuz.wordpress.com/">Dmitry Suzdalev</a> there is also an (optional) vi mode status bar. This shows commands while they are being entered, output from commands like &#8216;ga&#8217; (the character code of the character under the cursor) and of coruse the current mode.</p>
<div id="attachment_791" class="wp-caption aligncenter" style="width: 310px"><a href="http://folk.ntnu.no/hamberg/images/vimode1.png"><img class="size-medium wp-image-791" title="vimode3" src="http://hamberg.no/erlend/wp-content/uploads/2008/11/vimode3-300x31.png" alt="Kate Vi Input mode status bar" width="300" height="31" /></a><p class="wp-caption-text">Kate Vi Input mode status bar – &quot;a4d has been pressed</p></div>
<p>Quite a few of the vi commands crash with &#8220;regular&#8221; Kate shortcuts, like <strong>ctrl+b</strong>/<strong>ctrl+f</strong> for scrolling up/down one page. If you want to use these as vi commands, you can choose to let Vi commands override Kate shortcuts in the Vi input mode settings. As you might know, <strong>ctrl+r</strong> is used for &#8220;redo&#8221; in vim. To make it possible to redo for people not wanting to override Kate&#8217;s shortcuts <strong>shift+u</strong> is also used for undo. (This key press is used for &#8220;undoing all latest changes on one line&#8221; in Vim.)</p>
<p>I have also added support for ranges to Kate&#8217;s command line commands. So you can do <strong>1,10kill-line</strong> (&#8220;kill-line&#8221; is a Kate command, not a vi(m) command). This also works for the substitute command which is already a part of Kate: <strong>s/foo/bar/g</strong>. This is something whose potential hopefully will be fully exploited in the future when more commands are added.</p>
<p>For now, the only &#8220;ex commands&#8221; supported are <strong>:w</strong> and <strong>:hardcopy</strong>. Part of the reason not more commands are supported is because I need to figure out how to send requests from the editor part to the hosting application requesting to e.g. quit or close a buffer. I also want to be able to add several forms of commands like <strong>:d[elete]</strong>, <strong>:w[rite]</strong> and so on. (But only the long form should be shown in the autocompletion to not clutter the dropdown with confusing one-letter commands.)</p>
<p>But, enough of what&#8217;s not supported! Here is the list of the commands that actually made it into the Vi Input Mode before the feature freeze:</p>
<h3>Supported normal/visual mode commands</h3>
<table border="0">
<tbody>
<tr>
<td style="width: 100px;"><strong>a</strong></td>
<td>commandEnterInsertModeAppend</td>
</tr>
<tr>
<td><strong>A</strong></td>
<td>commandEnterInsertModeAppendEOL</td>
</tr>
<tr>
<td><strong>i</strong></td>
<td>commandEnterInsertMode</td>
</tr>
<tr>
<td><strong>v</strong></td>
<td>commandEnterVisualMode</td>
</tr>
<tr>
<td><strong>V</strong></td>
<td>commandEnterVisualLineMode</td>
</tr>
<tr>
<td><strong>o</strong></td>
<td>commandOpenNewLineUnder</td>
</tr>
<tr>
<td><strong>O</strong></td>
<td>commandOpenNewLineOver</td>
</tr>
<tr>
<td><strong>J</strong></td>
<td>commandJoinLines</td>
</tr>
<tr>
<td><strong>c</strong></td>
<td>commandChange</td>
</tr>
<tr>
<td><strong>C</strong></td>
<td>commandChangeToEOL</td>
</tr>
<tr>
<td><strong>cc</strong></td>
<td>commandChangeLine</td>
</tr>
<tr>
<td><strong>s</strong></td>
<td>commandSubstituteChar</td>
</tr>
<tr>
<td><strong>S</strong></td>
<td>commandSubstituteLine</td>
</tr>
<tr>
<td><strong>dd</strong></td>
<td>commandDeleteLine</td>
</tr>
<tr>
<td><strong>d</strong></td>
<td>commandDelete</td>
</tr>
<tr>
<td><strong>D</strong></td>
<td>commandDeleteToEOL</td>
</tr>
<tr>
<td><strong>x</strong></td>
<td>commandDeleteChar</td>
</tr>
<tr>
<td><strong>X</strong></td>
<td>commandDeleteCharBackward</td>
</tr>
<tr>
<td><strong>gu</strong></td>
<td>commandMakeLowercase</td>
</tr>
<tr>
<td><strong>guu</strong></td>
<td>commandMakeLowercaseLine</td>
</tr>
<tr>
<td><strong>gU</strong></td>
<td>commandMakeUppercase</td>
</tr>
<tr>
<td><strong>gUU</strong></td>
<td>commandMakeUppercaseLine</td>
</tr>
<tr>
<td><strong>y</strong></td>
<td>commandYank</td>
</tr>
<tr>
<td><strong>yy</strong></td>
<td>commandYankLine</td>
</tr>
<tr>
<td><strong>Y</strong></td>
<td>commandYankToEOL</td>
</tr>
<tr>
<td><strong>p</strong></td>
<td>commandPaste</td>
</tr>
<tr>
<td><strong>P</strong></td>
<td>commandPasteBefore</td>
</tr>
<tr>
<td><strong>r</strong></td>
<td>commandReplaceCharacter</td>
</tr>
<tr>
<td><strong>:</strong></td>
<td>commandSwitchToCmdLine</td>
</tr>
<tr>
<td><strong>/</strong></td>
<td>commandSearch</td>
</tr>
<tr>
<td><strong>u</strong></td>
<td>commandUndo)</td>
</tr>
<tr>
<td><strong>&lt;c-r&gt;</strong></td>
<td>commandRedo</td>
</tr>
<tr>
<td><strong>U</strong></td>
<td>commandRedo</td>
</tr>
<tr>
<td><strong>m.</strong></td>
<td>commandSetMark</td>
</tr>
<tr>
<td><strong>n</strong></td>
<td>commandFindNext</td>
</tr>
<tr>
<td><strong>N</strong></td>
<td>commandFindPrev</td>
</tr>
<tr>
<td><strong>&gt;&gt;</strong></td>
<td>commandIndentLine</td>
</tr>
<tr>
<td><strong>&lt;&lt;</strong></td>
<td>commandUnindentLine</td>
</tr>
<tr>
<td><strong>&gt;</strong></td>
<td>commandIndentLines</td>
</tr>
<tr>
<td><strong>&lt;</strong></td>
<td>commandUnindentLines</td>
</tr>
<tr>
<td><strong>&lt;c-f&gt;</strong></td>
<td>commandScrollPageDown</td>
</tr>
<tr>
<td><strong>&lt;c-b&gt;</strong></td>
<td>commandScrollPageUp</td>
</tr>
<tr>
<td><strong>ga</strong></td>
<td>commandPrintCharacterCode</td>
</tr>
<tr>
<td><strong>.</strong></td>
<td>commandRepeatLastChange</td>
</tr>
<tr>
<td><strong>==</strong></td>
<td>commandAlignLine</td>
</tr>
<tr>
<td><strong>=</strong></td>
<td>commandAlignLines</td>
</tr>
<tr>
<td><strong>~</strong></td>
<td>commandChangeCase</td>
</tr>
</tbody>
</table>
<h3>Supported motions</h3>
<table border="0">
<tbody>
<tr>
<td style="width: 100px;"><strong>h</strong></td>
<td>motionLeft</td>
</tr>
<tr>
<td><strong>&lt;left&gt;</strong></td>
<td>motionLeft</td>
</tr>
<tr>
<td><strong>&lt;backspace&gt;</strong></td>
<td>motionLeft</td>
</tr>
<tr>
<td><strong>j</strong></td>
<td>motionDown</td>
</tr>
<tr>
<td><strong>&lt;down&gt;</strong></td>
<td>motionDown</td>
</tr>
<tr>
<td><strong>k</strong></td>
<td>motionUp</td>
</tr>
<tr>
<td><strong>&lt;up&gt;</strong></td>
<td>motionUp</td>
</tr>
<tr>
<td><strong>l</strong></td>
<td>motionRight</td>
</tr>
<tr>
<td><strong>&lt;right&gt;</strong></td>
<td>motionRight</td>
</tr>
<tr>
<td><strong>&lt;space&gt;</strong></td>
<td>motionRight</td>
</tr>
<tr>
<td><strong>$</strong></td>
<td>motionToEOL</td>
</tr>
<tr>
<td><strong>&lt;end&gt;</strong></td>
<td>motionToEOL</td>
</tr>
<tr>
<td><strong>0</strong></td>
<td>motionToColumn0</td>
</tr>
<tr>
<td><strong>&lt;home&gt;</strong></td>
<td>motionToColumn0</td>
</tr>
<tr>
<td><strong>^</strong></td>
<td>motionToFirstCharacterOfLine</td>
</tr>
<tr>
<td><strong>f</strong></td>
<td>motionFindChar</td>
</tr>
<tr>
<td><strong>F</strong></td>
<td>motionFindCharBackward</td>
</tr>
<tr>
<td><strong>t</strong></td>
<td>motionToChar</td>
</tr>
<tr>
<td><strong>T</strong></td>
<td>motionToCharBackward</td>
</tr>
<tr>
<td><strong>gg</strong></td>
<td>motionToLineFirst</td>
</tr>
<tr>
<td><strong>G</strong></td>
<td>motionToLineLast</td>
</tr>
<tr>
<td><strong>w</strong></td>
<td>motionWordForward</td>
</tr>
<tr>
<td><strong>W</strong></td>
<td>motionWORDForward</td>
</tr>
<tr>
<td><strong>b</strong></td>
<td>motionWordBackward</td>
</tr>
<tr>
<td><strong>B</strong></td>
<td>motionWORDBackward</td>
</tr>
<tr>
<td><strong>e</strong></td>
<td>motionToEndOfWord</td>
</tr>
<tr>
<td><strong>E</strong></td>
<td>motionToEndOfWORD</td>
</tr>
<tr>
<td><strong>ge</strong></td>
<td>motionToEndOfPrevWord</td>
</tr>
<tr>
<td><strong>gE</strong></td>
<td>motionToEndOfPrevWORD</td>
</tr>
<tr>
<td><strong>|</strong></td>
<td>motionToScreenColumn</td>
</tr>
<tr>
<td><strong>%</strong></td>
<td>motionToMatchingItem</td>
</tr>
<tr>
<td><strong>`</strong></td>
<td>motionToMark</td>
</tr>
<tr>
<td><strong>&#8216;</strong></td>
<td>motionToMarkLine</td>
</tr>
<tr>
<td><strong>[[</strong></td>
<td>motionToPreviousBraceBlockStart</td>
</tr>
<tr>
<td><strong>]]</strong></td>
<td>motionToNextBraceBlockStart</td>
</tr>
<tr>
<td><strong>[]</strong></td>
<td>motionToPreviousBraceBlockEnd</td>
</tr>
<tr>
<td><strong>][</strong></td>
<td>motionToNextBraceBlockEnd</td>
</tr>
</tbody>
</table>
<h3>Supported text objects</h3>
<table border="0">
<tbody>
<tr>
<td style="width: 100px;"><strong>iw</strong></td>
<td>textObjectInnerWord</td>
</tr>
<tr>
<td><strong>aw</strong></td>
<td>textObjectAWord</td>
</tr>
<tr>
<td><strong>i&#8221;</strong></td>
<td>textObjectInnerQuoteDouble</td>
</tr>
<tr>
<td><strong>a&#8221;</strong></td>
<td>textObjectAQuoteDouble</td>
</tr>
<tr>
<td><strong>i&#8217;</strong></td>
<td>textObjectInnerQuoteSingle</td>
</tr>
<tr>
<td><strong>a&#8217;</strong></td>
<td>textObjectAQuoteSingle</td>
</tr>
<tr>
<td><strong>i(</strong></td>
<td>textObjectInnerParen</td>
</tr>
<tr>
<td><strong>a(</strong></td>
<td>textObjectAParen</td>
</tr>
<tr>
<td><strong>i[</strong></td>
<td>textObjectInnerBracket</td>
</tr>
<tr>
<td><strong>a[</strong></td>
<td>textObjectABracket</td>
</tr>
</tbody>
</table>
<h3>Supported insert mode commands</h3>
<table border="0">
<tbody>
<tr>
<td style="width: 100px;"><strong>&lt;c-d&gt;</strong></td>
<td>commandUnindent</td>
</tr>
<tr>
<td><strong>&lt;c-t&gt;</strong></td>
<td>commandIndent</td>
</tr>
<tr>
<td><strong>&lt;c-e&gt;</strong></td>
<td>commandInsertFromBelow</td>
</tr>
<tr>
<td><strong>&lt;c-y&gt;</strong></td>
<td>commandInsertFromAbove</td>
</tr>
<tr>
<td><strong>&lt;c-w&gt;</strong></td>
<td>commandDeleteWord</td>
</tr>
<tr>
<td><strong>&lt;c-home&gt;</strong></td>
<td>commandToFirstCharacterInFile</td>
</tr>
</tbody>
</table>
<h3>The missing pieces</h3>
<p>The aim of Kate&#8217;s Vi input mode is—as I have said before—is not to replace vim&#8217;s functionality, but to have a editor kpart that is comfortable to use for us Vi(m)-heads. There are however some things I feel is still missing and would like to implement after KDE 4.2 (some of them mentioned above):</p>
<ul>
<li><strong>Proper command mode (&#8220;ex commands&#8221;) support</strong> (very few commands are supported as of now)</li>
<li><strong>Saving of registers and marks between editing sessions</strong></li>
<li><strong>&#8220;Replace mode&#8221;</strong> (shift+r in vim)</li>
<li><strong>Integrating the Vi input mode marks with Kate&#8217;s bookmarks system</strong></li>
<li><strong>Making it possible to use registers in ranges and add support for the the &#8216;&lt;&#8217; and &#8216;&gt;&#8217; registers</strong></li>
</ul>
<h3>Please test!</h3>
<p>I will be studying for my exams until 19 December so I won&#8217;t have much time for coding, but I would still like people to test the Vi Input Mode and report bugs so I have a better chance of fixing them before the end of January and the 4.2 release.</p>
]]></content:encoded>
			<wfw:commentRss>http://hamberg.no/erlend/2008/11/24/the-vi-input-mode-for-kate-is-done/feed/</wfw:commentRss>
		<slash:comments>68</slash:comments>
		</item>
		<item>
		<title>GSoC is over: The state of Kate&#8217;s Vi input mode</title>
		<link>http://hamberg.no/erlend/2008/08/21/gsoc-is-done-the-state-of-kates-vi-input-mode/</link>
		<comments>http://hamberg.no/erlend/2008/08/21/gsoc-is-done-the-state-of-kates-vi-input-mode/#comments</comments>
		<pubDate>Thu, 21 Aug 2008 17:24:35 +0000</pubDate>
		<dc:creator>Erlend</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[gsoc]]></category>
		<category><![CDATA[kate]]></category>
		<category><![CDATA[kde]]></category>

		<guid isPermaLink="false">http://hamberg.no/erlend/?p=660</guid>
		<description><![CDATA[The Google summer of code programme’s coding part officially ended this Monday. That won’t be the last you will hear from me, though. Kate's vi input mode has turned out to be quite nice, and there are lots of improvements I want to do in the coming months. The biggest news are a visual ...]]></description>
			<content:encoded><![CDATA[<p class="wp-flattr-button"></p><p>The Google summer of code programme’s coding part officially ended this Monday. That won’t be the last you will hear from me, though. Kate&#8217;s vi input mode has turned out to be quite nice, and there are lots of improvements I want to do in the coming months. The biggest news are a visual mode + visual line wise mode. Visual mode is one of those things that really make vim stand out from all of the vi clones, and having support for it makes Kate&#8217;s vi input mode it much more usable for me.<span id="more-660"></span></p>
<p>There are also lots of new commands and support for setting and jumping to marks. These are not saved between sessions yet, though. Overall, it’s already quite usable, even if it still has its small quirks and bugs here and there. This will definitely better quite soon as I use it quite extensively myself, and fix bugs as I find them.</p>
<p>A really nice feature is that one can quickl<span style="color: #000000;">y toggle the vi input mode on an</span>d off by using the view menu or a short cut (default is ctrl+meta+v).</p>
<p>The big thing left to do is to enchance Kate&#8217;s built-in command line. I want to add support for the most command vi commands and make it support ranges, setting of options, etc. The current command line implementation isn’t really suited for this, so it probably needs to be modified quite a bit. Hopefully it will eventually be possible to send commands to the app hosting the katepart too. Asking it to quit, close a buffer, etc. Right now the only command supported is <strong>:w</strong>. <img src='http://hamberg.no/erlend/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>I am very satified with what I accomplished during GSoC. I had to change some of my plans underway, mostly due to actually using my work, and seeing which features I missed the most. GSoC was a nice start, but there are still lots of things I want to do. <img src='http://hamberg.no/erlend/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://hamberg.no/erlend/2008/08/21/gsoc-is-done-the-state-of-kates-vi-input-mode/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>GSoC 2008: Vi input mode for the Kate kpart</title>
		<link>http://hamberg.no/erlend/2008/06/27/gsoc-2008-vi-input-mode-for-the-kate-kpart/</link>
		<comments>http://hamberg.no/erlend/2008/06/27/gsoc-2008-vi-input-mode-for-the-kate-kpart/#comments</comments>
		<pubDate>Fri, 27 Jun 2008 10:40:20 +0000</pubDate>
		<dc:creator>Erlend</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[gsoc]]></category>
		<category><![CDATA[kate]]></category>
		<category><![CDATA[kde]]></category>

		<guid isPermaLink="false">http://hamberg.no/erlend/?p=664</guid>
		<description><![CDATA[I’m one of the lucky students doing a Google Summer of Code project for KDE, and I would like to introduce my project.  I’m making a vi-like, modal editing mode for the Kate kpart. I’m doing this because many people—me included—find using a vi-like editor much more efficient and pleasant than using a ...]]></description>
			<content:encoded><![CDATA[<p class="wp-flattr-button"></p><p>I’m one of the lucky students doing a Google Summer of Code project for KDE, and I would like to introduce my project.  I’m making a vi-like, modal editing mode for the Kate kpart. I’m doing this because many people—me included—find using a vi-like editor much more efficient and pleasant than using a non-modal editor. Especially for editing code. This will of course be an optional mode, and if you don’t want to use it, you will never notice it. This should be obvious, but I want to mention it because I have already gotten a reaction from a Kate user who were frightened to death when he heard the word “vi” and feared that I will destroy his beloved Kate. Fear not! <img src='http://hamberg.no/erlend/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><span id="more-664"></span>My reference vi implementation is Vim, which is superior to the original vi in many ways. Especially <a title="Vim: Text objects" href="http://irc-unix.net/goto/go.php?link=http://vimdoc.sourceforge.net/htmldoc/usr_04.html#04.8" target="_blank">text objects</a> is a brilliant addition and will be supported by Kate’s vi input mode.</p>
<p>As part of this I will also improve Kate’s command line and its commands, which will also be beneficial for Kate user’s who won’t use the vi input mode.</p>
<p>By building on Kate’s proven foundation it hasn’t been too hard to get things up and running pretty fast. I’m still working on the foundation for the vi commands handling, but it’s already usable (to some extent) for me, since I know its limitations and how to not make it crash. <img src='http://hamberg.no/erlend/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /><br />
I have been eating my own dog code for a week now, which has been frustrating some times, but getting better every day. Especially support for marks (”anchors” in a file one can easily set and jump to) made my life easier.</p>
<p>Working with the Kate source code has generally been a very pleasant experience, and the code lines changed in the Kate core to tie in the vi input mode can almost be counted on one hand.</p>
<p>What needs to be done next is to make it possible to use ctrl/alt/meta commands with my command framework. There are lots of improvements and clean-up that needs be done with the implemented commands/motions/text-objects code as well, but this will have to wait until my current framework has proven its ability to cope with all scenarios.</p>
<p>Visual mode is also to-do, but I should be able to re-use most of the motions/text-objects code from the normal mode code.</p>
<p>The really exciting part will be when I have to figure out how to handle Vim’s ctrl+key commands. I have a sneaking suspicion that commands like ctrl+n, ctrl+p, ctrl+w, etc. will clash with other actions in the programs using the Kate kpart <img src='http://hamberg.no/erlend/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /><br />
My thoughts on this for now is that these actions shouldn’t override the host program’s action by default, but users who don’t mind the vi input mode eating their keypresses should be able to use these Vim commands.</p>
<p>Oh, and I almost forgot:</p>
<p><strong>Frequently asked question:</strong></p>
<p><strong>Q</strong>: Wow, will I be able to use a vi-like editor in Kdevelop?!<br />
<strong>A</strong>: Yes, that should be possible, and is one of my most motivating goals for doing this. <img src='http://hamberg.no/erlend/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><strong>Asked questions:</strong></p>
<p><strong>Q</strong>: Will you support vim scripts and loading of my vimrc file?<br />
<strong>A</strong>: Vim scripts: probably not. This would be a huge effort, and Kate’s scripting engine is very capable and is being improved continually. I won’t stop anyone from doing it, though. <img src='http://hamberg.no/erlend/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /><br />
I plan to use vim-compatible names for commands and options for the command line mode, as most of them are quite good names anyway, at least in their long form. Maybe it will be possible to load a vimrc and use the supported options in the future…</p>
<p><strong>Q</strong>: Will you implement 100% of Vim’s functionality?<br />
<strong>A</strong>: Probably not. Certainly not for my GSoC project. Vi is 32 years old…  The aim is not replace Vim, the aim is to have an editor kpart for us who like to use a modal, vi-like editor. Simple as that.</p>
<p><strong>Q</strong>: Will it be easy to extend this beyond the GSoC project?<br />
<strong>A</strong>: Yes, it will be easy to add new commands in the future.</p>
]]></content:encoded>
			<wfw:commentRss>http://hamberg.no/erlend/2008/06/27/gsoc-2008-vi-input-mode-for-the-kate-kpart/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

