What about Ex mode? I miss it from ST2 :Ā“(
Vintageous - New Vi/Vim Emulation for Sublime Text 3
That one will probably come next. I miss it too. In the long run, I want both to converge into one single package. As far as I can remember, VintageEx should be fairly easy to port to python 3.3.
[quote=āC0D312ā]
Congrats![/quote]
I ported two last night but they both have issues waiting on jon
Great work! Works flawlessly with build 3007
Could you implement āRā (shift + r) which replaces chars beginning from the current one until you end typing (and press esc)?
One thing that is not working (but iirc itās an original feature of vi(m)):
Pressing ā^ā in command mode should take you to the first character in the current line (it ignores whitespaces and tabs in front of it).
Thanks for breathing some new life into vi(m) emulation!
Thanks for the feedback!
Adding aliases and synonyms isnāt too hard, but Iām focusing on ironing out edge cases neglected by Vintage so the core becomes more reliable. I havenāt had to change it much to support complex commands, so Iām optimistic about quick progress in the near future. Complex commands make for good testing, because they uncover shortcomings in the current code.
So while Iām giving priority to larger design issues, Iāll be able to sneak in more tangible features along the way.
Also, I want to add some documentation for contributors. Adding new commands isnāt too difficult, but some instructions are in order.
But thatās long-winded way of saying: I recommend you report issues on GitHub, as Iām more likely to check them regularly:
How funny I was just trying to look into fix one of the gripes I currently have with Vintage and ST3, and come across this post.
So Iāve been giving Vintageous a try. Must say I miss having the INSERT/COMMAND mode displayed in the status bar. Also, it seems like INSERT mode is on by default, which is annoying. Donāt know if there is a setting for that, as there is for Vintage.
And about the issue I was having with Vintage, it strangely doesnāt work with Vintageous either: when using the t or f motion to get to the next occurence of a specific character in the line, using ; should allow repeating that, and go to the next occurence, and , should to the same, only in reverse.
It doesnāt work, I can use f_ to go to the first underscore, but pressing ; wonāt get me to the next oneā¦
Most of that is missing, Iām afraid. Please report an issue in GitHub and Iāll look into it. I have my own todo, but I donāt need to follow any specific order except for a couple of issues, so if your request is easy, Iāll try to do that first.
OK so after spending a few minutes with it, it seems / doesnāt allow me to search, and *, # or n donāt work as expected for searchingā¦
Kind of a deal breaker for me, but keep up the good work!
I was pretty proud of * up until now :), but Iāll check against Vim again.
Reverse searches wonāt be landing any time soon until I know whether an API for that will be made available instead of rolling my own.
The way * works in vim is that it basically sets up a search for the word under the cursor for you. So you can then press n and go to the next occurrence.
Itās also how it works with Vintage, it integrates with Sublimeās search feature, and n does basically the same as F3.
In Vintageous, it seems you have to press * again to go to the next occurrence, which also works in vim, but itās not the only way. Even if you move your cursor, you should still be able to use n.
Anyway itās nice to see an alternative vim emulation for ST, and congrats on bringing on the first ST3 plugin!
Ok, so it seems your problem is with ānā, not ā" itself. And you are right, ānā doesnāt work at all now. "ā may not work ok in visual mode, but it should behave as Vim in normal mode.
Thanks for your feedback, itās really appreciated!
Well my problem isnāt only with n, but with the fact that you implemented * as if its purpose was ābring me to the next occurrence of the word under the cursorā. In that regard, it works well, but itās not correct regarding the vim definition:
* Search forward for the [count]'th occurrence of the
word nearest to the cursor. The word used for the
search is the first of:
1. the keyword under the cursor 'iskeyword'
2. the first keyword after the cursor, in the
current line
3. the non-blank word under the cursor
4. the first non-blank word after the cursor,
in the current line
Only whole keywords are searched for, like with the
command "/\<keyword\>". exclusive {not in Vi}
'ignorecase' is used, 'smartcase' is not.
As you can see, * isnāt just a motion key, but a quick way to trigger a search, coupled to a motion
It should ideally even accept a count parameter, so typing 3* would bring you to the third occurrence. But donāt worry, Vintage doesnāt support that either
Well, I said I was proud of * for a reason. It should support counts now! Itās working for me in normal mode, but maybe thereās a glitch with other modes.
I donāt think itās 100% Vim-certified behavior, but counts in normal mode should definitely work. Maybe youāre trying to use it with a corner case like a one-letter word, punctuation or something like that. I havenāt tested many scenarios yet.
The count part is nice! I must say I didnāt try it before, kudos for that!
So youāre basically only missing the quick-search part, which is quite similar to the default āCTRL-F3 / Quick Findā binding (except * does a whole word match, regardless of the current find settings)
Just a quick note to ask for feedback.
Iāve completely reimplemented the j, k commands and they no longer use the built-in āmove by linesā command. As a result, they should be faster and more accurate. Although they seem to work, theyāve been quite tricky to implement and itās highly likely that Iāve messed up something.
This change is experimental. If it doesnāt work well, Iāll revert to the old system.
Anyway, let me know if it works for you.