Vintageous: Vim emulation for Sublime Text 3
guillermooo.bitbucket.org
guillermooo.bitbucket.org
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.
[0]: https://github.com/rodcloutier/Vintageous-Origami "Vintageous Origami"
However, if you've customised and become proficient in vim to any serious extent it likely won't be that impressive to you.
edit: For balance, it also has its annoyances, and I sometimes wonder if I should switch back.
If you want to code faster and easier and are willing to spend a couple of hours learning sublimes shortcuts, then you will like it.
Sublime's autocomplete and plugins can reduce your errors and clean up your code. (Linters)
It's cross platform and runs the same pretty much on any OS.
I don't use ST3 much but for remote editing with ST2 http://log.liminastudio.com/writing/tutorials/sublime-tunnel.... it works well enough for most cases. Where it doesn't I just mount an sshfs and work from there.
What issues did you have with CtrlP? https://github.com/kien/ctrlp.vim/
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?
I installed it, and it works exactly the same, as far as I can tell.
uninterested. I know we're all supposed to be descriptivists now, but I can't let such a useful distinction fade away.
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 :)
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?
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.
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.
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 - they're what got me to say "yeah, I need to spend some time on this..."
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.
> 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
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!Vim's been my main text editor for a while now, but I think it's misleading to suggest a shallow/gentle learning curve.
It's not the sheer amount of stuff to learn so much as it is that you have to know a lot of it at once and then get it in muscle memory in order to not break flow while you're trying to do even simple things.
It's been over 20 years since I first picked up vi. I still remember that I was murderously angry at whoever had invented it for the first month or two. It was only after that period of suffering that I found I rather liked it.
Maybe I should just look into classic conditioning and have someone beat me up every time I enter text in command mode.
Edit: it does. Awesome.
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.
Wouldn't this be a bit like building a 'vim mode' for emacs?
To some extent it is probably people not learning their new editor completely and another part is sometimes the vim-way is just easier/quicker.
Being able to escape insert mode and start modifying the text is great to a vim user things like editing inside quotes `ci"` are easy to do without a mouse, as is moving around the file without leaving home row.
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.
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.
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.
Evil mode is one of the better Vim emulation layers for non-Vim editors...and there are quite a few.
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.
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.