* You can't add multiple folders to a project. This is fucking irritating. * The git plugin doesn't work on subfolders - IE because of problem number one, I put a group of (say, microservices) into a parent folder and add that, which in turn breaks the Git plugin.
If you can ignore those things it's bloody brilliant. Obviously after you've added a bunch of extensions and stuff to spruce it up.
It feels faster than Atom, too.
1) Uses Chrome's font renderer - it looks terrible on Windows
2) Indent = Tab size
3) Themes can't properly customize some key on-screen assets
4) No macro recording/playback
5) Can't edit enormous files
Other than that the add-on ecosystem can be a bit fiddly, and you won't find syntax highlighting for more oddball things that you'd 100% find for vim or Emacs.
Oh, and sometimes it ends up using 100% of the CPU in the V8 GC. Might be add-on related.
There are some pretty good github pages out there to help configure your vimrc into a monster. Ultimate vimrc is a pretty good baseline if you take the time to trime away some cruft.
[0] https://github.com/textmate/textmate
Edit: Assuming you are on macOS.
- basic refactoring
- go to method definition
- move back / forward in the history of selected lines
- project-wide search
- quick switch projects while reopening the files where I left off
are all faster (for me) in Sublime. Also auto-completion, though to be fair there are probably packages for this, I just tend to use vim for quick changes and haven't invested in heavily customizing it.
Have fun!
All I can of (off the top of my head) is slower and chews more memory but is open source.
I was one of these people, I spent 6 months using Vim and 6 months using Emacs, but eventually came back to Sublime because I could customize it with plugins (like Vintageous) that made it even more powerful and productive than Vim or Emacs. Especially because I wasn't constantly wasting time debugging bugs created by interactions between the piles of hacks all the Vim/Emacs plugins used.
I spent 6 entire months contributing to Spacemacs fixing bugs and broken things and there was no end to them in sight. I realized that while I switched to Emacs to get more work done on my projects, I ended up ditching all my projects in order to fix broken Emacs things. That's when I switched back to Sublime.
I am for many years now primarely vim user. I use it now mainly, because I've got used to it and it's available everywhere. I was once a no-mouse-only-keyboard user, but now it all seem like busy-work. I would prefer just to point out what I want. I am not affraid of typing as I mainly use command line and like to use ocasional pipeline with some awk scripting to achieve output that I want. I find Unix toolset more approachable than vim.
It's just that I feel like every magic incantation of vim commands spends my mental energry. I feel smart after some complex edit with only a couple of keystrokes, but a bit less focused at real issues. Editing is such a small part of programming. I understand that people may not have such problems, but that's me.
My dream editor would be something like Acme [0], but a bit more modern. I even started doing my own experimental editor [1] inspired by Acme. I mainly want a mouse driven editor with easy ties to shell. Unfortunately my development pace has been glacial for some time.
People may think their ace-jump and fancy motions are faster than the mouse, and they may be faster than the overhead of moving your hand to the mouse, plus the clicking, but when your hand is already on the mouse, the mouse is so much faster.
One great thing about Sublime's vim emulation is it is better about interacting with mouse use than other vim-things, including vim itself.
I also find Sublime is great at not taking "mental energy" like you mention. Multiple cursors can do basically the same thing as vim macros, but with macros I have to think hard about whether my commands will generalize and exactly what I want to record, but in Sublime I can see immediately if things are working (yes Vintageous works with many cursors).
Similarly the infrequently used commands take much less memorizing. I can do weird finds like "find in all .rb files in project, whole words, case insensitive" and then immediately convert my command to a replace without retyping all the other conditions or using an entirely separate command. In Emacs I'd have to Google how to do this since I do this kind of thing infrequently.
For tying to shell there are Sublime Text plugins that could do that, and writing your own would be easy. Personally I use one that allows me to run my selections through a Ruby script, or even evaluate my selection as Ruby. Example: I wanted to sum a comma separated list of arguments, so I select the first comma, spam "cmd+d" to select the rest I wanted (but not the whole file), type "+", select in parentheses, then replace the selection with the ruby evaluation. It was super quick.
I used vim for a few years, got used to that zsh+tmux combo, and my environment was mostly wrapped around Vim (not UNIX like I thought it was). Then after I gave Emacs a shot, I used GUI version, and I saw that it is not the end of the world because I didn't use it as in-terminal editor. I am seriously reconsidering ditching everything and go to Sublime.
Why? It's fast, sleek and it does the job. With Emacs I start working on something, and few hours later I am like "why the fuck am I writing lisp and tweaking emacs". I get it, people that used it during 90s, and for 10+ years, they are set in the stone, and why would they switch. But now I really reconsider my options. Vim is much better in that aspect, I spent years with it and have it much or less to my liking, but I always come to some edge case where I change editor.
For example, I want to practice few exercises from SCIP I need Emacs, because Lisp programming in Emacs is so effortless and good. I want to write some Go I jump to Vim because vim-go just works perfectly for me. When I am doing some admin work on system I run Vim, but when I want to play with Clojure I need to go back to Emacs. You see the trend? How would Sublime cover all those functional languages, is it any good?
If I could have extremely light version of Emacs, that worked in terminal, much better and much more flexible than og Emacs, with good support for REPLs. When you break the no-mouse barrier, you see huge boost of productivity, but later after some time it diminishes and returns. I know I do not want Electron based editor. Terminal preferably but not the key. Something swift and clean. Vim does the job 80% of time but functional languages just work better inside Emacs.
I am holding my breath for Xi Editor [0]. It's written in rust, has some interesting abstractions and implementations, native is priority, and overall looks like potential checker for all my boxes. But it is nowhere near to the point of replacing vim or emacs for me. I rambled too much...
So typing ">" + Enter or even " " + Enter inserts the <a href=""></a> snippet. So I literally can't insert a newline at the end of any content without hitting escape.
Doesn't seem to happen in other languages. But I couldn't find how or why or how to prevent it. So I gave up. In a related note, I found documentation a bit limited.
Sublime actually tries harder than other editors to avoid these, but it's not perfect. See for example https://github.com/sublimehq/Packages/blob/master/Ruby/Compl... which stops it from autocompleting on common end of line keywords in Ruby. This wasn't a default in Emacs so I had to spend a couple of hours figuring out how to do this myself before I could do newlines: https://github.com/syl20bnr/spacemacs/pull/174
I'm not sure there are any editors that have auto-complete on enter but don't have any issues with conflicts.
Would love to venture more into the terminal/tmux/vim land but not lose a lot of the nice key bindings that I have been accustomed to with Sublime. I feel like this is the natural progression of being a productive hacker but will wait probably until the end of the year before making the switch.
It's also one of the only programs that has never lost any of my data, even in the extremely rare event that it crashes it's always preserved everything.
Wes Bos has a book Sublime Text Power User [3] if you're looking to do even more advanced things, especially with workflows.
[1]: https://www.sublimetext.com/docs/3/
- fuzzy search example uses ctrl-p, should be ctrl-shitf-p
- idem for wrap lines example
- Put your cursor on a word, then hit ctrl+d it will select that word. just double-clicking seems faster (though I reckon if you'll be using ctrl-d repeatedly afterwards anyway it might not matter)
If anyone knows how to force it to do that I'm all ears, it's easily my biggest complaint about ST3.