I just realized that I had an old version of ViMate as the primary download here and at sourceforge. Ummm. Sorry. They are both the most recent versions now and this site is back up and running my new server.
I have made the project open source and it is hosted on sourceforge.
I just realized that I had an old version of ViMate as the primary download here and at sourceforge. Ummm. Sorry. They are both the most recent versions now and this site is back up and running my new server.
It turns out I wasn't just being lazy. It really is hard for me to do what I needed to do to get a quirk free ViMate. In response to my question regarding implementing my own word movement commands on the TextMate Plugins Mailing list Alan replied:
There really isn’t much more than the NSTextInput protocol to work
with here and the string/selection methods (which return the contents
as a string).
Personally not overly optimistic about the feasibility of this for 1.x.
Which means that I'm stuck until Version 2 comes out. However he gave good news regarding that.
While I still want to downplay any potential release, I am using TM 2
myself now for most stuff. So chances for a beta before summer are
good. When a beta is out, I will gladly work a little closer with you
to make a functional ViMate plug-in.
And anyone who writes me in N months to ask on status for the above
can be certain to be excluded from any potential beta program :p
So I guess this means sit and wait. Not sure whether this warrants a smiley or a frown. I'll go with :-(
After saying I wasn't going to work on this for a while, I of course worked on it.
• #dd
• #yy
• d#w
• y#w
• d#b
• y#b
Each of the above commands now has proper paste and undo.
It's amazing, I have implemented all these commands and TextMate still isn't usable to me because I have not yet implemented the dot. Oh well, we'll get there someday.
I'm taking a hiatus from working on this plugin. I have not worked on it lately since I have been busy and I expect things to continue this way for a little while longer. I plan to pick up development again when TextMate v.2 comes out and a cleaned up and documented API is made available.
However if anyone out there feels like flushing out a few features/bug fixes on there own, I would be glad to assist you. The most notable items on my to do list are as follows:
• Fix command repeating for all commands. This is implemented system wide but non-functional for many commands. I have never looked into it.
• Cut and copy multiple lines in one chunk. ex. 3dd would currently make three separate cuts and therefore the next paste command would only paste a single line.
• Hook undo to the u key and get it to work properly across repeating or complex edits.
Once the API comes out I would like to implement the following:
• Preference pane to check for updates and change the command key from escape to a custom key combination.
• Change cursor to a block when in command mode.
• The . command.
• Hook /, *, n and N up to the built in search.
• Get correct word movement behavior (w, b, and e).
• Marks, hopefully I will be able to hook this up to the built in bookmarks.
• Hook q up to the built in macro recording
I have added a bunch of new stuff. The cut and paste is not exact yet but it works resonably well. Yanking multiple lines is not implemented yet. For now you can use visual mode to select multiple lines and cut or copy them with the y or d key. Enjoy the bugs.
Movement
* k - moveUp
* j - moveDown
* l - moveRight
* h - moveLeft
* w - moveWordRight
* b - moveWordLeft
* 0 - moveToBeginningOfLine
* $ - moveToEndOfLine
* #[movement] - move # number of times
Insert
* a - insertRight (not repeatable)
* i - insertLeft (not repeatable)
* o - insertBelow (not repeatable)
* O - insertAbove (not repeatable)
Cut
* d - cutSelection
* dd - cutLine (not repeatable)
* dl,x - cutRight (not repeatable)
* dh,X - cutLeft (not repeatable)
* dw - cutWordRight (not repeatable)
* db - cutWordLeft (not repeatable)
* d0 - cutToBeginningOfLine
* D,d$ - cutToEndOfLine
Copy
* y - copySelection
* yy - copyLine (not repeatable)
* yl - copyRight (not repeatable)
* yh - copyLeft (not repeatable)
* yw - copyWordRight (not repeatable)
* yb - copyWordLeft (not repeatable)
* y0 - copyToBeginningOfLine
* y$ - copyToEndOfLine
Change
* c - changeSelection
* cc - changeLine (not repeatable)
* cl - changeRight (not repeatable)
* ch - changeLeft (not repeatable)
* cw - changeWordRight (not repeatable)
* cb - changeWordLeft (not repeatable)
* c0 - changeToBeginningOfLine
* c$ - changeToEndOfLine
Paste
* P - pasteBefore (hacky near end of file)
* p - pasteAfter (hacky near end of file)
Scroll
* ctrl-e - scrollLineDown (not repeatable, doesn't keep cursor in view)
* ctrl-y - scrollLineUp (not repeatable, doesn't keep cursor in view)
* ctrl-f - scrollLineDown (not repeatable, doesn't keep cursor in view)
* ctrl-b - scrollLineUp (not repeatable, doesn't keep cursor in view)
If you are here for the TextMate Vi plugin you can download it here.
I am working on the full version of the plugin. I have made the project open source and it is hosted on sourceforge. Feel free to help me on it.