Okay, this will be a really quick article. Up until just a few days ago, I was a VS Code lover like anyone else these days. I use to write a column of top VS Code Themes and Plugins every month in my monthly blog series "Ultra List" as well, but recently, I shifted back to Sublime Text.
Why? Let me tell you in this blog post.
Why? 🤔
So while we were working on a big old project, I observed something. Some of my teammates started complaining about their systems slowing down when working on that project. They complained about this often, and after a while, I just couldn't ignore the issue. So I decided to look into it, and I found out that the culprit was VS Code. When you work on big projects with lots of files, the folder structure starts looking like this.
The problem starts here: the more files you have and the bigger your project, the more resources VS Code will start to consume. The Search Indexing and File Watcher scripts start eating up your memory. Moreover, to work on such a project, you will open each file in a new tab, leading to multiple VS Code instances running simultaneously, and eventually, your CPU usage will start to look like this.
If you have 4GB RAM, like some of my teammates, you can't code efficiently on a big project like this. And I can't tell my teammates to upgrade their RAMs. So the better approach for me was shifting to my old mate Sublime Text, see if it could help reduce the memory load on our machines without sacrificing general efficiency and important VS Code features we've all come to rely on, and then help my teammates set it up correctly. I am pleased to report that this was a successful experiment and I'm gonna stick to Sublime Text now, at least for the foreseeable future.
Check out its memory usage for the same workspace.
How? 🤔
So if you think this is cool and could help your machine run lighter so you can code faster, stay with me and find out how you can achieve this too.
Once you install Sublime Text and Package Control, here is a list of plugins and themes that can help you to have the same experience you're used to on VS Code.
Plugins
1. GitGutter: It has everything that you need from a git plugin.
2. ColorSublime: It is possibly the best plugin out there for themes. This plugin can help preview a theme real-time, even if that theme is not installed on your Sublime Text at that time. 🤯
3. SublimeCodeIntel: Code completion like VS Code but way lighter.
4. SideBarEnhancements: Take your sidebar options to the next level with this plugin.
5. BracketHighlighter: Best Bracket Highlighter; matches a variety of brackets such as: [], (), {}, "", '', , and even custom brackets.
6. PlainTasks: An opinionated to-do-list plugin for Sublime Text (2 & 3) editor.
Themes
Now that you have the basics taken care of, it's time to personalize your setup. Check out these themes and give your Sublime Text a facelift.
Other Cool Stuff
If you want to explore further and see what more you could do with Sublime Text, go check out this AWESOME list. 📃
dreikanter / sublime-bookmarks
Sublime Text essential plugins and resources
Sublime Text is a cross-platform text and source code editor, with a Python application programming interface. Its functionality is extendable with plugins. Most of the extending packages have free-software licenses and are community-built and maintained. — Wikipedia
This tiny project follows GitHub community trend to aggregate the most essential bookmarks for specific subject in the form of a handy well-structured collection. Here you will find tutorials and learning materials for Sublime Text, general purpose extensions for coding and text editing, and specialized extensions grouped by usage profiles.
This list not supposed to include absolutely all Sublime Text plugins, due we already have Package Control for this. It is intended to be a starting point helping to setup working environment, or check out for new extensions to make your existing Sublime setup more awesome. You may find ★ here and there in the list. It stands for Editors'…
It contains everything from useful books and community resources to plugins for specific profiles like JS, Python, and Ruby that could make your life much easier. You can also find some cool icon packs and fonts in there to customize the look and feel of your Sublime Text further. 🎨
Conclusion
And that's it for this post; short and sweet, just like I promised. That's my journey back to Sublime Text, a code editor I used for years before switching to VS Code. I'm really happy to discover that it's still amazing, better than ever in fact, and has a thriving ecosystem and community. Since switching back to it, I've seen a huge improvement in the productivity of my team, especially when working on big codebases. We've seen reduction in task completion times by as much as 60%, according to reports in our product management tool, ClickUp, which is awesome by the way and definitely worth checking out. So if you've been feeling done with VS Code and its memory-hungry tendencies, or if you simply want a change, go try Sublime Text and see the results for yourself.
One More Thing
If you're looking for work, we're hiring fullstack developers (MERN) at Skynox Tech! You can apply on Angellist, LinkedIn, or via direct email to info@skynox.tech. 😀💯
Ooh, and lastly, if you're already a Sublime Text lover and long-time user, please share your own experience and cool plugins and themes that I might've missed.
Top comments (173)
I forget exactly what I needed to do to improve the performance, but while working in a large workspace I've often found the culprit is the file watcher service. You can add directories to exclude from intellisense, mainly node_modules and your build output directory. The only directory intellisense should care about is your source code. Doing so led to vscode becoming much more responsive. I might make a post about it once I've finished moving house...
Looks like somebody beat me to it! dev.to/vaidhyanathan93/ulitmate-vs... main sections to note are the files.watcherExclude, files.exclude and the search.exclude, this may require customisation based on your setup, but you could also do this per workspace. Another tip is to disable extensions you don't need per workspace.
There is problem with ubuntu regarding file watching with vscode, comparing to windows or mac. And excluded node_modules, but still I was forced to increase the limit in linux. I don't know, maybe causes some issues with cpu later...
That's a good idea. A post to look forward to. 😃
That would be a great idea James 😊
please make a post about it, I found out VSCode is best for my Angular projects but old processor makes it a hassle
Woho !! Things escalated real quick down there. Anyway, I agree with you completely Niels. But consider this a quick fix. Also few laptops were old enough that even upgrading ram couldn’t help (old processors). So, by adjusting in what they have and getting the best out of it, the short term solution can be shifting to lighter options but in long term buying a new laptop is a better option of course. 😊
My laptop from 7 (8?) years ago had 16GB of RAM. I'm not looking for a cookie or anything, but RAM should always be a priority for devs.
(Granted I was also doing 3D, but I think RAM should be a priority regardless. CPU and disk space are second class citizens.)
Sublime is my go to editor, never leaving it
plus VScode = electron = chrome = RAM Eating 😆
Exactly!!
Hey Bhupesh, Do you mind sharing some plugins, themes, and Tricks here.
Some of the plugins I use
Thanks man. JavaScript Completions is ❤️
It seems that JavaScript Completions has been replaced by JavaScriptEnhancements, being the former unmaintained nowadays
I'd also add AdvancedNewFile to the list and Material Theme package.
Here's my customised preferences incase you're interested:
Totally agree, I was feeling some perf issues on webstorm when i was running a VM.
The first thing I did was a RAM upgrade, now I run 16GB and it's smooth again.
I enjoy webstorm so much I don't know how I would do without it !
But it's still nice to know that getting SublimText can be a quick fix.
I am running into the same problem with my Surface laptop 2 with 8 GB of RAM and an i7 CPU, so it's not a third world problem as Niels was trying to state. Thanks for the article and for the response though! But have to tell, Niels is right, working professionally and do not have the basic tools seems to be contraproductive and ridiculous...
same here
8gb RAM, core i7, but the laptop is pretty old and I am not in liberty to purchase another one so a quick fix is something I'd love to switch to
I am also a sublime text lover but it’s true that vscode is doing some stuffs far better than sublime. At the end I just use them both, sublime mostly for exploring code (read only) and vscode for a more intensive code editing (and pycharm for advanced stuffs :) ).
With the right extensions, I think Sublime Text can be pretty powerful. We've made sizeable, production-ready projects on it in the past. Of course, VS Code has some feature advantages over it, but still Sublime Text is pretty capable imo. 😄
Yeah that's another imperfect thing about Sublime: it doesn't work great out of the box. That being said installing extensions is quick and we just need to do that once.
The VS killer feature for me is the debug & breakpoints though, being able to inspect quickly and visually while debugging speeds up a lot the workflow IMO.
It's likely that buying another 4GB is cheaper than buying Sublime Text. I picked up a 2GB stick from my local CEX store the other day for £1. I do realise that's different depending where you live.
Sharing is fun. Here I go.
Plugins
AceJump: Allows you to move the cursor to any character to any place currently on screen.
Origami: Better split pane control.
FileManager: Manage your files without using the sidebar.
NeoVintageous: Vim emulation.
Requester: HTTP client for Sublime Text 3.
Themes
Night Owl: A port of Sarah Drasner's VScode theme. Includes both Dark and Light theme.
Rubber: Minimalist theme. A port Rubber theme for VScode.
Thank you! FileManager worked for me. Just enough options. Seems better than SidebarEnhancements which is just too much.
I had the same issue when I was working on my React Native hobby project called Sudoku Mobile (shameless plug here).
My laptop almost became unusable and my battery was draining very quickly. I switched to Atom (another Electron based app :D) for the project and I didn't have this issue anymore, but I really missed VSCode.
Atom is also good. You may wanna share some resources for it ?
I don't really know about any good stuff for atom as I didn't use it much in the end. I went back to VSCode within a few days and tolerated the performance issues. Atom couldn't property comment JSX at the time (for me at least) and that made me switch back.
What if you have only a 2015 MacBook Air with 4GB RAM? Is it still cheap to upgrade? I assume this mentality that if it's cheap for me then it's cheap for everyone is what stops many developers like you to build experiences suitable for all users (e.g people against accessibility, React concurrent mode etc)
I would like to make the hasty generalisation that if you're driving a MacBook, money is not an object in the first place.
Upgrading to a new MacBook is always a big purchasing decision. Can I afford it? Yes. Do I want to while my 2015 MacBook is working fine? No!
Anyway I'm not really talking about myself. I do web development and I'm running mostly nodejs apps in CLI. My VS Code is working pretty smooth. I'm just arguing that the mentality to expect users to upgrade to support un-optimized apps is wrong.
@moopet I think that's also a general assumption we shoudn't make. I bought my first Macbook with Google Summer of Code's money during uni. I wasn't wealthy, at all :-)
People are also allowed to save for the things they want, we shouldn't judge them.
The point here is that software shouldn't be slow, it's not "hey, who cares, upgrade your computer"
We shouldn't judge people for living their lives how they want to live them — as long as they are ethical and following the law — but when someone works in a profession then by all means we can judge them for their level of professionalism. A professional developer choosing to work on a computer with only 4GB RAM is just unprofessional.
Now I get that different parts of the world computer costs are a larger percentage of income and I empathize, but if a person is a reasonable developer their incomes can be much higher relative to many others in their region, and good professionals should invest in good tools.
Put another way, I hire freelance developers to work on projects for my company. If I found out that someone was switching to Sublime (instead of using PhpStorm) because they only had 4GB of RAM In their computer, I would be unlikely to hire them unless I determined that it was chicken-and-egg problem; e.g. that they would invest in a better computer but first needed the income to get them there. And I have actually hired someone who did exactly that, and now he works on a state-of-the-art computer, because he is a professional.
But a team of developers where many only have 4GB ram? That sounds like a recipe for a disastrous codebase.
I don't think 4GB is unprofessional per se, it depends what you're doing with it.
It's plenty for a lot of work: I've just logged onto my home dev box and checked, and it's got 6GB, is running hugo and gatsby servers and a couple of Vim instances in tmux.
And out of that 6GB? 5 of it is currently unused. You might say that's because it's headless, but it is what I use for personal development :)
You are talking apples and oranges. The discussion was about not being able to use a quality IDE on the desktop because of only 4GB RAM. An SSH target is a different fruit entirely.
You're right, but the conversation seemed to have moved on to "professional developer" with no further qualification.
For clarity then, I was assuming the original context of the conversation when I commented my opinion that developers sticking with 4GB by choice was unprofessional.
Some comments may only be visible to logged-in visitors. Sign in to view all comments.