* 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.
I'm very hesitant to standardize on a non-OSS editor, though, so I think Sublime is out for me.
A gig of RAM is probably less than a tenth of your total resources. If it makes your job easier, surely it's worth it, no?
I ideologically like the idea of OSS, but I'm past sacrificing usability for it. Hence I'm on a MacBook with macOS coding in Sublime with 12h battery life, instead of on a XPS13 with ElementaryOS coding in Atom with 7h battery life. Or a bulky, ugly Lenovo with great battery life but a horrible touchpad and a shitty screen. But on all of those situations I'd torrent with Transmission, because it looks beautiful, is consistent, and to top it all off is the lightest and smoothest torrent client there is.
These things are true. I still use Atom on my MacBook Pro though because it has, at least in my corner of the world, a much better ecosystem than Sublime. I do keep Sublime around for the rare cases where Atom can't handle something, but if I didn't already have a Sublime license, I wouldn't feel the need to pick one up: Vim is more than capable of handling the large-file case for me. We all have different experiences though.
> Or a bulky, ugly Lenovo with great battery life but a horrible touchpad and a shitty screen.
The new X1 Carbon with the OLED panel is pretty good, I think. Color accuracy is something of an issue, but it does cover Adobe RGB and should be fantastic for anything other than professional-level color-critical work. That's neither here nor there though.
> The new X1 Carbon with the OLED panel is pretty good, I think. Color accuracy is something of an issue, but it does cover Adobe RGB and should be fantastic for anything other than professional-level color-critical work. That's neither here nor there though.
Just Googled it. Just from the Google images:
* Why is there 'Thinkpad' sprayed on lower-right corner? Ugly and useless.
* Touchpad mouse buttons, circa 1990
* Red-black color scheme
* Mouse nipple (I know this is Lenovo thing and people actually buy them for it)
I realize style is subjective, but very few people are going to pick the X1 over either the Macbook or the XPS13 in terms of design. And design matters. Not only in a 'oh this looks nice way', people are actually measurably more productive on attractive gear.
Presumably everything Electron based is using Irregexp under the hood, so I doubt that's a real competitive advantage.
The performance difference between Atom and Visual Studio Code is interesting, given that they're built on the same framework.
When I'm doing development, I spend most of my time interacting with Atom. If I had to buy another pair of 16 GB DIMMs just for the sake of running it, I would. This is what I do professionally and I'm happy to throw a little RAM at something that makes my job more enjoyable and myself more productive.
I appreciate easy customization as much as any dev, but, in this case, I don't know if that's an advantage when as a result Atom doesn't do its primary task terribly well: stay open all day, let me type code.
I'm not suggesting Atom is better than Sublime, and there are definitely many cases where Sublime is better than Atom, particularly in terms of performance. I just think Atom gets more abuse than it should given how useful it is in general. Many of the complaints I see are more rooted in what they feel an app should do in the abstract (e.g. idle at under N megabytes of RAM) rather than actual issues that affect their use of the tool.
Just writing a bit of code in Atom shouldn't rinse a fairly new MacBook Pro in under three hours.
Sublime, on the other hand, lasts all day.
2) What exactly do you mean by this?
3) This is true, the scheme is great, but themes aren't really there yet. The default is nice enough, though.
4) Also true, perhaps a plugin could work? I have no idea where I'd use macros though. What do you use macros for?
5) Also true, I use vim for those but it's a rare case.
The CPU issue seems weird, I certainly don't get 100% CPU.
2) You can't set tab = 8 and indent = 2. This isn't common, but sometimes one deals with foreign sources where that's an issue.
4) Repetitive editing tasks where just doing them once is much faster than coming up with a shell/sed/awk/perl/python on-liner. I switch to vi for those right now.
2) Also fair enough, I don't find that I have to deal with this too much. Can you switch editor for those files? It's only a Cmd+Tab away :)
4) I use multiple cursors for stuff like this.
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.
I've never really had a problem with goto method definition with ctags, and I've used that with multiple languages. ctags is usually relatively fast generating the tags, and you could probably set up so that it generates it each X seconds if you wanted.
For the project wide search, ctrlP has served me well, although the fuzzy completion is far from good (command-t is way better at that), so I would probably recommend the second one if your project is large.
Regarding switching projects, I've been using tmux for quite some time and it's a blessing. I could not imagine someone spending a lot of time in the terminal with vim and not using tmux or another terminal multiplexer. tmux is for me as important as vim itself. It makes a big difference. I have different sessions for different projects .
You have probably heard about youcompleteme. It's not amazing (doesn't come close to intellij), but it works and it's free, so the last thing I will do is complain :)
I'm not sure I understand the move back/forward in history. Do you mean undoing just some specific selected code?
vim is far from perfect. The more I use other tools, the more I realize it's limited in a lot of ways, but unfortunately when I try to use other editors, I find too many shortcomings too, so right now for me vim is the best I have =)
Regarding jumping back/forward, I didn't describe it super well. Here's the official description [1]:
> Jump Back and Jump Forward - Jump Back allows you to go to previous editing positions. This goes hand in hand with Goto Definition: you can now inspect a symbol definition, and quickly jump back to where you were previously. Jump Back is bound to ^Minus by default.
[1]: https://www.sublimetext.com/blog/articles/sublime-text-3-bet...
c-t: will bring you back to the previous location before jumping. this is the right way to do it if you jumped from another file by tag
c-o: if you run commands like gg to go to the top of the file, c-o also tracks this as a previous location. useful to know if you need to check something at the top of the file and you want to go back to where you were before pressing gg. also tracks tags, but of course if you jump to a tag, then gg, then press c-o it will bring you back to the position before pressing gg instead of the file you jumped from for the tag (more often than not im a victim of using c-o with tags)
Have fun!