<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-31028637</id><updated>2011-09-09T13:19:03.352+01:00</updated><category term='couchdb'/><title type='text'>Slippery Snippets</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://slipperysnippets.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://slipperysnippets.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Felix</name><uri>http://www.blogger.com/profile/17528610335893314119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>42</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-31028637.post-4313867396291202129</id><published>2010-12-12T19:09:00.001Z</published><updated>2010-12-12T19:09:22.459Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='couchdb'/><title type='text'>Relaxing with CouchDB</title><content type='html'>&lt;p&gt;I’ve been looking for an excuse to use &lt;a href="http://couchdb.apache.org/"&gt;CouchDB&lt;/a&gt; for a while. I forget where or when I first heard of it but I've been hooked on its feature set for some time now. Unfortunately I’ve not been able to think of a good app to write or I’ve been unable to fit my app into the CouchDB way of thinking.&lt;/p&gt;  &lt;p&gt;Last month, however, I got pulled onto a piece of work where some sort of easy to use, replicating, eventually consistent application would have been really useful. So I decided that this would be the perfect opportunity to start a Couch app. But then I got stuck. I downloaded CouchApp, &lt;a href="http://vimeo.com/9847214"&gt;watched&lt;/a&gt; a &lt;a href="http://www.youtube.com/watch?v=Xk5gaUURdJI"&gt;couple&lt;/a&gt; of Evently screencasts and sat there repeating “CouchDB is relaxed. CouchDB is relaxed”. Couch sat there chilling out and I just got more stressed. So I’ve decided to start simple and build up a good base of fundamentals before trying the harder stuff.&lt;/p&gt;  &lt;p&gt;So here is (I hope) a few posts about my first steps with Couch and how I got to the point where I started to relax a little.&lt;/p&gt;  &lt;h1&gt;Installation&lt;/h1&gt;  &lt;p&gt;Baby steps first. I’ve just rebuilt my work laptop. I’m now running Windows 7 with an Ubuntu VM. I want to make sure I use the VM more, so I decided to run Couch from there and connect to it over a host only network. Setting up the VMs network interfaces is left as an exercise to the reader but let’s do a simple walkthrough of the installation under Ubuntu. The latest version of Couch is 1.0.1. Let’s see what’s in the repos first:&lt;/p&gt;  &lt;pre style="overflow: scroll" class="prettyprint"&gt;me@ubuntu:~$ apt-cache search couchdb&lt;br /&gt;&lt;strong&gt;couchdb-bin - RESTful document oriented database, programs&lt;/strong&gt;&lt;br /&gt;desktopcouch - A Desktop CouchDB instance&lt;br /&gt;evolution-couchdb - Evolution support for CouchDB databases&lt;br /&gt;libcouchdb-glib-1.0-2 - GLib-based API for CouchDB&lt;br /&gt;libcouchdb-glib-dev - Development files for GLib-based API for CouchDB&lt;br /&gt;libcouchdb-glib-doc - GLib-based API for CouchDB&lt;br /&gt;libdesktopcouch-glib-1.0-2 - Glib-based API for Desktopcouch&lt;br /&gt;libdesktopcouch-glib-dev - Development files for Glib-based API for Desktopcouch&lt;br /&gt;python-couchdb - library for working with Apache CouchDB&lt;br /&gt;python-desktopcouch-records - Transitional package, desktop CouchDB Records API&lt;br /&gt;&lt;strong&gt;couchdb - RESTful document oriented database, system DB&lt;/strong&gt;&lt;br /&gt;desktopcouch-tools - Desktop CouchDB tools&lt;br /&gt;gir1.0-couchdb-glib-1.0 - GLib-based API for CouchDB&lt;br /&gt;gir1.0-desktopcouch-glib-1.0 - Glib-based API for Desktopcouch&lt;br /&gt;libmoneta-ruby - Ruby interface to multiple key/value stores&lt;br /&gt;libmoneta-ruby1.8 - Ruby interface to multiple key/value stores&lt;br /&gt;python-desktopcouch - Transitional package, Python Desktop CouchDB&lt;br /&gt;python-restkit - HTTP resource kit for Python&lt;br /&gt;quickly-ubuntu-template - quickly ubuntu application template&lt;br /&gt;xul-ext-bindwood - Firefox bookmark syncing with desktop couchdb&lt;br /&gt;me@ubuntu:~$ &lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Two likely candidates. The second looks like the best option as I want to make sure that this runs on startup and can be accessed from Windows with minimal effort.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="overflow: scroll" class="prettyprint"&gt;me@ubuntu:~$ apt-cache show couchdb&lt;br /&gt;Package: couchdb&lt;br /&gt;Priority: optional&lt;br /&gt;Section: universe/misc&lt;br /&gt;Installed-Size: 84&lt;br /&gt;Maintainer: Ubuntu Developers &amp;lt;ubuntu-devel-discuss@lists.ubuntu.com&amp;gt;&lt;br /&gt;Original-Maintainer: Erlang Packaging Team &amp;lt;pkg-erlang-devel@lists.alioth.debian.org&amp;gt;&lt;br /&gt;Architecture: all&lt;br /&gt;&lt;strong&gt;Version: 1.0.1-0ubuntu3&lt;/strong&gt;&lt;br /&gt;Depends: couchdb-bin (&amp;gt;= 1.0.1-0ubuntu3)&lt;br /&gt;Filename: pool/universe/c/couchdb/couchdb_1.0.1-0ubuntu3_all.deb&lt;br /&gt;Size: 12814&lt;br /&gt;MD5sum: 12c56b05e323e9ef623379d139811c7e&lt;br /&gt;SHA1: 0c894c4d37bd2126a00be797a20ea60c1d44d051&lt;br /&gt;SHA256: 0572cad50d63d2576a404bba8b78636a604eb6899af3ab2738e65a6ff6e7a103&lt;br /&gt;Description: RESTful document oriented database, system DB&lt;br /&gt; Apache CouchDB is a distributed, fault-tolerant and schema-free&lt;br /&gt; document-oriented database accessible via a RESTful HTTP/JSON API. Among other&lt;br /&gt; features, it provides robust, incremental replication with bi-directional&lt;br /&gt; conflict detection and resolution, and is queryable and indexable using a&lt;br /&gt; table-oriented view engine with JavaScript acting as the default view&lt;br /&gt; definition language.&lt;br /&gt; .&lt;br /&gt; CouchDB is written in Erlang, but can be easily accessed from any environment&lt;br /&gt; that provides means to make HTTP requests. There are a multitude of third-party&lt;br /&gt; client libraries that make this even easier for a variety of programming&lt;br /&gt; languages and environments.&lt;br /&gt;Homepage: http://couchdb.apache.org/&lt;br /&gt;Bugs: https://bugs.launchpad.net/ubuntu/+filebug&lt;br /&gt;Origin: Ubuntu&lt;br /&gt;&lt;br /&gt;me@ubuntu:~$ &lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;1.0.1 in the repos? Perfect.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="overflow: scroll" class="prettyprint"&gt;me@ubuntu:~$ sudo aptitude install couchdb&lt;br /&gt;[sudo] password for me: &lt;br /&gt;Sorry, try again.&lt;br /&gt;[sudo] password for me: &lt;br /&gt;Sorry, try again.&lt;br /&gt;[sudo] password for me: &lt;br /&gt;No packages will be installed, upgraded, or removed.&lt;br /&gt;0 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded.&lt;br /&gt;Need to get 0B of archives. After unpacking 0B will be used.&lt;br /&gt;                                         &lt;br /&gt;me@ubuntu:~$ &lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;That’s a pretty useless bit of output, as I’ve already got it installed (plus you can see how bad I am at typing my password in) but you get the idea.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Now that Couch is installed we need to tweak the config to run on external interfaces. You’ll need to edit the /etc/couchdb/default.ini file and search for “bind_address”. I’ve changed mine to “0.0.0.0” which will listen on all interfaces. &lt;strong&gt;Don’t do this unless you want everyone on your network to be able to access your Couch instance.&lt;/strong&gt; Change it to the IP address of your host only adapter if you’re running on a VM.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Now let’s test whether things are running okay:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="overflow: scroll" class="prettyprint"&gt;[118]:&amp;gt; (New-Object System.Net.WebClient).DownloadString(&amp;quot;http://192.168.23.130:5984&amp;quot;)&lt;br /&gt;{&amp;quot;couchdb&amp;quot;:&amp;quot;Welcome&amp;quot;,&amp;quot;version&amp;quot;:&amp;quot;1.0.1&amp;quot;}&lt;br /&gt;&lt;br /&gt;C:\Users\Me&lt;br /&gt;[119]:&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Who needs Curl, eh? A quick browse to http://192.168.23.130:5984/_utils/ will confirm that Futon is up and running. It’s good practice to create a new user so that we don’t operate in admin party mode but I’m not going to.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;That’ll do for the first post. Next I’ll give an overview of the application I’m going to be working on and start working with CouchApp.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31028637-4313867396291202129?l=slipperysnippets.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slipperysnippets.blogspot.com/feeds/4313867396291202129/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31028637&amp;postID=4313867396291202129' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/4313867396291202129'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/4313867396291202129'/><link rel='alternate' type='text/html' href='http://slipperysnippets.blogspot.com/2010/12/relaxing-with-couchdb.html' title='Relaxing with CouchDB'/><author><name>Felix</name><uri>http://www.blogger.com/profile/17528610335893314119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31028637.post-1734823469222017657</id><published>2009-06-23T09:23:00.002+01:00</published><updated>2009-06-23T09:27:52.516+01:00</updated><title type='text'>Dead?</title><content type='html'>I ain't dead. I'm just resting.&lt;br /&gt;&lt;br /&gt;Just thought I'd let anyone who's still tracking this blog that there are some updates to the plugin in the svn repository on Google Code: &lt;a href="http://code.google.com/p/snippetsemu"&gt;http://code.google.com/p/snippetsemu&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I'm hoping to package these up into a release at some point in the (very) near future.&lt;br /&gt;&lt;br /&gt;Also, I'll be at EuroPython next week, so feel free to file bug reports in person if you're there as well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31028637-1734823469222017657?l=slipperysnippets.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slipperysnippets.blogspot.com/feeds/1734823469222017657/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31028637&amp;postID=1734823469222017657' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/1734823469222017657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/1734823469222017657'/><link rel='alternate' type='text/html' href='http://slipperysnippets.blogspot.com/2009/06/dead.html' title='Dead?'/><author><name>Felix</name><uri>http://www.blogger.com/profile/17528610335893314119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31028637.post-2345983959643977353</id><published>2008-02-25T19:00:00.002Z</published><updated>2008-02-25T19:08:28.392Z</updated><title type='text'>1.2.2</title><content type='html'>Spare time plus a working version of bzr-svn has meant that I've had a bit of time for bug fixing. 1.2.2 is therefore now on vim.org.&lt;br /&gt;&lt;br /&gt;One big change: the plugin is now separate from the bundles. At the moment they both live on the same page, as I don't think it's worth setting up a new page.&lt;br /&gt;&lt;br /&gt;Get downloading!&lt;br /&gt;&lt;br /&gt;P.S. Many thanks to everyone who's voted for the plugin. It's now sitting at number 24 out of 2149. Quite an achievement given what the first version looked like...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31028637-2345983959643977353?l=slipperysnippets.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slipperysnippets.blogspot.com/feeds/2345983959643977353/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31028637&amp;postID=2345983959643977353' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/2345983959643977353'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/2345983959643977353'/><link rel='alternate' type='text/html' href='http://slipperysnippets.blogspot.com/2008/02/122.html' title='1.2.2'/><author><name>Felix</name><uri>http://www.blogger.com/profile/17528610335893314119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31028637.post-5867804610944607717</id><published>2007-09-30T21:30:00.001+01:00</published><updated>2007-09-30T21:43:49.282+01:00</updated><title type='text'>The Usual Suspect</title><content type='html'>The usual problem has cropped up - line endings. A new version will be posted shortly. There also seems to be a problem with the version of Vimball which ships with the Windows version of Vim. Those viewing the file will have some nice folds to aid navigation around the file; unfortunately, under *nix the fold markers get added to the file name. Not very useful.&lt;br /&gt;&lt;br /&gt;An interesting point made in the comments:&lt;br /&gt;&lt;blockquote&gt;Your latest vimball has DOS line endings, and svn is still at the last version :(&lt;br /&gt;&lt;/blockquote&gt;The reason SVN is the last version is that bzr-svn was not able to push the latest changes up to Google Code. Now I'd like to point out that this is most likely my fault; I noticed that the author of bzr-svn linked to one of my posts about how the plugin didn't work under Windows. Just to clarify - this was due to my lack of effort more than anything else.&lt;br /&gt;&lt;br /&gt;I've also enjoyed using bzr and so I'm considering moving to a bzr hosting environment. I'm going to investigate Launchpad but I'd welcome any other suggestions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31028637-5867804610944607717?l=slipperysnippets.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slipperysnippets.blogspot.com/feeds/5867804610944607717/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31028637&amp;postID=5867804610944607717' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/5867804610944607717'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/5867804610944607717'/><link rel='alternate' type='text/html' href='http://slipperysnippets.blogspot.com/2007/09/usual-suspect.html' title='The Usual Suspect'/><author><name>Felix</name><uri>http://www.blogger.com/profile/17528610335893314119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31028637.post-8469549502506319995</id><published>2007-09-30T19:39:00.000+01:00</published><updated>2007-09-30T19:45:07.285+01:00</updated><title type='text'>1.2 just for you</title><content type='html'>Well Blogjet turned out to be a waste of time - its Blogger support is broken, so I can only post new stuff. Given my posting habits that seems like a waste of money, so no upgrading for me.&lt;br /&gt;&lt;br /&gt;Anyway - down to business. I've finally managed to release a new version of the plugin, so grab it form Vim.org: http://vim.sourceforge.net/scripts/script.php?script_id=1318&lt;br /&gt;&lt;br /&gt;There's a few new features - commands have autocomplete to help you browse the bundles. There are two new commands to help create new snippets and there's a load of bug fixes and bundle updates, so get downloading!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31028637-8469549502506319995?l=slipperysnippets.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slipperysnippets.blogspot.com/feeds/8469549502506319995/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31028637&amp;postID=8469549502506319995' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/8469549502506319995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/8469549502506319995'/><link rel='alternate' type='text/html' href='http://slipperysnippets.blogspot.com/2007/09/12-just-for-you.html' title='1.2 just for you'/><author><name>Felix</name><uri>http://www.blogger.com/profile/17528610335893314119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31028637.post-3885903267225161994</id><published>2007-09-10T20:56:00.001+01:00</published><updated>2007-09-10T20:56:43.911+01:00</updated><title type='text'>Testing BlogJet</title><content type='html'>&lt;p&gt;I have installed an interesting application - &lt;a href="http://blogjet.com/"&gt;BlogJet&lt;/a&gt;. It's a cool Windows client for my blog tool (as well as for other tools). Get your copy here: &lt;a href="http://blogjet.com/"&gt;http://blogjet.com&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;em&gt;"Computers are incredibly fast, accurate and stupid; humans are incredibly slow, inaccurate and brilliant; together they are powerful beyond imagination." -- Albert Einstein&lt;/em&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;It also presents you with this as the default test post, so I&amp;rsquo;ll help the Google rankings and let it get posted. Hopefully this should allow me to post a little more. I&amp;rsquo;ve tried typing up some posts in Vim, but I think that this will be a better solution. Let&amp;rsquo;s see, eh?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31028637-3885903267225161994?l=slipperysnippets.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slipperysnippets.blogspot.com/feeds/3885903267225161994/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31028637&amp;postID=3885903267225161994' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/3885903267225161994'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/3885903267225161994'/><link rel='alternate' type='text/html' href='http://slipperysnippets.blogspot.com/2007/09/testing-blogjet.html' title='Testing BlogJet'/><author><name>Felix</name><uri>http://www.blogger.com/profile/17528610335893314119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31028637.post-8733642280476826925</id><published>2007-07-26T14:08:00.000+01:00</published><updated>2007-07-27T09:32:17.550+01:00</updated><title type='text'>Wherefore art thou not working under Windows</title><content type='html'>Hello all.&lt;br /&gt;&lt;br /&gt;Still stuck in the Midlands, so posting and development have pretty much ground to a halt. I did manage to do a bit of hacking the other day, but I can't get &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;bzr&lt;/span&gt;-&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;svn&lt;/span&gt; working under Windows, so you'll have to wait until I'm next in Linux for the next push to trunk.&lt;br /&gt;&lt;br /&gt;Anyway, since my last post I've been playing around with &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;wxPython&lt;/span&gt; and &lt;a href="http://www.djangoproject.com/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;Django&lt;/span&gt;&lt;/a&gt;; in particular trying to use one to display the models from the other. During this I ran into another &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;Django&lt;/span&gt; bug (second one to stop me in my tracks) and some random behaviour which I didn't quite agree with.&lt;br /&gt;&lt;br /&gt;In a huff I decided to try out &lt;a href="http://pylonshq.com/"&gt;Pylons&lt;/a&gt; - mainly because because it plays well with &lt;a href="http://www.sqlalchemy.org/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;SqlAlchemy&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;It's hard work getting going with Pylons - documentation is nowhere near as complete as &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;Django's&lt;/span&gt; but if you're prepared to hunt through the source most things become apparent. The &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;IRC&lt;/span&gt; channel is very friendly as well, though you sometimes have to wait for America to wake up.&lt;br /&gt;&lt;br /&gt;Here's my handy Pylons tip for the day:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;pre&gt;&lt;br /&gt;   def screenshot(self, id):&lt;br /&gt;       i = model.Screenshot.get(id)&lt;br /&gt;       if i:&lt;br /&gt;           &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;im&lt;/span&gt; = Image.open(StringIO(i.image))&lt;br /&gt;           pylons.response.headers['Content-Type'] = "image/%s" % (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;im&lt;/span&gt;.format and im.format.lower() or '&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;bmp&lt;/span&gt;')&lt;br /&gt;           pylons.response.headers['Content-length'] = "%s" % &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;len&lt;/span&gt;(i.image)&lt;br /&gt;           if request.params.has_key('thumb') and request.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;params&lt;/span&gt;['thumb'] == "True":&lt;br /&gt;               &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;im&lt;/span&gt;.thumbnail(THUMB_SIZE, Image.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;ANTIALIAS&lt;/span&gt;)&lt;br /&gt;           w = &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;StringIO&lt;/span&gt;()&lt;br /&gt;           &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;im&lt;/span&gt;.save(w, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;im&lt;/span&gt;.format)&lt;br /&gt;           return &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;str&lt;/span&gt;(w.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;getvalue&lt;/span&gt;())&lt;br /&gt;       abort(404)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The above action pulls an image out of the database and serves it up. If the GET has thumb=True set then you'll get a thumbnail instead.&lt;br /&gt;&lt;br /&gt;I know that you're not supposed to serve images from the DB but, trust me, I have good reason for doing so.&lt;br /&gt;&lt;br /&gt;It also looks as though there are some issues when returning large images; it's been suggested that &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;FileApp&lt;/span&gt;.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;DataApp&lt;/span&gt; is the way forward.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31028637-8733642280476826925?l=slipperysnippets.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slipperysnippets.blogspot.com/feeds/8733642280476826925/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31028637&amp;postID=8733642280476826925' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/8733642280476826925'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/8733642280476826925'/><link rel='alternate' type='text/html' href='http://slipperysnippets.blogspot.com/2007/07/wherefore-art-thou-not-working-under.html' title='Wherefore art thou not working under Windows'/><author><name>Felix</name><uri>http://www.blogger.com/profile/17528610335893314119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31028637.post-3472431760314845922</id><published>2007-05-19T19:18:00.000+01:00</published><updated>2007-05-19T19:20:54.715+01:00</updated><title type='text'>Another demo</title><content type='html'>Spotted &lt;a href="http://ttyshare.com/rec/mopemope/3716682/"&gt;this one&lt;/a&gt; thanks to Google Alerts.&lt;br /&gt;&lt;br /&gt;&lt;embed type="application/x-shockwave-flash" src="http://ttyshare.com/t/f12116f145e38c5572f96ebe6c2d39057bc63b41" width="480" height="288" &gt;&lt;/embed&gt;&lt;br /&gt;&lt;br /&gt;Shiny.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31028637-3472431760314845922?l=slipperysnippets.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slipperysnippets.blogspot.com/feeds/3472431760314845922/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31028637&amp;postID=3472431760314845922' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/3472431760314845922'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/3472431760314845922'/><link rel='alternate' type='text/html' href='http://slipperysnippets.blogspot.com/2007/05/another-demo.html' title='Another demo'/><author><name>Felix</name><uri>http://www.blogger.com/profile/17528610335893314119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31028637.post-7354394628226140521</id><published>2007-05-18T19:32:00.000+01:00</published><updated>2007-05-18T19:42:31.617+01:00</updated><title type='text'>The 911 of action movies</title><content type='html'>Okay, I did not know that they were making a new Die Hard so finding the &lt;a href="http://www.apple.com/trailers/fox/livefreeordiehard/"&gt;trailers&lt;/a&gt; was a nice surprise.&lt;br /&gt;&lt;br /&gt;Once the helicopter was blown up by the car, once the plane had flown under the bridge, once the car didn't hit them because of the other cars, once Bruce had jumped off _the jet_, I decided. This film will be the film by which all others will be judged. It will be a brave film that dares to try anything similar.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The 911 comment? If Porsche  puts a DSG in one of those then everyone else should just go home.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31028637-7354394628226140521?l=slipperysnippets.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slipperysnippets.blogspot.com/feeds/7354394628226140521/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31028637&amp;postID=7354394628226140521' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/7354394628226140521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/7354394628226140521'/><link rel='alternate' type='text/html' href='http://slipperysnippets.blogspot.com/2007/05/911-of-action-movies.html' title='The 911 of action movies'/><author><name>Felix</name><uri>http://www.blogger.com/profile/17528610335893314119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31028637.post-117555135515454815</id><published>2007-05-18T19:08:00.000+01:00</published><updated>2007-05-18T19:19:29.506+01:00</updated><title type='text'>Changes Afoot</title><content type='html'>I've checked in some new changes. Hopefully these will result in a new version sometime soon.&lt;br /&gt;&lt;br /&gt;There are a couple of changes which may cause some issues. Firstly, I've removed the 'local indent' requirement of the last version (1.1). It was implemented to solve some issues with indenting but I've found a different way to work around the problem.&lt;br /&gt;&lt;br /&gt;Secondly, I've removed the use of 'iskeyword' for matching special characters in tags. This changes the contract slightly: special character triggers will require whitespace before them.&lt;br /&gt;&lt;br /&gt;An example. In the Django templates the trigger '{{' will only be expanded if there is whitespace before it. Other characters which previously worked ('#', for example) will no longer do so.&lt;br /&gt;&lt;br /&gt;So, get posting your bug reports and I'll try and get fixes into the next release. I'm using bazaar for revision control at the moment as I'm not the net much. As a result I'm thinking of moving to Launchpad rather than Google. If anyone's got any opinions then please let me know through the comments.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31028637-117555135515454815?l=slipperysnippets.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slipperysnippets.blogspot.com/feeds/117555135515454815/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31028637&amp;postID=117555135515454815' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/117555135515454815'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/117555135515454815'/><link rel='alternate' type='text/html' href='http://slipperysnippets.blogspot.com/2007/05/changes-afoot.html' title='Changes Afoot'/><author><name>Felix</name><uri>http://www.blogger.com/profile/17528610335893314119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31028637.post-5471737544529354525</id><published>2007-04-07T01:23:00.000+01:00</published><updated>2007-04-07T01:26:27.650+01:00</updated><title type='text'>Shiny Trunk</title><content type='html'>For those of you tracking trunk I've just checked in some shiny new features. The Snippet command will now give you a list of snippets defined in a buffer (big, big props to Ori for this patch) and I've created two commands to help you create your own snippets.&lt;br /&gt;&lt;br /&gt;Check out the docs for CreateSnippet and CreateBundleSnippet.&lt;br /&gt;&lt;br /&gt;No excuse for not submitting your own snippets now :-)&lt;br /&gt;&lt;br /&gt;Oh, and this does mean that 1.2 will be coming out sooner than I thought.&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;&lt;a href="javascript:void(0)" onclick="return false;" tabindex="7"&gt;&lt;span&gt;&lt;/span&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31028637-5471737544529354525?l=slipperysnippets.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slipperysnippets.blogspot.com/feeds/5471737544529354525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31028637&amp;postID=5471737544529354525' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/5471737544529354525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/5471737544529354525'/><link rel='alternate' type='text/html' href='http://slipperysnippets.blogspot.com/2007/04/shiny-trunk.html' title='Shiny Trunk'/><author><name>Felix</name><uri>http://www.blogger.com/profile/17528610335893314119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31028637.post-6070318916556235</id><published>2007-04-06T13:03:00.000+01:00</published><updated>2007-04-06T13:08:15.929+01:00</updated><title type='text'>Snippy 1.1 Released</title><content type='html'>I've just posted version 1.1 on Vim.org. This is a big bug fix release which should have cleared up the majority of issues from the tracker. I've reverted the start and end tags to ASCII to avoid random unicode problems people were having; be sure to define your own tags in your vimrc if you want to change them.&lt;br /&gt;&lt;br /&gt;The biggest change is that the plugin no longer assumes auto-indenting; or, more specifically, all snippets need to define their own indenting regardless of the setting. This was done as auto-indent decisions could be affected by the choice of start and end tags, as well as the tricks the plugin performs to position the cursor. I've updated some of the bundles but not all, so keep your eye on trunk for the latest updates or stay tuned to vim.org for the next release.&lt;br /&gt;&lt;br /&gt;I've noticed some snippet bundles popping up around the web, so I'll see if I can gather those together as well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31028637-6070318916556235?l=slipperysnippets.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slipperysnippets.blogspot.com/feeds/6070318916556235/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31028637&amp;postID=6070318916556235' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/6070318916556235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/6070318916556235'/><link rel='alternate' type='text/html' href='http://slipperysnippets.blogspot.com/2007/04/snippy-11-released.html' title='Snippy 1.1 Released'/><author><name>Felix</name><uri>http://www.blogger.com/profile/17528610335893314119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31028637.post-3420004654577931122</id><published>2007-03-21T20:46:00.000Z</published><updated>2007-04-02T15:15:20.238+01:00</updated><title type='text'>London 2.0</title><content type='html'>&lt;p&gt;One of my New Year's resolutions was to attend the monthly London meet ups run by &lt;a href="http://magpiebrain.com/"&gt;Sam Newman&lt;/a&gt;. Tales of wonder were appearing on the net and the Christmas bash was attended by several web-celebs, including &lt;a href="http://meyerweb.com/"&gt;Eric Meyer&lt;/a&gt;! (I'm a big fan plus he posted my name on his blog - kudos).&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;There were no sessions in January or February but last Thursday I tracked down the Old Bank of England and ventured inside. During a quick couple of laps of the bar, eavesdropping for computer conversations, I spotted a sign for our reserved area and headed upstairs. Sam pounced on me as soon as I reached the top step and introduced himself and the others. An impressive host. The chat was of a high standard and people had the good grace to laugh at my jokes. Suffice to say, I had a good time and I'm looking forward to the next one. Keep your eye on the &lt;a href="http://london20.org/"&gt;London 2.0 website&lt;/a&gt; for announcements.&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31028637-3420004654577931122?l=slipperysnippets.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slipperysnippets.blogspot.com/feeds/3420004654577931122/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31028637&amp;postID=3420004654577931122' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/3420004654577931122'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/3420004654577931122'/><link rel='alternate' type='text/html' href='http://slipperysnippets.blogspot.com/2007/04/london-20.html' title='London 2.0'/><author><name>Felix</name><uri>http://www.blogger.com/profile/17528610335893314119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31028637.post-5770207916994549388</id><published>2007-03-21T19:57:00.000Z</published><updated>2007-04-02T15:15:33.015+01:00</updated><title type='text'>He's not dead; he's just resting.</title><content type='html'>&lt;p&gt;Hello all. What a busy year, and it's only March! As some may have noticed development of SnippetsEmu has pretty much come to a halt. This is due to a couple of things; 1.0 works fairly well and I've been stuck in Swindon and will be until June.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;That's not to say that I've been ignoring the bug reports, and the majority of people who've emailed me have had replies (apologies to those who slipped through the net). I may be able to get some time in a couple of weeks and I'm going to concentrate on a couple of things and roll out another release. The plan is to tidy up the bundles (including getting rid of the '.' snippet in Python; that's been annoying me no end), get rid of the Unicode start and end tags (caused too many problems) and try and work out a solution which prevents auto-syntax from breaking. This last one is the biggest problem and will require the rewriting of the snippets, but I think that the result will be worth it (if only because it will silence all the Ruby programmers who've been complaining ;-). The idea is to 'paste' the snippets into the file so they will have to be defined with 'local' indenting. I.e. the plugin will ensure they don't all start at the beginning of the line but you'll have to ensure your loops are indented to your requirements. Define them with tabs and the plugin will convert to spaces if required.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;I'm going to try and post here a bit more often, though doing so will involve me expanding the range of topics. So look forward to posts on (in no particular order) food, Python, web development, Excel, Word, office apps in general and whatever else takes my fancy.&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31028637-5770207916994549388?l=slipperysnippets.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slipperysnippets.blogspot.com/feeds/5770207916994549388/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31028637&amp;postID=5770207916994549388' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/5770207916994549388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/5770207916994549388'/><link rel='alternate' type='text/html' href='http://slipperysnippets.blogspot.com/2007/04/hes-not-dead-hes-just-resting.html' title='He&apos;s not dead; he&apos;s just resting.'/><author><name>Felix</name><uri>http://www.blogger.com/profile/17528610335893314119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31028637.post-5088360648921185357</id><published>2006-12-28T18:06:00.000Z</published><updated>2006-12-28T18:16:03.858Z</updated><title type='text'>1.0 On Vim.org</title><content type='html'>I've Vimballed it up, turned off debug and actually provided some install details.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.vim.org/scripts/script.php?script_id=1318"&gt;Download&lt;/a&gt; it, give it a whirl and make sure you rate it if you like it. Let's try and get his baby into the top 50!&lt;br /&gt;&lt;br /&gt;Comments and bug reports to the usual address.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31028637-5088360648921185357?l=slipperysnippets.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slipperysnippets.blogspot.com/feeds/5088360648921185357/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31028637&amp;postID=5088360648921185357' title='21 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/5088360648921185357'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/5088360648921185357'/><link rel='alternate' type='text/html' href='http://slipperysnippets.blogspot.com/2006/12/10-on-vimorg.html' title='1.0 On Vim.org'/><author><name>Felix</name><uri>http://www.blogger.com/profile/17528610335893314119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>21</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31028637.post-6031936592994508620</id><published>2006-12-28T02:58:00.000Z</published><updated>2006-12-28T03:02:24.374Z</updated><title type='text'>Here it comes...</title><content type='html'>Revision 96 is the great merging of the Textmate branch to trunk. All hail Subversion and its mighty revision skills.&lt;br /&gt;&lt;br /&gt;There are no outstanding issues for the branch and all outstanding enhancements have been pushed back to 1.1. I've updated the docs so all that remains is the creating of the Vimball.&lt;br /&gt;&lt;br /&gt;Watch this space.&lt;br /&gt;&lt;br /&gt;(suggestions for magic variables are welcome. Act fast to get them into the official release. At the moment I've got SNIP_ISO_DATE and SNIP_FILENAME. If this text is in a snippet then it'll get replaced as appropriate. I'm sure you can guess with what).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31028637-6031936592994508620?l=slipperysnippets.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slipperysnippets.blogspot.com/feeds/6031936592994508620/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31028637&amp;postID=6031936592994508620' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/6031936592994508620'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/6031936592994508620'/><link rel='alternate' type='text/html' href='http://slipperysnippets.blogspot.com/2006/12/here-it-comes.html' title='Here it comes...'/><author><name>Felix</name><uri>http://www.blogger.com/profile/17528610335893314119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31028637.post-4238966413508856727</id><published>2006-12-21T22:45:00.000Z</published><updated>2006-12-21T23:11:28.142Z</updated><title type='text'>HOWTO: Try out the latest version of SnippetsEmu</title><content type='html'>After teasing you all with the great new things available in the TextMate branch it was pointed out that maybe it wasn't entirely obvious how to go about trying it out for yourself.&lt;br /&gt;&lt;br /&gt;What follows is a description of my current set up. It works for me and works well but YMMV, IANAL, ROFL, WYSIWYG.&lt;br /&gt;&lt;br /&gt;Firstly, remove (or backup to elsewhere) your current snippetsEmu installation. This will mean moving the plugin itself (in 'plugin'), the documentation (in 'doc') and the bundles (in 'after/ftplugin').&lt;br /&gt;&lt;br /&gt;Download an install &lt;a href="http://subversion.tigris.org/"&gt;Subversion&lt;/a&gt;. Check that you can get this working on your appropriate command line.&lt;br /&gt;&lt;br /&gt;Create a directory outside of your current Vim installation. This is just to ensure we don't break anything by accident.&lt;br /&gt;&lt;br /&gt;Checkout the latest version of the TextMate branch:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;svn checkout http://snippetsemu.googlecode.com/svn/branches/textmateOnly/ Your_new_directory&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Open up your vimrc and add in the new directories:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;set runtimepath+=/path/to/my_new_directory&lt;br /&gt;set runtimepath+=/path/to/my_new_directory/after&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Note that you need to add the 'after' directory or the bundles won't get picked up.&lt;br /&gt;&lt;br /&gt;That's it. Restart Vim and everything should work.&lt;br /&gt;&lt;br /&gt;Make sure you submit any bugs you find!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31028637-4238966413508856727?l=slipperysnippets.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slipperysnippets.blogspot.com/feeds/4238966413508856727/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31028637&amp;postID=4238966413508856727' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/4238966413508856727'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/4238966413508856727'/><link rel='alternate' type='text/html' href='http://slipperysnippets.blogspot.com/2006/12/howto-try-out-latest-version-of.html' title='HOWTO: Try out the latest version of SnippetsEmu'/><author><name>Felix</name><uri>http://www.blogger.com/profile/17528610335893314119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31028637.post-3645286494020899563</id><published>2006-12-16T14:53:00.000Z</published><updated>2006-12-16T15:06:28.763Z</updated><title type='text'>New Default tags</title><content type='html'>The current textmate branch bundles will use whatever start and end tags a user has defined. As a result I've been testing out some other combinations. My current favourites are &lt;&lt;&gt;&gt; but as single characters. I.e. ASCII chars 171 and 187. Try them yourself. In insert do &lt;c-v&gt; and then type 171 or 187.&lt;br /&gt;&lt;br /&gt;They work fine in Windows but not Unix so I'm going to have to hunt down that particular bug first.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31028637-3645286494020899563?l=slipperysnippets.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slipperysnippets.blogspot.com/feeds/3645286494020899563/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31028637&amp;postID=3645286494020899563' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/3645286494020899563'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/3645286494020899563'/><link rel='alternate' type='text/html' href='http://slipperysnippets.blogspot.com/2006/12/new-default-tags.html' title='New Default tags'/><author><name>Felix</name><uri>http://www.blogger.com/profile/17528610335893314119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31028637.post-5235864956733449519</id><published>2006-12-15T17:08:00.000Z</published><updated>2008-12-10T05:12:20.722Z</updated><title type='text'>Oo Shiny</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_m5D1P0Q5MPo/RYLWwduNSmI/AAAAAAAAAAM/y6UyXyrJ6Js/s1600-h/Snippet_menu.JPG"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_m5D1P0Q5MPo/RYLWwduNSmI/AAAAAAAAAAM/y6UyXyrJ6Js/s320/Snippet_menu.JPG" alt="" id="BLOGGER_PHOTO_ID_5008801863689914978" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;TextMate branch only. Time to start moving all this goodness to trunk.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31028637-5235864956733449519?l=slipperysnippets.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slipperysnippets.blogspot.com/feeds/5235864956733449519/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31028637&amp;postID=5235864956733449519' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/5235864956733449519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/5235864956733449519'/><link rel='alternate' type='text/html' href='http://slipperysnippets.blogspot.com/2006/12/oo-shiny.html' title='Oo Shiny'/><author><name>Felix</name><uri>http://www.blogger.com/profile/17528610335893314119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_m5D1P0Q5MPo/RYLWwduNSmI/AAAAAAAAAAM/y6UyXyrJ6Js/s72-c/Snippet_menu.JPG' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31028637.post-5437909659793413872</id><published>2006-12-13T19:07:00.000Z</published><updated>2006-12-13T19:16:40.333Z</updated><title type='text'>1.0 Looking Good</title><content type='html'>The TextmateOnly branch is looking quite good. It could do with some more testers but it seems to be holding together. There's a slight conflict with matchit and there's a weird off-by-one problem for some people but it's working fine for me :-)&lt;br /&gt;&lt;br /&gt;Some of the features I've got working:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Select mode highlighting: tag names get highlighted in visual mode and are replaced when you start typing&lt;/li&gt;&lt;li&gt;Commands hidden away: Tag commands are now removed from on-screen so things look tidier.&lt;/li&gt;&lt;li&gt;Special variable replacement: Not many at the moment but the code's there and is easy enough to add to&lt;/li&gt;&lt;li&gt;Expansion command execution: Can be used to insert command output when the snippet is expanded without having to tab through a tag.&lt;/li&gt;&lt;li&gt;Cleaner code: not one for the users but I've given the code a clean up which is making things easier.&lt;/li&gt;&lt;li&gt;Supertab support: Experimental at the moment but the plugin is now compatible with supertab. Snippet expansion takes precedence but if one is not found supertab takes over.&lt;/li&gt;&lt;/ul&gt;I'm also going to change the bundles so that if someone were to change the start and end tags all the snippets would work. There's a down side to this but I think the ups outweigh it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31028637-5437909659793413872?l=slipperysnippets.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slipperysnippets.blogspot.com/feeds/5437909659793413872/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31028637&amp;postID=5437909659793413872' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/5437909659793413872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/5437909659793413872'/><link rel='alternate' type='text/html' href='http://slipperysnippets.blogspot.com/2006/12/10-looking-good.html' title='1.0 Looking Good'/><author><name>Felix</name><uri>http://www.blogger.com/profile/17528610335893314119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31028637.post-7375634599740937703</id><published>2006-12-03T23:17:00.000Z</published><updated>2006-12-03T23:23:31.487Z</updated><title type='text'>1.0 ready for testing</title><content type='html'>Brave souls can try out the textmate branch if they're feeling brave.&lt;br/&gt;You might get some ugly error messages but it seems to be working at the moment. The main improvement is cleaner tags onscreen. One thing that has always annoyed me about the current implementation is that tag commands are on screen. The new branch introduces a bit of magic to keep them hidden but it seems to be working.&lt;br/&gt;&lt;style&gt;i{content: normal !important}&lt;/style&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31028637-7375634599740937703?l=slipperysnippets.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slipperysnippets.blogspot.com/feeds/7375634599740937703/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31028637&amp;postID=7375634599740937703' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/7375634599740937703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/7375634599740937703'/><link rel='alternate' type='text/html' href='http://slipperysnippets.blogspot.com/2006/12/10-ready-for-testing.html' title='1.0 ready for testing'/><author><name>Felix</name><uri>http://www.blogger.com/profile/17528610335893314119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31028637.post-1980977959175468531</id><published>2006-12-03T01:19:00.000Z</published><updated>2006-12-03T01:22:38.179Z</updated><title type='text'>1.0 underway</title><content type='html'>Right. Trust me. 1.0 is really under development now. You'll see commits in the branch and everything. The branch is broken at the moment, however. There are a lot of big changes going on in the code so consider the branch unstable.&lt;br/&gt;&lt;br/&gt;I'll keep you posted on the new features I'm putting in as and when they appear in the code. &lt;style&gt;i{content: normal !important}&lt;/style&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31028637-1980977959175468531?l=slipperysnippets.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slipperysnippets.blogspot.com/feeds/1980977959175468531/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31028637&amp;postID=1980977959175468531' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/1980977959175468531'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/1980977959175468531'/><link rel='alternate' type='text/html' href='http://slipperysnippets.blogspot.com/2006/12/10-underway.html' title='1.0 underway'/><author><name>Felix</name><uri>http://www.blogger.com/profile/17528610335893314119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31028637.post-7393181983746488613</id><published>2006-11-26T19:48:00.000Z</published><updated>2006-11-26T19:53:13.615Z</updated><title type='text'>0.6 on Vim.org</title><content type='html'>0.6 is now actually on vim.org. You can get it in the usual place: &lt;a href="http://vim.sourceforge.net/scripts/edit_script.php?script_id=1318"&gt;http://vim.sourceforge.net/scripts/edit_script.php?script_id=1318&lt;/a&gt; &lt;br/&gt;&lt;br/&gt;This contains a couple of bug fixes and changes that won't be in any secret versions of 0.6 that are knocking about so grab a copy.&lt;br/&gt;&lt;br/&gt;Bug reports to the usual places&lt;br/&gt;&lt;style&gt;i{content: normal !important}&lt;/style&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31028637-7393181983746488613?l=slipperysnippets.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slipperysnippets.blogspot.com/feeds/7393181983746488613/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31028637&amp;postID=7393181983746488613' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/7393181983746488613'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/7393181983746488613'/><link rel='alternate' type='text/html' href='http://slipperysnippets.blogspot.com/2006/11/06-on-vimorg.html' title='0.6 on Vim.org'/><author><name>Felix</name><uri>http://www.blogger.com/profile/17528610335893314119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31028637.post-116162736135291401</id><published>2006-10-23T19:11:00.000+01:00</published><updated>2006-10-23T19:16:01.366+01:00</updated><title type='text'>SnippetsEmu 0.6</title><content type='html'>Version 0.6 is coming 'real soon now'. It's been pushed out to the mailing list (if you want on then let me know) and will be posted on vim.org in the next couple of days.&lt;br /&gt;&lt;br /&gt;What to look forward to?&lt;br /&gt;&lt;br /&gt;Updated documentation&lt;br /&gt;File type bundles&lt;br /&gt;Bug fixes&lt;br /&gt;&lt;br /&gt;This release will be put on bug fix mode and development will switch to the 1.0 branch which will only support the TextMate mode. The switch will allow things to be tightened up a bit and a couple of new features to be added.&lt;br /&gt;&lt;br /&gt;Suggest your own suggestions for improvements on the bug tracker:&lt;br /&gt;http://code.google.com/p/snippetsemu/issues/list&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31028637-116162736135291401?l=slipperysnippets.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slipperysnippets.blogspot.com/feeds/116162736135291401/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31028637&amp;postID=116162736135291401' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/116162736135291401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/116162736135291401'/><link rel='alternate' type='text/html' href='http://slipperysnippets.blogspot.com/2006/10/snippetsemu-06.html' title='SnippetsEmu 0.6'/><author><name>Felix</name><uri>http://www.blogger.com/profile/17528610335893314119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31028637.post-116067389683946048</id><published>2006-10-12T18:17:00.000+01:00</published><updated>2006-10-12T18:24:56.896+01:00</updated><title type='text'>Call for Snippets</title><content type='html'>I'm gearing up for a 0.6 release to be swiftly followed by 1.0. I'm concentrating on bug fixes and bundle writing at the moment so this is the time to contribute your own time savers.&lt;br /&gt;&lt;br /&gt;So step right up! Post your best snippet in the comments and I'll add them asap (with a credit unless you opt out).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31028637-116067389683946048?l=slipperysnippets.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slipperysnippets.blogspot.com/feeds/116067389683946048/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31028637&amp;postID=116067389683946048' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/116067389683946048'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/116067389683946048'/><link rel='alternate' type='text/html' href='http://slipperysnippets.blogspot.com/2006/10/call-for-snippets.html' title='Call for Snippets'/><author><name>Felix</name><uri>http://www.blogger.com/profile/17528610335893314119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31028637.post-116047532849307207</id><published>2006-10-10T11:09:00.001+01:00</published><updated>2006-10-10T11:15:28.503+01:00</updated><title type='text'>Bad habits</title><content type='html'>I've updated all the bundles to use the command 'Snippet' instead of 'Snip'. This was causing a conflict with the latex-suite plugin which defined a similar command. The Snip command has always been called Snippet but vim will let you use shortened versions and it'll try its best to match. Obviously latex-suite's Snip takes preference over Snippet and so users would get an E488 error.&lt;br /&gt;&lt;br /&gt;Apologies for this if you've encountered this; it was purely me being lazy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31028637-116047532849307207?l=slipperysnippets.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slipperysnippets.blogspot.com/feeds/116047532849307207/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31028637&amp;postID=116047532849307207' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/116047532849307207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/116047532849307207'/><link rel='alternate' type='text/html' href='http://slipperysnippets.blogspot.com/2006/10/bad-habits_10.html' title='Bad habits'/><author><name>Felix</name><uri>http://www.blogger.com/profile/17528610335893314119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31028637.post-116040927970446348</id><published>2006-10-09T16:34:00.000+01:00</published><updated>2006-10-09T16:54:39.756+01:00</updated><title type='text'>Vim Project Plugin</title><content type='html'>&lt;p&gt;&lt;br /&gt;Not a SnippetsEmu related post but hopefully of use to some Vim users.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;I use the Project plugin (&lt;a href="http://www.vim.org/scripts/script.php?script_id=69"&gt;get it here&lt;/a&gt;) to keep track of files that I'm editing. It's a great little plugin though is a bit flaky under Windows (there's some problems with the way it constructs paths which affects some of the nicer features such as greping and auto entry completion)&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;One thing I've just noticed, however, is that one can trip up when using the CD property. When set the current working directory can be changed when opening a file. I normally set this to be CD=. which will CD to the directory in which the file is located. The problem I've found, however, is that you can end up overwritting files when you split the view (as I did with snippetsEmu). My tip for avoiding this is to set the CD at a suitably high level. I've set mine at the root of each project. This allows files to be saved but stops the status line from getting too cluttered.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;    Hopefully someone finds this useful.&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31028637-116040927970446348?l=slipperysnippets.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slipperysnippets.blogspot.com/feeds/116040927970446348/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31028637&amp;postID=116040927970446348' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/116040927970446348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/116040927970446348'/><link rel='alternate' type='text/html' href='http://slipperysnippets.blogspot.com/2006/10/vim-project-plugin.html' title='Vim Project Plugin'/><author><name>Felix</name><uri>http://www.blogger.com/profile/17528610335893314119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31028637.post-116039033870453411</id><published>2006-10-09T11:32:00.000+01:00</published><updated>2006-10-09T11:39:18.413+01:00</updated><title type='text'>Version 1.0 under development - Trust me</title><content type='html'>&lt;p&gt;While this blog has been quite quiet recently rest assured that development is still happening. I've been working on the bundles to be included in the next version and also fixing bugs. Check out the issue tracker at Google Code.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;I've also started a separate branch for what will become 1.0. This version will only support Textmate mode which will help simplify the codebase.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;So stay tuned:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://code.google.com/p/snippetsemu/"&gt;http://code.google.com/p/snippetsemu/&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31028637-116039033870453411?l=slipperysnippets.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slipperysnippets.blogspot.com/feeds/116039033870453411/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31028637&amp;postID=116039033870453411' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/116039033870453411'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/116039033870453411'/><link rel='alternate' type='text/html' href='http://slipperysnippets.blogspot.com/2006/10/version-10-under-development-trust-me.html' title='Version 1.0 under development - Trust me'/><author><name>Felix</name><uri>http://www.blogger.com/profile/17528610335893314119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31028637.post-115798373636037539</id><published>2006-09-11T15:06:00.000+01:00</published><updated>2006-09-11T15:08:56.376+01:00</updated><title type='text'>Calling Sven</title><content type='html'>I got an email from Sven the other day but my mail bounced. I don't think his domain likes gmail.&lt;br /&gt;&lt;br /&gt;In case he's reading this here's the reply that got rejected:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&gt; Are there plugins known not to work with snippetsemu? According to :map none&lt;br /&gt;&gt; of my plugins map Tab, except for minibufexplorer, which maps &lt;S-Tab&gt; and&lt;br /&gt;&gt; &lt;C-S-Tab&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The only one I've heard of is the emacs emulation plugin. Make sure&lt;br /&gt;you're using a version greater than 0.5.4 and that you've set&lt;br /&gt;g:snip_set_textmate_cp = 1 in your vimrc with:&lt;br /&gt;&lt;br /&gt;let g:snip_set_textmate_cp = 1&lt;br /&gt;&lt;br /&gt;If you're still having trouble once you've restarted vim then drop me&lt;br /&gt;a mail along with which version of the script you're using, what&lt;br /&gt;version of Vim, what flavour of Linux and what other plugins you've&lt;br /&gt;got and I'll have a go at bug hunting for you.&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31028637-115798373636037539?l=slipperysnippets.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slipperysnippets.blogspot.com/feeds/115798373636037539/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31028637&amp;postID=115798373636037539' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/115798373636037539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/115798373636037539'/><link rel='alternate' type='text/html' href='http://slipperysnippets.blogspot.com/2006/09/calling-sven.html' title='Calling Sven'/><author><name>Felix</name><uri>http://www.blogger.com/profile/17528610335893314119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31028637.post-115756328177480160</id><published>2006-09-06T18:17:00.000+01:00</published><updated>2006-09-06T18:22:23.150+01:00</updated><title type='text'>Special Characters in Snippets.</title><content type='html'>The latest subversion commit (revision 28) allows special characters to be used &lt;br/&gt;in snippet definitions. E.g. for LaTeX:&lt;br/&gt;&lt;br/&gt;&lt;code&gt;Snip $$ \[&lt;cr&gt;&lt;{}&gt;&lt;cr&gt;\]&lt;/code&gt;&lt;br/&gt;&lt;br/&gt;will now work and typing $$&amp;lt;tab&amp;gt; will perform the expansion.&lt;br/&gt;&lt;br/&gt;NOTE. This will only work with TextMate mode due to the way abbreviations work. &lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31028637-115756328177480160?l=slipperysnippets.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slipperysnippets.blogspot.com/feeds/115756328177480160/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31028637&amp;postID=115756328177480160' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/115756328177480160'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/115756328177480160'/><link rel='alternate' type='text/html' href='http://slipperysnippets.blogspot.com/2006/09/special-characters-in-snippets.html' title='Special Characters in Snippets.'/><author><name>Felix</name><uri>http://www.blogger.com/profile/17528610335893314119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31028637.post-115755626815691130</id><published>2006-09-06T16:19:00.000+01:00</published><updated>2006-09-06T16:24:28.170+01:00</updated><title type='text'>Snippet Bundles</title><content type='html'>I've started generating some snippets for various filetypes to include in upcoming releases. At the moment they're available in the &lt;a href="http://snippetsemu.googlecode.com/svn/trunk/after/ftplugin/"&gt;subversion repository&lt;/a&gt;. They are untested at the moment so comments are welcome, as are contributions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31028637-115755626815691130?l=slipperysnippets.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slipperysnippets.blogspot.com/feeds/115755626815691130/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31028637&amp;postID=115755626815691130' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/115755626815691130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/115755626815691130'/><link rel='alternate' type='text/html' href='http://slipperysnippets.blogspot.com/2006/09/snippet-bundles.html' title='Snippet Bundles'/><author><name>Felix</name><uri>http://www.blogger.com/profile/17528610335893314119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31028637.post-115703354466940982</id><published>2006-08-31T15:04:00.000+01:00</published><updated>2006-08-31T15:12:24.690+01:00</updated><title type='text'>Subverted Snippets</title><content type='html'>I've decided to put SnippetsEmu on &lt;a href="http://code.google.com/"&gt;Google Code&lt;/a&gt;, mainly as an excuse to learn a bit more about subversion (and to get into better coding habits). You can find the homepage &lt;a href="http://code.google.com/p/snippetsemu/"&gt;here&lt;/a&gt;. The SVN trunk at the moment is not really worth checking out as it's just a copy of my current dev directory. I'm going to see if I can recreate the history of the plugin and set tags for the different release versions. The ultimate aim will be to end up with a trunk which can be checked out into your .vim directory so you can get the latest version.&lt;br/&gt;&lt;br/&gt;This is just me playing but hopefully it'll become more useful in the future.&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31028637-115703354466940982?l=slipperysnippets.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slipperysnippets.blogspot.com/feeds/115703354466940982/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31028637&amp;postID=115703354466940982' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/115703354466940982'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/115703354466940982'/><link rel='alternate' type='text/html' href='http://slipperysnippets.blogspot.com/2006/08/subverted-snippets.html' title='Subverted Snippets'/><author><name>Felix</name><uri>http://www.blogger.com/profile/17528610335893314119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31028637.post-115686774562872203</id><published>2006-08-29T17:03:00.000+01:00</published><updated>2006-08-29T20:41:46.976+01:00</updated><title type='text'>Another Sneek Peek</title><content type='html'>Here's one for the Django developers. I've defined a snippet for use in templates: expand 'scaff',&lt;br/&gt; type the name of your application and model and you'll get the HTML for the form used to edit &lt;br/&gt;the model. (It requires  my scaffold.py script from the &lt;a href="http://code.djangoproject.com/"&gt;Django wiki&lt;/a&gt;.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31028637-115686774562872203?l=slipperysnippets.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slipperysnippets.blogspot.com/feeds/115686774562872203/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31028637&amp;postID=115686774562872203' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/115686774562872203'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/115686774562872203'/><link rel='alternate' type='text/html' href='http://slipperysnippets.blogspot.com/2006/08/another-sneek-peek.html' title='Another Sneek Peek'/><author><name>Felix</name><uri>http://www.blogger.com/profile/17528610335893314119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31028637.post-115686740581721718</id><published>2006-08-29T16:58:00.000+01:00</published><updated>2006-08-29T17:03:25.836+01:00</updated><title type='text'>0.5.6 Released</title><content type='html'>The new version is available from vim.org. It's a bug fix release which deals with all of the issues identified in the last version.&lt;br/&gt;&lt;br/&gt;I've refactored a big chunk of the code so hopefully maintenance should be a little easier from now on.&lt;br/&gt;&lt;br/&gt;If you find any bugs in this release then post them in the comments below.&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31028637-115686740581721718?l=slipperysnippets.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slipperysnippets.blogspot.com/feeds/115686740581721718/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31028637&amp;postID=115686740581721718' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/115686740581721718'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/115686740581721718'/><link rel='alternate' type='text/html' href='http://slipperysnippets.blogspot.com/2006/08/056-released.html' title='0.5.6 Released'/><author><name>Felix</name><uri>http://www.blogger.com/profile/17528610335893314119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31028637.post-115653141732110569</id><published>2006-08-25T19:31:00.000+01:00</published><updated>2006-08-25T20:08:50.256+01:00</updated><title type='text'>Sneek Peek</title><content type='html'>I'm working on some bundles for an upcoming release and I'm starting to use a lot commands within tags.&lt;br/&gt;&lt;br/&gt;Here's an example of something in the Python Bundle:&lt;br/&gt;&lt;br/&gt;pf&lt;tab&gt; expands to:&lt;br/&gt;&lt;br/&gt;print "&lt;{s}&gt;" % &lt;{s:ArgList(Count(@z, '%[^%]'))}&gt;&lt;br/&gt;&lt;br/&gt;You'll then get an argument list which varies in length depending on the number of placeholders in your print string.&lt;br/&gt;&lt;br/&gt;A print string of "The quick, %s %s jumped over %d benches"&lt;br/&gt;will expand to:&lt;br/&gt;&lt;br/&gt;print "The quick, %s %s jumped over %d benches" % (&lt;{}&gt;, &lt;{}&gt;, &lt;{}&gt;,)&lt;br/&gt;&lt;br/&gt;(Well not really, as the cursor will be sitting on the first empty tag but you get the idea).&lt;br/&gt;&lt;br/&gt;The only problem with commands is that they can take up a lot of space but a good choice of function name can help.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31028637-115653141732110569?l=slipperysnippets.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slipperysnippets.blogspot.com/feeds/115653141732110569/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31028637&amp;postID=115653141732110569' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/115653141732110569'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/115653141732110569'/><link rel='alternate' type='text/html' href='http://slipperysnippets.blogspot.com/2006/08/sneek-peek.html' title='Sneek Peek'/><author><name>Felix</name><uri>http://www.blogger.com/profile/17528610335893314119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31028637.post-115554638171829076</id><published>2006-08-14T10:03:00.000+01:00</published><updated>2006-08-14T10:06:21.730+01:00</updated><title type='text'>0.5.5. Released.</title><content type='html'>0.5.5 is out. All the bugs mentioned in the last post have been fixed (fingers crossed).&lt;br/&gt;&lt;br/&gt;The whole plugin is now a lot more buffer specific and should handle a lot better.&lt;br/&gt;&lt;br/&gt;If there are any more bugs (new or old) then post them here (or email me).&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31028637-115554638171829076?l=slipperysnippets.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slipperysnippets.blogspot.com/feeds/115554638171829076/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31028637&amp;postID=115554638171829076' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/115554638171829076'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/115554638171829076'/><link rel='alternate' type='text/html' href='http://slipperysnippets.blogspot.com/2006/08/055-released.html' title='0.5.5. Released.'/><author><name>Felix</name><uri>http://www.blogger.com/profile/17528610335893314119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31028637.post-115522174683058359</id><published>2006-08-10T15:45:00.000+01:00</published><updated>2006-08-10T15:55:46.846+01:00</updated><title type='text'>0.5.4 Bug list</title><content type='html'>In the absense of Trac or some other such thing I'll take to posting here. Anyone who has a bug to report can post it in the comments (or I'll update the list if it's been emailed to me).&lt;br/&gt;&lt;br/&gt;Here there current list of things to fix:&lt;br/&gt;&lt;br/&gt;&lt;ul&gt;&lt;li&gt; s:search_str not defined.&lt;br/&gt;Not having a snippet defined will generate an error when one hits tab&lt;/li&gt;&lt;li&gt;Two commands on same line.&lt;br /&gt;Having two named tags with commands defined one the same line _and_ changing the value of the first tag will fail to change the value of the second&lt;/li&gt;&lt;li&gt;s:search_str not buffer specific.&lt;br/&gt;Having different start and end tags for different file types will break the plugin. The most recent set of tags will be used by all buffers.&lt;/li&gt;&lt;/ul&gt;If you have any more then stick them in the comments.&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31028637-115522174683058359?l=slipperysnippets.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slipperysnippets.blogspot.com/feeds/115522174683058359/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31028637&amp;postID=115522174683058359' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/115522174683058359'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/115522174683058359'/><link rel='alternate' type='text/html' href='http://slipperysnippets.blogspot.com/2006/08/054-bug-list.html' title='0.5.4 Bug list'/><author><name>Felix</name><uri>http://www.blogger.com/profile/17528610335893314119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31028637.post-115383635509424607</id><published>2006-07-25T14:50:00.000+01:00</published><updated>2006-07-25T15:05:55.110+01:00</updated><title type='text'>Tag highlighting</title><content type='html'>As mentioned in a previous post I was thinking of adding tag highlighting as a fancy new feature. This was requested by a user who cited the lack of it as the one remaining reason for him not to switch away from imaps.vim. I looked into how imaps does it (boy, is the version on vim.org &lt;em&gt;way&lt;/em&gt; out of date) and was impressed. I had a good think about how to add it into snippetsEmu and came up against some problems. When imaps highlights a tag it does so by using visual mode. Hitting any key will delete the tag and start insert mode. This does not work so well with the extra stuff SnEmu does. Deleting the whole tag will break the name replacement function and command execution. The best way would involve deleting any variable name but this would require quite a rewrite of the internals. Currently the decision of whether the user has changed a tag's value requires the presence of the name and the start and end markers.&lt;br /&gt;&lt;br /&gt;Basically it's non-triv but I'll keep look into what's required.&lt;br /&gt;&lt;br /&gt;I'm also going to work on reintroducing default values. I had decided that using tag names would work just as well but then thought up some examples for when it wouldn't. The simplest would be a function call commonly requiring 'Null' as some of its arguments. Having several tags named 'Null' would be useless if you wanted to change the value of just one of them.&lt;br /&gt;&lt;br /&gt;Not sure the best way to do this. I'd also like to have auto-executing tags; useful for adding in dates or similar. This can be done at the moment using an empty tag with a command but does require the user to tab through them before the command is executed.&lt;br /&gt;&lt;br /&gt;Thoughts and comments welcome as usual.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31028637-115383635509424607?l=slipperysnippets.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slipperysnippets.blogspot.com/feeds/115383635509424607/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31028637&amp;postID=115383635509424607' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/115383635509424607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/115383635509424607'/><link rel='alternate' type='text/html' href='http://slipperysnippets.blogspot.com/2006/07/tag-highlighting.html' title='Tag highlighting'/><author><name>Felix</name><uri>http://www.blogger.com/profile/17528610335893314119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31028637.post-115382324065866812</id><published>2006-07-25T11:17:00.000+01:00</published><updated>2006-07-25T11:29:05.470+01:00</updated><title type='text'>Bug fix: TextMate mode now works in Linux</title><content type='html'>The new TextMate mode was not working properly under linux due to some strange behaviour with expand('&amp;lt;cword&amp;gt;'). The new version (uploaded) uses a different search mechanism so all should be better. Bug reports to the usual address.&lt;br/&gt;&lt;br/&gt;Could anyone under *nix environments try a little test for me? Open Vim, go to insert and type: AWORD&amp;lt;c-r&amp;gt;=expand('&amp;lt;cword&amp;gt;')&amp;lt;cr&amp;gt;. That is: type AWORD, hit ctrl-r, '=' and 'expand('&amp;lt;cword&amp;gt;')'. Under Windows this will insert AWORD after the first AWORD. Under Linux it does not. Post what you get along with your vim version and environment in the comments. Cheers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31028637-115382324065866812?l=slipperysnippets.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slipperysnippets.blogspot.com/feeds/115382324065866812/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31028637&amp;postID=115382324065866812' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/115382324065866812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/115382324065866812'/><link rel='alternate' type='text/html' href='http://slipperysnippets.blogspot.com/2006/07/bug-fix-textmate-mode-now-works-in.html' title='Bug fix: TextMate mode now works in Linux'/><author><name>Felix</name><uri>http://www.blogger.com/profile/17528610335893314119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31028637.post-115312925905857218</id><published>2006-07-17T10:34:00.000+01:00</published><updated>2006-07-17T10:40:59.066+01:00</updated><title type='text'>Ideas for new features</title><content type='html'>I've been gathering together a collection of possible new features and changes which I'll post here for others to add to in the comments. Please let me know what you thing of the new ideas as well.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Tag highlighting - Panos has requested it and I'll admit it adds a bit of polish&lt;/li&gt;&lt;li&gt;Vim 6.4 compatibility - The reason that the latest version is 7.0 only is that I've used a bit of a hack for when commands return multiple lines. I think I should be able to come up with something which works a bit better.&lt;/li&gt;&lt;li&gt;Special characters in definitions - spotted that imaps allows this. I doubt I'll be able to add it to the original flavour of the plugin but it should be possible for the new TextMate mode.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;I'm also considering making the TextMate mode the default choice. Thoughts on that as well please.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31028637-115312925905857218?l=slipperysnippets.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slipperysnippets.blogspot.com/feeds/115312925905857218/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31028637&amp;postID=115312925905857218' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/115312925905857218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/115312925905857218'/><link rel='alternate' type='text/html' href='http://slipperysnippets.blogspot.com/2006/07/ideas-for-new-features.html' title='Ideas for new features'/><author><name>Felix</name><uri>http://www.blogger.com/profile/17528610335893314119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31028637.post-115280690347367273</id><published>2006-07-13T16:59:00.000+01:00</published><updated>2006-07-13T17:10:21.873+01:00</updated><title type='text'>Documentation</title><content type='html'>One often mentioned problem with the plugin is the documentation. &lt;br/&gt;It is sad to say that the documentation has changed in a similar style &lt;br/&gt;to the plugin itself. I've had to make numerous 'bug fixes' and the &lt;br/&gt;additional features are poorly described. Inspired by Panos's initial &lt;br/&gt;draft I've started to create a proper piece of help to include with the &lt;br/&gt;downloads. If I get time I'll finish it off this weekend. &lt;br/&gt;&lt;br/&gt;I'd also like to thank Panos for the lovely logo sported underneath the &lt;br/&gt;link on the right. He's knocked up a 'powered by' style image as well:  &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/7865/23/1600/snip-powered-by.png"&gt;&lt;img src="http://photos1.blogger.com/blogger/7865/23/320/snip-powered-by.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Very nice.&lt;br/&gt;&lt;br/&gt;Anyway: new docs are coming and I'm trying to gather together some examples for different languages as well. If you have any you'd like to share then post them in the comments. Mention what your start and end tags are as well. I'm tempted to remove the customability of start and end tags in order to make sharing easier. I was thinking of '&lt;{' and '}&gt;' as the new standard but let me know your thoughts on that as well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31028637-115280690347367273?l=slipperysnippets.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slipperysnippets.blogspot.com/feeds/115280690347367273/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31028637&amp;postID=115280690347367273' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/115280690347367273'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/115280690347367273'/><link rel='alternate' type='text/html' href='http://slipperysnippets.blogspot.com/2006/07/documentation.html' title='Documentation'/><author><name>Felix</name><uri>http://www.blogger.com/profile/17528610335893314119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-31028637.post-115274428177158604</id><published>2006-07-12T22:29:00.000+01:00</published><updated>2006-07-12T23:44:41.790+01:00</updated><title type='text'>Blast off!</title><content type='html'>I've discovered that the person hogging my usual username on Blogger was in fact me and so after rooting around the back corners of my memory I produced a password and decided  to use this fantastic free service to start up a development blog about my Vim plugin: &lt;a href="http://www.vim.org/scripts/script.php?script_id=1318"&gt;snippetsEmu&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;The script has been through several iterations so I'll use this first post to record its history.&lt;br/&gt;&lt;br/&gt;My initial encounter with the OS X editor &lt;a href="http://www.macromates.com/"&gt;TextMate&lt;/a&gt; was (no doubt like a lot of people) through the magical &lt;a href="http://www.rubyonrails.org/"&gt;Rails&lt;/a&gt; &lt;a href="http://www.rubyonrails.org/screencasts"&gt;videos&lt;/a&gt;. Not to distract from the DSL goodness of Rails but one reason it looked so damn easy to use was the fantastical editor used to construct the beautiful code. Sadly I had given away my iMac as I was moving houses too often (a very generous gift for my brother) and so could not join in the fun.&lt;br/&gt;&lt;br/&gt;Thankfully my work required that I make regular use of the &lt;a href="http://www.vim.org/"&gt;One True Editor&lt;/a&gt; and I had just discovered its built in scripting functionality. Being a fan of &lt;a href="http://www.python.org/"&gt;Python&lt;/a&gt; and having started on the long, dark journey towards mastery of Word macros, the lure of some new scripting treasure was too great and so I set out to make for myself that which others already had.&lt;br/&gt;&lt;br/&gt;Not one to stand on the shoulders of giants (and too lazy to thoroughly Google about) I set about replicating the TextMate functionality from scratch. My initial attempt used the builtin iabbr command to add a load of @'s into the buffer and some simple searches to jump around between them. Pleased with this I promptly documented it on the Rails wiki, where it still &lt;a href="http://wiki.rubyonrails.com/rails/pages/HowtoUseVimWithRails"&gt;stands&lt;/a&gt; today.&lt;br/&gt;&lt;br/&gt;To be honest, this initial attempt was crap. Had I discovered the imaps plugin for Vim then I no doubt would have used that instead and been happy. But thankfully I discovered the MacroMates &lt;a href="http://macromates.com/blog/archives/2005/08/25/the-power-of-snippets/"&gt;post&lt;/a&gt; on the power of snippets which showed me just what extra work was required. An initial release soon followed which added variable replacement. A couple of weeks later, based on a suggestion from Salman I added a new version which allowed users to define their own start and end tags. I also added in the idea of default values. I never really liked this idea as I personally used the tag's name as a default value but, ever eager to please, I added it in.&lt;br/&gt;&lt;br/&gt;A few bug fixes later I uploaded version 0.3. This added the idea of command execution. A couple more bug releases and a change in the way commands were defined and development slowed up.&lt;br/&gt; &lt;br/&gt;Six months later I uploaded version 0.5. I'd seen a bit more of TextMate in action and I'd changed some of my ideas about how things should work. Default values were removed (these make sense in TextMate but only because the tags used there are not displayed on screen) and the new TextMate compatibility mode was added. Snippets no longer expand by default; the user is required to hit Tab before the magic happens. More bug fixes and we're up to date.&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/31028637-115274428177158604?l=slipperysnippets.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://slipperysnippets.blogspot.com/feeds/115274428177158604/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=31028637&amp;postID=115274428177158604' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/115274428177158604'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/31028637/posts/default/115274428177158604'/><link rel='alternate' type='text/html' href='http://slipperysnippets.blogspot.com/2006/07/blast-off.html' title='Blast off!'/><author><name>Felix</name><uri>http://www.blogger.com/profile/17528610335893314119</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>
