
Supercharge your Sublime Text 3 to increase your productivity - arsham
https://hackernoon.com/super-charge-your-sublime-text-3-to-increase-your-productivity-5d02c2c1b356#.jl2arxtch
======
trishume
Good article. Sublime Text has a lot of power up its sleave. I think a lot of
people ditch Sublime for vim or emacs because they want a more powerful editor
without trying to learn the more advanced features of Sublime and customize it
to their liking.

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.

~~~
hawski
I started to wonder if Sublime would suit me.

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.

[0]
[https://en.wikipedia.org/wiki/Acme_(text_editor)](https://en.wikipedia.org/wiki/Acme_\(text_editor\))

[1] [https://github.com/hadrianw/werf](https://github.com/hadrianw/werf)

~~~
Philipp__
I am kinda thinking the same way. What I liked so much about your comment is
that I found myself in pretty same position.

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...

[0] [https://github.com/google/xi-editor](https://github.com/google/xi-editor)

~~~
trishume
I really suggest you try out Sublime with Vintageous vim emulation. Part of
the reason I spent so much time tweaking emacs is that I work in a lot of
different languages, and I had to spend many hours setting up each one.
Installing and working with new languages in Sublime tends to just work.

With Sublime I tend to use a separate terminal app for doing all my code
running and things. So if I'm working in a REPL-like language I do it there.
There's also plugins for most languages that do the editor integration I
actually want, like autocomplete and highlighting.

~~~
Philipp__
The thing is, Emacs can have amazing, if not best support for any language,
but if you install it, set it up and tweak it until molecule level. Which is
great, but it kinda tires me, you know...

Now, how you manage using separate terminal and Sublime, I mean is there any
communication between REPL and Sublime, or you just copy/paste code from
editor to REPL? Since in Emacs you can evaluate snippets, functions and do all
that nifty stuff... Actually I am afraid maybe to jump and give Sublime a
shot, but now it looks like I got nothing to lose. If I manage to cope with
REPL in separate terminal app I think I am sold. Magit was nice, but I am
fairly proficient in terminal git so it's not a deal breaker, and I never used
org-mode (I love paper notebooks for that), so I might be able to adopt to
certain extent.

~~~
trishume
When I'm using a REPL I generally have all my function definitions in a file I
edit in Sublime, which I reload from the REPL, then I just type in commands in
the REPL to try out those functions. That way I don't have to copy-paste much,
but if you don't like that style I think a Sublime plugin that used
Applescript to paste into iTerm2 wouldn't be too hard.

Also for git there is
[https://github.com/divmain/GitSavvy](https://github.com/divmain/GitSavvy)
which is almost as good and sometimes better than magit. There's also terminal
git, I generally use a combination of terminal and GitSavvy.

------
tedmiston
There are a few staple packages mentioned here, but this post largely just
repeats the Sublime docs [1][2], which are easier to read IMO.

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/](https://www.sublimetext.com/docs/3/)

[2]:
[http://docs.sublimetext.info/en/latest/index.html](http://docs.sublimetext.info/en/latest/index.html)

[3]: [https://sublimetextbook.com/](https://sublimetextbook.com/)

------
adrianN
That's a pretty neat article. Currently I'm trying to get away from Sublime
because it's closed source. I considered Lime Text, the OSS clone, but that
project seems to be dead. So I settled for vim. I'm still not as productive as
with Sublime, but I'm getting there. Does anybody know a similar article for
vim or other editors?

~~~
antihero
I'm using Visual Studio Code and absolutely loving it. If you document your
code (JSDoc) etc, the IntelliSense is absolutely incredible. There's a vibrant
plugin community, the only flaws I have found so far:

* 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.

~~~
gcp
My flaws:

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.

~~~
tornadoboy55
1b) Electron is horrible bloat. Sublime uses 70 (idle) to 250 (lots of tabs)
mb. VS Code and Atom both use 200-300Mb even when idling.

~~~
gcp
I don't really mind the static overhead as long as it stays fast and if it
could deal with 'larger than memory' files sensibly. Alas, it does neither.

I'm very hesitant to standardize on a non-OSS editor, though, so I think
Sublime is out for me.

~~~
tornadoboy55
Ideally I'd like to use OSS for everything I can (and sometimes you can, see
Transmission), but at times the non-OSS variant is simply the lesser of two
evils. I'd rather use native Atom + native Gitkraken, but alas, that'd cost me
nearly a gig of ram simply for idling. I won't stand by that kind of
inefficiency.

~~~
moon_priestess
Shouldn't you use the best tools for the job though? Unless you really need
that last GB of RAM, it just seems like you're punishing yourself for the sake
of an ideal, all to no greater consequence.

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?

~~~
tornadoboy55
The gig of RAM is not the only thing. It works worse on large files. It's not
nearly as fluid. Multiselect sometimes craps out. Searches take longer.
Battery life is less.

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.

~~~
moon_priestess
> The gig of RAM is not the only thing. It works worse on large files. It's
> not nearly as fluid. Multiselect sometimes craps out. Searches take longer.
> Battery life is less.

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.

~~~
tornadoboy55
What is it that you have in the Atom ecosystem that's (or a substitute) not
installable through Sublime's package control?

> 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.

------
stinos
Nice article, ideal to get new users started with ST. Couple of remarks:

\- 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)

------
sago
Some nice tips. ST was great for me for Python work, but became borderline
unusable for me because of one weird thing. In HTML mode it autocompletes
snippets based on the empty string.

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.

~~~
trishume
I set my autocomplete/snippet expansion key to tab (it's a Sublime setting) so
that I never have any conflicts.

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...](https://github.com/sublimehq/Packages/blob/master/Ruby/Completion%20Rules.tmPreferences)
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](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.

------
rajangdavis
I love Sublime Text, I use it for non-development work such as writing text
files because of the ease of use.

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.

~~~
tedmiston
> I love Sublime Text, I use it for non-development work such as writing text
> files because of the ease of use.

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.

------
braveo
I hate sublime text's vertical editing. It jumps around when I would rather
just have it do actual block highlighting the way every other editor that
supports block highlighting does it.

If anyone knows how to force it to do that I'm all ears, it's easily my
biggest complaint about ST3.

------
snow_mac
I used to use sublime until recently I started to use Atom and one of the
things I like is that you can easily sync your settings to a github gist so
that you can use your config across systems

~~~
davemac8
You can sync your settings with Sublime as well, although you use a file
sharing service (ie; Dropbox).

~~~
arsham
I don't suggest using Dropbox as it has its own problems. Head over to the
other article to see how it can be done easily (and safer) with github.

------
TheOneTrueKyle
Trying Atom for funsies. Will be back to sublime soon

------
SippinLean
Project files (.sublime_project) are very powerful and one of the major
features I miss in VSCode.

------
andrewmcwatters
It's too bad Atom isn't as fast or faster than Sublime Text 3. I just can't go
back to Sublime Text now, Atom is good enough.

~~~
BuildTheRobots
What does Atom bring to the party that Sublime Text 3 doesn't?

All I can of (off the top of my head) is slower and chews more memory but is
open source.

~~~
andrewmcwatters
Everyone develops packages for it, and they're much more actively supported
than ST3 packages. It's really the ecosystem.

~~~
therealmarv
My experience is that the overall Sublime packages are much more stable and do
not need so much rework and maintenance. I cannot even count how many times
Atom packages failed (maybe it's also just because I cannot see fancy failing
error messages of packages in Sublime).

