Archive for the 'viword' Category

viWord 0.6.1

Thursday, February 24th, 2005

It’s been a while since the last release (0.5), and viWord has been working fine for me, But I’ve not been using the 0.5 that you guys are 😉

I’ve been using 0.6.1 for quite some time, and beta-testing it to make sure that it’s been running fine for me for a few months before releasing it for public consumption. That said, there is still no warranty whatsoever that the software would behave properly.

Download the zip file here.

So, what’s in 0.6.1?

  • integrated the yy/yw/yb/yc commands from Andrew Koyfman
  • 1G, nG, G, gg commands
  • workaround for Word as the e-mail editor under Outlook 2003. In that mode, you can’t type anything into the To/Cc/Bcc/Subject fields. That is because Word is intercepting the keystrokes that are meant for the message header fields and sending it to viWord. I haven’t been able to find any way to properly relay those keystrokes back to the header fields, so the workaround that Andrew and I came up with is: when the caret is in the header fields, unbind each key temporarily and sending it back to the window for processing, then binding the key again. This incurs a negligible performance penalty only when the cursor is in the header fields; normal editing should be unaffected.

I got my first donation!

Sunday, July 18th, 2004

A BIG THANK YOU to Michael Mills for his generosity! Actually, this entry is way overdue, I received it on the 8th July but have been too lazy to blog it (yes, we can definitely see a trend here.)

Some time ago, I started to use the PayPal’s “Make a donation” feature to accept donations for some of my projects. I did it partly to see if an open source software developer could actually get enough to buy some coffee and pizzas from donations. Well, looks like the answer is a Yes! (US$25 = plenty of 3-in-1 coffee and Domino’s pizzas)

New viWord Release 0.5

Wednesday, July 7th, 2004

Grab it here:

The ChangeLog:

  • ~ command (toggle case in Vim)
  • Improved search: case-sensitive matching is default, remembers previous search text when you type / or ?, supports Word’s wildcard searches (not as powerful as UNIX regexp of course, but it’s not too bad really), fixed a bug with changing the search key while a match is highlighted.
  • Fixed the Capslock key bug (as reported by Tom Hall)
  • Fixed the wierd x bug (deleting a space character when cursor is to the right of a punctuation mark doesn&quotet work)

As usual, bug reports are welcome!
If you like the work and would like to show your support, please consider donating via paypal 😉

viWord 0.4 Released

Thursday, May 20th, 2004

Thanks to everyone who have shown support and interests in this little hack of mine. I’ve been using it for quite some time now. Despite some minor bugs still lurking around, I really love it myself. This is one of my few creations that I can actually bear to use :)

Grab it here:

Update: To make Word use its normal keystrokes (e.g. when you need to let someone else use your computer): Go to Tools -> Customize, click on the "Keyboard..." button, then click on "Reset All...". To get rid of it completely, do the above and remove the file.

The ChangeLog:

  • e command.
  • c modifier (only cw and cb works for now)
  • Changed the behavior of Shift-A to move to the end of paragraph (equiv. to the end of a long unbroken line in vi) instead of just the end of the screen line.
  • Fixed (hopefully) the error 5346 that was caused by viWord trying to bind to an existing combo (Ctrl-R) used for “align paragraph to right indent” (who the hell uses that anyway?) viWord first removes that binding and then binds Ctrl-R to the Redo operation (just as VIM does).
  • x now copies the character(s) onto the clipboard so you could use xp to swap characters.
  • viWord enters normal mode without you having to hit the emulate button or the ESC key when you first start Word.

viWord 0.3

Sunday, February 22nd, 2004

I am sticking to the “Release early, release often” mantra!

Well, the truth is, I’ve been using it and have been find lots of fault with it so I had to fix it for myself.

1. New commands – :q :q! :wq (this one’s for Dean)
2. Goto line using count-G (23G brings you to line 23, as would :23)
3. Delete word in both directions – dw db
4. Delete to end-of-line without getting into insert mode: D
5. Binds all other symbols ([{}]\|;'"?,<.>) so that hitting one of these in normal mode won’t suddenly insert it into the document.
6. Search backwards: ?
7. Fixed some glitches.

Grab it here!

Leave me a comment if you like it, hate it, or doesn’t work for you…

viWord community on Orkut

Saturday, February 21st, 2004

I’ve created a viWord community on Orkut, and spammed the Vim community with an announcement 😉

While creating the orkut community, I quickly whipped up this crappy logo for it

In any case, if you’re on Orkut and would like to join, just search for ‘viWord’ or use this link.

viWord 0.2

Saturday, February 21st, 2004

I have made quite significant improvement to the first version of the macro, a lot more usable now. Give it a try again if it didn’t quite work for you.

Grab it here. See the README.txt within for installation instructions.

Changes include:
“/” – find text
“n” – next occurence of the search text
“N” – prev occurence of the search text
“^” – go to beginning of line
“C” – delete to end-of-line
“G” – go to the end of file
“:w” – save current file
“.” – repeat last command
“dd” – delete current line
“s” – substitute (works with count prefix too)
“p” – paste (not exactly Vim’s behavior, only works as Ctrl-v)


Sunday, February 15th, 2004

While digging through some old archives, I found a piece of MS Word macro I wrote almost 3 years ago as a proof-of-concept, dubbed viWord. It allows you to use vi-like keybindings in Word. It should work for Office 2000, XP and 2003. vi-philes who are forced to work in Word might like it.

However, as this is only an experimental toy, it is not intended to be used seriously. However, given enough interests I might consider reviving it and making it into a proper product (for free, of course).

Implemented keybindings:

  1. Switching from Normal to Insert: i, a, A, o, O
  2. Insert to Normal: Esc
  3. Movements: h,j,k,l,w,b,$,0,Ctrl-F,Ctrl-B
  4. Undo, Redo: u, Ctrl-R
  5. Editing: x,X
  6. Count-movement: 10-j (move down 10 lines)

Get it! You know you want to.

Instructions can be found in README.txt