
Vintageous: Vim emulation for Sublime Text 3 - superchink
http://guillermooo.bitbucket.org/Vintageous/
======
eob
For the vim -> Sumblime switchers out there on HN, what caused you to switch?

I use vim exclusively but I'm not a religious zealot about technology. I've
noticed all my students are using Sublime these days. Is it just the latest
TextMate (i.e., the best GUI option if you don't like command-line editors) or
are there truly features that will convert command-line folks to the GUI?

I'm really hoping for an editor like Brackets (Adobe) to take off, which has
really good support for cross editor-browser communication for web
development.

~~~
lucisferre
I've tried a few times and just can't do it. The completion isn't actually
that great (not that VIm completion plugins are very good either) and Vintage
mode is at best a poor-mans VIm emulation. There is no sane way to control
splits with the keyboard and block selections just don't work well. Search and
replace functionality is also not great compared to my experience with VIm.
Too many deal breakers for me.

~~~
superchink
You likely will still not be convinced, but some of those issues (off the top
of my head, at least the splits with keyboard) seem to be addressed by
Vintageous (and some [plugins][0] for it).

[0]: [https://github.com/rodcloutier/Vintageous-
Origami](https://github.com/rodcloutier/Vintageous-Origami) "Vintageous
Origami"

~~~
lucisferre
I've used Origami before, but Sublime's splitting is just fundamentally
flawed, simply having some keyboard shortcuts can't fix that.

------
rzendacott
Ah, I love vim mode for Sublime. As the end user, what will be different about
this package? Better support for commands?

Additionally, is there a page that lists how much progress has been made? Is
the support at least at the same level of Vintage's yet?

~~~
avolcano
I'd love to know this too, but the author doesn't seem interested in
explaining it:
[https://github.com/guillermooo/Vintageous/issues/267](https://github.com/guillermooo/Vintageous/issues/267)

I installed it, and it works exactly the same, as far as I can tell.

~~~
rzendacott
Wow, he/she does seem to be quite disinterested. That's disappointing. It
would be really useful to know..

~~~
JonnieCache
> disinterested

 _un_ interested. I know we're all supposed to be descriptivists now, but I
can't let such a useful distinction fade away.

------
farslan
Anyone out there who still want to use Vim but with Sublime features. I've
created back then the project Subvim:
[https://github.com/fatih/subvim](https://github.com/fatih/subvim)

It's Vim combined with SublimeText features. It has even SublimeText like
shortcuts. If you are curious give it a try and see if it fits you :)

------
w-m
As someone who just started another attempt at picking up vim (actually
vintageous in this case) last week: how do I keep myself from forgetting that
I'm in a vim editor?

It'll happen every so often that I'm in the middle of something, switch to
Sublime and just start typing - as it's second nature. By the time I notice
whats going on, I typed half a dozen characters. I'll curse, undo the random
commands, get into insert mode and will effectively have lost my train of
thought.

It may sound ridiculous, but it's actually the biggest hindrance to adopting
vim for me. Am I the only one with this problem?

~~~
benjamincburns
> how do I keep myself from forgetting that I'm in a vim editor

I think actually using vim would help...

Edit: Sorry, that's a bit snarky. All I can say is that vim proficiency comes
from muscle memory. Once you adopt vim and feel the "vim flow," it's really
quite painful/distracting to use a modeless editor.

It's to the point where I was doing a phone interview recently where they had
me code in a live editor. Because I'm so used to vim I had a really hard time
just writing the code without a bunch of random-looking keystrokes.
Fortunately the person on the other end recognized them as vim commands, but
it was still distracting.

~~~
w-m
I have no problem with you being frank.

My goal is to become more efficient at editing files, the
typing/changing/refactoring part especially. I don't want a new way of
opening/saving/handling files, search/replace, version control or debugging -
it would just be too much to learn all at once.

So I thought Vintageous would be a great opportunity for me to learn the text
editing part of vim without burning down my ecosystem. You're right, it's
probably part of what leads to my confusion. Still, I thought I'd ask, maybe
someone took the same route and managed it somehow.

~~~
benjamincburns
If you don't mind me being frank, it's really not that much to learn.

Opening? :e [filename]

Saving? :w [filename]

Handling? be more specific?

Search? /term<CR>

Find next: n

Find previous: N

Find word under cursor: *

Replace all instances? :%s/term to find/new term/g

Replace all instances on line: :s/term to find/new term/g

Replace first instance on line: :s/term to find/new term

Version control? Why do you want version control in your editor? Either way,
take a look at fugitive if you must, but using the command line is better...

All of that's starting in command mode, of course.

Finally, take a look at the vim videos on
[http://destroyallsoftware.com](http://destroyallsoftware.com) \- they're what
got me to say "yeah, I need to spend some time on this..."

~~~
w-m
For each of these actions there's not much to learn, but it piles up, and my
whole development process grinds to a halt if I have to look up yet another
thing.

With handling I meant stuff like syntax coloring, tab completion, tabbed
views, side-by-side views, line lengths that adapt to the Terminal windows'
width - the small things.

Thanks for the list of commands, maybe it'll push me over the edge to do the
right thing. Destroy All Software looks interesting, but that's quite a lot of
money.

~~~
benjamincburns
Oh wow, he really changed his pricing model. It used to be a $10/mo
subscription w/ access to all videos. Sorry about that!

> maybe it'll push me over the edge to do the right thing

Oh, there's no "right thing" here, there's just efficient and inefficient.
Don't let some asshole like me tell you "you're doing it wrong!"

I hear you on the frustrating process breakdown during the learning curve.
However, if you want to learn it I promise that it's much quicker to go the
painful route and just dive in. Start off with just the basics, then every
time something feels repetitive, go look it up. When you go to look something
up, start with the internal help system, then move on to Google. Do ":help
help" to learn how to use the help system.

For me it took about a day before I wasn't stopping every 5-10 minutes to look
something up, a week before I wasn't stopping every hour, and I still run into
stuff every couple of days where I say to myself "okay, this is too
repetitive, what's the magic vim way?"

Something that also helped me - if you want to be fast, remember that the
slowest thing you can do is read. So in terms of movements, it's bad to just
keep tapping 'j/k' until you see what you want. That's like the O(n) approach.
Then there's search with an incomplete key. That's like O(logN). But then
there's search with a good key that you know will hit what you want first try
- that's O(1). Then there's the command-t plugin and/or the :vim command...

Also, either get used to using ctrl-c instead of ESC, or remap your capslock
key to ESC. I prefer the latter. Not sure how to do it on Windows, but on
Linux see xmodmap, and on OS X see PCKeyboardHack.

Syntax highlighting/indenting: add the following to ~/.vimrc

    
    
      filetype on
      filetype plugin on
      filetype indent on
    
      syntax on
    

Tabs - see :help tabpage.txt, though I prefer windows (see below).

Completion's a bit weird in vim, but for starters there's always ctrl-n/ctrl-p
in edit mode. For more advanced stuff, see Omni completion:
[http://vim.wikia.com/wiki/VimTip1591](http://vim.wikia.com/wiki/VimTip1591)

For side-by-side split views, check out :help windows. Ctrl-w, n creates a new
horizontally-split window; Ctrl-w, v creates a new vertically split window;
Ctrl-w, c closes the current window; Ctrl-w, j/k/h/l switches to the next
window up/down/left/right; Ctrl-w, J/K/H/L moves window to the extreme.

As a cheat, I've got the following in my .vimrc for nice split screen (window)
buffers that automagically resize based on which one is currently in focus
(taken from destroy all software):

    
    
      set winwidth=84
      " We have to have a winheight bigger than we want to set winminheight. But if
      " we set winheight to be huge before winminheight, the winminheight set will
      " fail.
      set winheight=5
      set winminheight=5
      set winheight=999
    
    

Wow, okay... this is a lot longer than I initially intended. Anyway, good
luck!

------
larister
I'm very much hoping they allow find in Visual mode. I enabled Vintage mode in
ST 2 a little while back and love it, but visual find would be very handy.

Edit: it does. Awesome.

------
iguana
This works a lot better than the included "Vintage" mode.

I've spent the majority of the past 15 years in vi(m), and have recently
switched to Sublime for working on projects with many, many files, plus mouse
support.

------
benjamincburns
Am I missing something here? Sublime's an editor last I checked. So's vim. If
you want a vim-flavored editor, why not just, I dunno... use vim?

Wouldn't this be a bit like building a 'vim mode' for emacs?

~~~
nilkn
Sublime Text has a much better GUI front-end than gvim or MacVim. So for
someone who doesn't want to work in a terminal and wants to use a GUI based
editor, they may feel that a fully featured vim mode in Sublime Text would
offer the best of both worlds: rich keyboard-controlled text editing and a
beautiful front-end GUI.

I just use vim inside tmux, but that's mostly because I have to write a
significant amount of code on a remote machine via ssh.

Also, I will say that even as a dedicated vim user I wouldn't be thrilled to
use vim without a large number of plugins that more or less just offer
features something like Sublime Text can offer natively, like a decent file
tree browser. So a vim mode in Sublime Text can make the barrier to entry
lower by reducing the need for the modern programmer to load up vim with
plugins.

~~~
benjamincburns
The combination of using vim and having to debug stuff in awkward places (on
boats in rough seas, 20ft in the air on hydraulic scaffolding, in garages)
with text-only interfaces (serial terminals), has totally changed me. I went
from having 4 monitors to working on a 13" rMBP.

My personal preference is vim in a quake-style terminal (yakuake on linux or
iTerm2's hotkey window in OS X) with a minimal amount of transparency so that
I can "read through" the terminal and see whatever's in the browser/document
window behind. After getting this set up, it's going to take a lot for me to
switch back to an IDE full time.

And yeah - gotta love screen/tmux.

I personally try to use a minimal number of plugins. Command-t is the only one
I use daily. I gave eclim a shot for java stuff, but ultimately found I didn't
use it very often. It's better to just not fight "the vim way," though I
definitely see how that's a barrier.

~~~
nilkn
I still love using multiple monitors (I currently dedicate an entire 27"
monitor to a single full-screen terminal with tmux as the "window manager"),
but it is really nice having the know-how to do the full development cycle
from a terminal. I used to be afraid of command-line stuff and I think it
really held me back in some ways. Because I used the terminal only when forced
to I never could remember how to actually use it beyond the most trivial
stuff, which just made it more frustrating when I had to. And I never could
find a true tiling window manager on OS X that I liked; tmux works great for
that out of the box. I still want to experiment with an xmonad-based workflow
on Linux, but I haven't really had a reason to yet.

My job forced me to get over that, and though I can still appreciate a good
GUI-based editor I don't feel any need to switch to one anymore.

------
adamors
I'm stuck on ST version 2 because a plugin I bought and use daily (Sublime
FTP) doesn't work with it yet.

What's the point of having a great editor if the ecosystem is this crappy?

Guess that concludes my great closed source editor experiment, Vim here I
come.

~~~
elithrar
> What's the point of having a great editor if the ecosystem is this crappy?

ST3 hasn't even been officially released yet. I think you're getting ahead of
yourself: you could also always fork & update the package yourself.

~~~
superchink
Actually, I don't think you can fork it, since it's a paid plugin and I don't
think the source is published.

