FolderShare is Almost a Good Idea

I was taking a look at the Windows Live FolderShare beta, and it seemed to be exactly what I wanted.  I have a few forum reply templates and AutoHotkey macros that I could use both at home and work, and using a USB drive to keep them in sync just feels kind of lame in this age of internet connectivity.

I uninstalled it after using it for 10 seconds.  All I want out of the program is to share the particular folders that I tell it to share.  Instead, the program gives access to every drive on connected machines; the purpose of libraries is to specify what folders you want to keep in sync.

This makes use of the program unacceptable at work; I like to think my passwords are secure but running FolderShare means if my account is cracked then the source files on my hard drive are exposed.  Unacceptable.

Why couldn’t they resist sharing every single folder?  Why couldn’t they at least let me configure whether I want to allow this from the machine?  The only other tool I know of is DropBox, and it’s in private beta so I can’t try it out.  I wonder if there’s any other solutions, or if I could whip up something quick in .NET that does it?

Getting Soft Word Wrap in gVim and Emacs

I really don’t like most Windows text editors.  I use gVim for all of my text editing.  Everyone extols the virtues of Notepad++ and several other text editors, but they miss some basic features that really make text editing a lot more fun.  gVim lets me move around the file word-for-word without nasty Ctrl+this or that combos that require me to put my hands all over the keyboard.  I can get to very specific parts of a text file very quickly with gVim, whereas all Windows text editors force me to use the mouse.  gVim has the added bonus that it’s really rare to find a *NIX system without it, so I’m able to happily edit text on any machine.

The one thing Windows text editors always get right that I could never get gVim to do is soft word wrapping.  Notepad does this perfectly (so do web input controls.)  When you hit the end of the line, the text wraps to the next line, but when Notepad saves the file, all of the text is on one line.  gVim uses hard word wrapping by default: When you hit the end of the line in gVim, one of three things happens based on your word-wrapping options:

  1. The text scrolls and you’re in horizontal scroll unhappyland.
  2. gVim happily inserts a hard line break into your file.
  3. gVim wraps the text, but leaves a marker to indicate that this is a logical line rather than a physical line.

I hate #1.  I want to be able to see all the text in the file except in very rare circumstances.  #2 sucks when I’m writing something that’s ultimately bound for another program with no facilities for saving, like our issue tracking software; it really stinks
when all of your text has unnatural breaks because
the character width of the editor is nowhere near
as big as the web page.

This leaves #3 as the setting I use most frequently.  This gets annoying for scrolling though; my mind wants to jump from the "first" line to the "second", but this is a horizontal operation rather than the vertical operation that the display suggests.  It always takes me several tries.  I tried for a long time to find ways to get soft word wrapping in gVim, but decided it was impossible and started down the dark path of Emacs (which is actually pretty cool, but I still like gVim better!)

I found that Emacs performed much like gVim, but the way it did its wrapping like situation #3 was much more tolerable.  Still, I wanted things to work like in Notepad.  I found a blog post about enabling soft word wrapping in Emacs (M-x longlines), and it worked like a charm.  Still, I had a lot of muscle memory invested in gVim, so I decided to give it one last Google search.  gVim tip #989 is enabling word wrap without line breaks, which works like a charm.

I’m still kicking around the idea of converting to Emacs, though.  I like gVim’s "your hands shouldn’t leave the home row" philosophy, but it really seems like Emacs has better support for things like HTML and XML.