I'm one of the developers at Sublime HQ. We're all very excited about this release. If you have any questions you'd like to ask I'll do my best to answer them.
Are there any plans regarding first class support for LSP (or, more generally and perhaps more useful, first class support for extensions providing semantic knowledge about the code)?
I know that LSP plugin exists, but, anecdotally, folks are having trouble with it. Which i think is understandable https://lsp.sublimetext.io/features/ says Show Code Actions: UNBOUND, and this is the second most useful thing in LSP (the first is extend selection), it’s not that the plugin is wrong: it’s just that you can do only so much if the editor lacks first class UI/UX concepts for features, required to expose LSP to the user.
Just wanted to share my thoughts on why LSP as an open source plugin has more benefits than getting first class support from ST devs.
Cons of getting first class support from ST:
- ST is closed source. That would mean that the LSP source code would be closed source too and that would not allow other people to contribute to it.
- Implementing the LSP client in c++ won't make the user experience faster.
The speed mostly depends on the speed a language server returns a response to the LSP client.
- ST devs would shift focus on implementing the LSP spec which is mainly driven by Microsoft and the spec is somewhat driven by VS Code functionality. So ST would chase after offering the same functionality as VS Code, but then always be a step back.
Having LSP as a plugin allows the best for both ST users and ST devs.
It allows ST users to contribute to the LSP plugin, while ST devs can focus on making ST more awesome on their own way and adding new API-s.
All I can say is that LSP already has first class support, because the ST devs have specifically expanded the API to allow LSP to implement certain features. :)
Yeah, this is crucial to me. I was formerly a paid user of ST3 before switching to VSCode, but gave the ST4 beta a try a month or so ago. I couldn't get the LSP to work for me for Elixir, so I ended up back on VSCode for now.
I figured I'd wait until the non beta release, and try again.
The sort of minimal deal breaker level of support for me is being able to jump to definition. The symbols, if I understand correctly, are based on the syntax configuration, and for the common Elixir one, it includes the type definition line, each function head, and the callsites of the function, which makes it nearly useless for symbol navigation.
I figured LSP would help in this regard, but I couldn't make it work. The docs were vague, and I think I had to put some JSON configuration structure in some file, but nothing I tried I guess was the right file or right structure.
Still, I love everything else about Sublime and am excited now for multi-tab-select, so I'll probably give it one more try. Hopefully LSP is better integrated or documented by now.
Let me also give an insight why keybindings are UNBOUND :)
Each person has different criteria of what is important,
Some people like code actions, some think it is the goto definition command, but almost all keybinding in LSP are UNBOUND. The main reason is to not cause conflicts with default keybindings.
Here is an example for code actions. Most editors use `ctrl+.` to trigger code actions,
but `ctrl+.` is a default ST keybinding used to go to the next modification in the code.
A lot of people consider it bad if a plugin overrides default keybindings,
so LSP lets the user decide what keybinding to assign to LSP commands.
As a developer, I tried to use a lot of code editors, my main criteria being performance, and I've stuck to ST since the first day I used it. Your editor is awesome and in term of perf you're far ahead. Thanks for your work, and also thanks a lot to adding the M1 support with ST4! I didn't expected it (ST3 works fine with Rosetta on M1) and it's much appreciated.
Thanks for introducing the multi select feature in text editing. There may have been other editors before which had but Sublime was where I first encountered this and where it felt natural.
It has saved me countless keystrokes!
I use VS Code now but it has started getting slower and it may be time to go back to sublime!
IMHO, VS Code makes for a fine cross-platform IDE (for those that like IDEs) but is a bit heavy-weight as a text editor.
I tend to use them both in different situations. If I want something that is FAST on very large files or projects, with superb language support for large numbers of languages and markdown - I use ST.
I use sublime 3 pretty frequently, and am aware of this feature, but haven't experienced a moment where this was useful, or at least, not more useful than just running find-replace (which is fantastic on sublime with its pattern matching and speed and what not btw). How do you use this effectively?
Hey there,
subl is absolutely the best when you quickly need to open and edit a huge file. You cannot, however, do that when the file only has 1 line. Do you think it might be possible to get that fixed at some point? Opening a 1 line 1GB file on a modern machine brings subl to a complete halt and regex editing is sheer impossible.
Hi! I'm struggling with the same problems (Debugging huge ASM.js files).
The best modern, non-vim editor to handle such files I've found is Cuda Text: http://uvviewsoft.com/cudatext/
Absolutely top tier lightweight code editor for special tasks.
Sublime is awesome, thanks! I've purchased an upgrade straight away.
Can you pretty please fix the issue where files deleted/renamed outside sublime are shown as unsaved? It often ends up with a lot of wasted debugging time until I realise I'm working on the wrong file
Please show "filename (deleted)" on the title, instead of "filename •". Thanks!
Are there any plans to open source the GUI system? It could be a hugely beneficial for a set of cross platform apps.
Thanks a lot for creating this piece of software art. I’m a user since the v1 and no matter what the editor du jour is, I always fallback to ST and Vim.
This question has been asked a lot, so thankfully I've got an easy answer: You don't actually want to build on top of our UI toolkit. We make breaking changes all the time, there's very little documentation and no release cycle at all. This isn't a problem for us as we have in-house knowledge and can fix any breakages trivially, but you don't want every open source project to have to maintain it's own fork of a UI toolkit.
I've loved Sublime for years, and it's always the first software I install on a new machine. I even voted with my pocket by buying a license.
However, since we started using Yarn workspaces (for JS), I've needed to switch to VSCode because its auto-import is just so much better, and it's one of those things that's hard to go back from, once you're used to it. Sublime text already indexes my code for search, which can probably be used for path suggestions / automatic imports without affecting performance too much maybe? I dunno.
I wouldn't mind it being a plugin either (before Yarn workspaces, I'd use FuzzyFilePath plugin which worked pretty well). But native support would mean the performance would be on par with what I've come to expect from Sublime Text :)
I don't have any questions, but I would like to thank you and the rest of the team at Sublime HQ for developing such terrific products. I've used Sublime for various purposes for about 7 years now and just purchased, I think, my third license for it. And if I had to label any of my dev tools as a "must-have" for the way I want to work, I would probably put Sublime Merge first.
ST4 has a number of performance improvements in relation to large files, but we don't plan on not loading the whole file into memory as this is a core assumption in the entire UI stack.
Congratulations on the new release though, it's been my favorite editor for years. Just a heads up, when you upgrade an existing license, the instructions say to click on Help > Enter License, but you have to remove the current license before you can enter a new one.
Yup! I just ran into that too. Also, it looks like I could have upgraded my existing license for $70 via going that route, instead of buying a new one for $80. (Np for me, I'm a huge fan, but for other existing users check out "Help" menu before buying a new license)
You could use philosopher John Perry's method. Put every activity on a To Do list, ordered by importance. Procrastination is doing lower-down items instead of higher-up items. Perry has the top of his list filled with so many awesome items that even things lower down are still well worth doing.
So, it sounds like you could add more awesome things to do to the top of your list, until your procrastination becomes things like..watching Sublime tutorials. He explains his method in detail on this page:
Folding code with curly braces doesn't "eat" the brace. It's indent-based, not syntax based. There is a 2 or 3 years old issue on their github, and they don't plan to fix. A little annoying for a paying editor.
I'am using it since 2 years, and i planned to pay the license as soon as a have a stable income.
For me it's the best second editor, i always have it open when i do an operation. I have different main tool / editor open but always sublime text as a second tool.
Thanks for this release! I use ST every day and I love it: the speed, the efficiency, everything.
The one thing I miss, though, is manipulating files from the left panel (moving files especially). I know there is a plug-in doing that (Side Bar) but it lacks drag-and-drop support.
I was surprised to see "By default, GPU rendering is enabled on Mac, and disabled on Windows and Linux". Is there any reason I shouldn't manually enable GPU rendering on Windows/Linux?
Windows and Linux have a much larger variety in hardware and drivers and much lower prevalence of high-dpi monitors. So we felt that for now it would be better to leave it disabled by default. This may change in the future.
You can use it however you like, but the moment I get to so many tabs open I can't read the titles of all of them is the moment I know I have too many tabs open and just start closing old ones, likely with "close others" action.
You have ctrl tab and alt-# but once tab names are no longer visible/readable I don't see the reason to keep so many open. I think the filetree view is exactly how 100s of files should be organized for finding a file you can't remember the name of or ctrl-p for quickly opening a file you do
I tend to open multiple windows instead. Though, to be fair, I usually do that on a per project basis. I try to close tabs once I realize I'm not going to be using them in the near future.
Basically the exact opposite of my browser habits, where I easily have 100 tabs open at any time, lol.
Arm64 builds are available to download just like any other version. The port was done on a RPI 4, but it's also been tested on a PinePhone and a Nintendo Switch.
Is there a reason why ST re-indexes everything on every update? (I'm fairly sure it didn't used to).
My workflow involves keeping 9 sublime projects open most of the time (damn microservices), and restarting sublime after an update makes my computer very slow (not unusable, not noticeably laggy) for 5-10mins each time.
Relatedly, sublime has an excellent changelog window, but it only shows up after you've already updated! It would be really nice if I could see the changelog before I decide whether to update or not...
When the syntax definitions change, the symbols that need to get indexed change as well. Hence the project needs to be re-indexed. There are settings for controlling how many resources the indexer is allowed to use.
We only ship downloads from sublimetext.com. Any other avenues like homebrew, flatpak, etc. are supplied by third parties with no relation to us. Sublime Text on macOS has its down update mechanism that you may prefer over homebrew.
Thank your for bringing into the world this beautiful tool. I paid for ST2, ST3 and SM and it brought a lot of joy into my work. I'm more into VSCode now (ST python editing experience has been lagging behind), but I keep ST close for out of project editing.
I hope one day you will release your UI toolkit. Since it's crossplateform, fast, and plug into Python, it could be a wonderful alternative to PyQT, wxWidget and the like, and we really need something in the Python world.
> I hope one day you will release your UI toolkit. Since it's crossplateform, fast, and plug into Python, it could be a wonderful alternative to PyQT, wxWidget and the like, and we really need something in the Python world.
Note our UI toolkit is really adjacent to python - there's no integration there at all. See here for my answer in relation to releasing/open sourcing our UI toolkit: https://news.ycombinator.com/item?id=27230608.
> Note you can upgrade to the bundle from either a Sublime Text or Sublime Merge license.
Right now I have a ST3 license and would like to upgrade it to both ST4 and Sublime Merge.
If one upgrades to a bundle now, will it be possible in the future to upgrade the bundle license to a single product one? Or is the only option to buy a new single product license instead?
(I’m ok with it either way, I just want to find out so I can plan better.)
Regarding the licence upgrade options: Are there any solutions for users owning a single licence for both Sublime Text 3 and Sublime Merge? My Sublime Merge licence for example is still valid for 2 years from now. If I try to upgrade my current licence and want to bundle them together it says the price is 152 USD. Any options for users like me to not make them pay twice when choosing the bundle licence?
I am wondering if it's possible for Python plugin to add custom UI elements?
For example, if I am using Julia/R I want side panel that shows all my current variables in memory. Is Sublime plugin system capable of adding UI components such as variable/plot viewer and add custom interactions to those UI panels(i.e. zoom/rotation for plots)?
About Sublime Text says that I have a Single User License registered. Is it going to prompt me to upgrade, or am I grandfathered in some way? I bought this Sublime 3 license in Feb 2018. Just trying to understand what's going on. The app itself is great so far, especially the GPU performance.
Your license is still valid for all versions released before Feb 2021 (3 years after purchase). Once you update to a version released after that date you will see a "LICENSE UPGRADE REQUIRED" in the title bar. Under `Help > Upgrade License` you can then purchase an upgrade. There is also a popup prompting for an upgrade if you've entered an "expired" license anew.
Newer licenses don't work on ST2 for technical reasons, but I'm sure we can work something out if you contact our sales support (bottom of this page: https://www.sublimehq.com/sales_faq)
I can't really say one way or another. Given that we can't feasibly test on the large variety of ARM devices out there I think it will depend on how maintenance free the ARM Linux builds are and how much people ask for a ARM Windows build.
Do you expect that working with Python codebases will get better with this release? I mean it in the context of code completion and other "intelligence" features.
It's by no means ST for terminals but Micro is well worth a look if you haven't seen it. It has sane keyboard shortcuts, nice syntax highlighting, mouse and multi-cursor support.
Could it be that you‘ve already been using the new GPU rendering in SublimeMerge but not ST3?
That would explain the visual corruption issues I sometimes have with Merge but not ST3. In Merge some actions, sometimes (mostly in the settings) corrupt the application window (sometimes also after minimizing and sleep) on my MacBook. To me it looked like a rendering/GPU issue. It looks like blocks of pixels having different colors, lines shifted, etc.
Yes we've been shipping the hardware accelerated rendering with Sublime Merge for some time now. A bug report would be welcome (Under Help > Report a Bug)
I can see personal licenses get the 3 years worth of updates that you've mentioned elsewhere in the comments here. However, business licenses get 1 year of use before it expires, but I can't tell if that includes upgrades from ST3 to ST4. Can you clarify what the status is for that?
Business licenses follow the traditional subscription model. The licenses don't expire, but they do get revoked once the business either revokes them or stops paying. Because of this there is no upgrade from ST3 to ST4 - it's simply included in the subscription.
Would you ever consider a licensing model similar to Cockroach DBs BSL where older versions fall into the public domain/are open sourced once they're no longer revenue generating? Or perhaps once a new major version is out?
Is there a way to go back to the trapezoid-style tab UI instead of the rounded new Chrome tab UI? I didn't see it in any of the preinstalled themes but maybe there's a flag somewhere.
We do not have any plan to do this, though there are some features we're looking at for improving existing terminal packages.
I personally wouldn't ever use a embedded terminal, as their user interaction inherently conflicts with the rest of the application. ctrl+w for instance needs to both close files/tabs as well as delete a word in the terminal.
That kind of feature requires integrating a TypeScript compiler, akin to an IDE. Sublime Text is first and foremost a text editor and such doesn't have that kind of information. You may want to look at plugins like LSP for that.
I've been using Sublime Text long before I started working. I use it for any code or text related functionality. Of course it's also used internally by everyone working on our products.
I've always been a big fan of using snippets and auto-completing based on open buffers in a project instead of using LSPs.
I haven't used ST in a while but decided to install ST4 to try it out.
I opened a Flask application that uses SQLAlchemy. I opened a Python file and typed User. and then it showed me a list of fields and methods on my User model without having the User model open in a buffer.
I did the same thing in an Elixir project and after installing the Elixir package it worked for project specific "things" in my app. Like after typing UserView. it showed me only functions available in that view. Likewise it did the same thing with context modules, it picked up all functions inside of a specific module.
In both cases as I started typing "User" it showed me options to pick from. In both cases it also listed out the number of definitions for a specific "thing" and lets you quickly jump to a specific one. If you mouse over a function it brings up the list to pick a definition / reference. There's also key binds to bring up a CTRL+p'ish feeling menu to see and preview the file where something is being used.
It's not as good as a LSP but it's definitely a few notches above what I've seen in other editors and the best part about it is not needing to configure multiple LSPs and it's lightning fast.
How does it compare to the autocomplete in IntelliJ/Webstorm/Phpstorm? The amazing autocomplete is most of what keeps me on Jetbrains, but their software is soooo slow.
IntelliJ's autocomplete is much better, but it's doing some heavy lifting to get such good results.
I haven't gone crazy testing ST4 btw, I played with it for like 20 minutes. It felt like it was maybe 65% between ST3's auto-complete and what you'd get with a LSP back-end using VSCode. Meaning it's closer to VSCode than it is than ST3, but not as good as a LSP, but there's also no effort to get it set up so it's a reasonable trade off if you're someone like me who just wants pretty good auto complete without configuring a million tools to run in the background.
I haven't tried TabNine but according to its home page it doesn't support Elixir. It also requires a monthly subscription (the daily limit would be consumed in about 5-10 minutes of coding). I don't mind paying for things but at this time I'm not interested in subscribing to more services.
YCM feels more like a LSP client than buffer / project level auto-complete. AFAIK it requires you to have a language's runtime specifically installed which is a deal breaker for me. Most of my apps run in Docker and I don't have local copies of any runtimes installed.
ST4 works wonderfully in this case because it parses everything out based on syntax highlighting rules.
I feel bad using VSCode after years of supporting Sublime (by purchasing a license). However the one case where I do use sublime repeatedly? When I need to open an editor QUICKLY. It boots faster than VSCode, and frankly, it finally broke me of my constant habit of VIMming now that I have it on my mac, win and linux boxes. I am eager to try V4, but I'm so deep in VSCode now, I don't know if I can find my way out! I can even cross compile C and debug in VSCode!
To me, VSCode competes with IDEs, Sublime competes with text editors. Startup speed accounts for a solid 95% of that distinction. If I need to make a quick edit to a file or write down a temporary (but reasonably persistent) note, the only tools I've tried that let me do that in less than 3 seconds are Sublime, Notepad, and Notepad++. Among those choices, Sublime is the clear winner in overall usefulness and functionality.
Not just startup speed, but speed/efficiency, period. I use Sublime a lot to manipulate decently large csv, json, etc. files. Multi-cursor text wrangling still works well even with 10s of thousands of cursors, VSCode chokes hard way before that.
I don't understand the startup time issue. Tools I use regularly like VS Code, IntelliJ, etc. are constantly running on my machine. I pay their startup cost once per reboot. Once they're running, they open files* as fast as Sublime for me. There maybe other use cases, but startup time feels pointless to me.
*files of sizes I work work. I don't care about gigabyte-sized files; if I do, vim or my existing ST3 license are good enough.
Agreed, it's nice and fast. Sublime is my go to for notes, storing quick tidbits, quick macros (this has saved me lots of time), data editing, little bits of quick code, and SQL scratch pad. There is probably a ton more I could be using it for.
For me, I use Goland and Pycharm as IDE, and VS Code as editor. I also used Sublime, but found that VS Code somehow surpassed it, and startup speed is also very fine (if you have strong computer :-)).
Same. I don’t tend to need an IDE all that often. More often I want to read code and I need something that opens up FAST with good support for a WIDE variety of languages out of the box. ST ticks that box for me.
My favourite aspect of sublime is that the "sessions" are so reliable.
I often just open it to jot something down, and before I know it I have 15-20 notes on separate pages, I'll consolidate and save them to a file somewhere or delete them if necessary.
It's just a super reliable scratchpad and a versatile modern textfile editor.
This is exactly how I use Sublime Text. It's probably a workable development environment, but there are too many solid alternatives for that purpose for me. But as far as a quick text or code editor, there is nothing else I'd rather use.
I can relate. Huge fan of ST. I switched to VSC because of some integrations that were not available on ST. I hated it, it was only out of necessity. Everything on VSC just felt... sluggish, compared to ST. There's this barely noticeable input lag. Autocomplete seems to lag ever so slightly. The startup is just a smidge too slow. And so on in all dimensions.
Alas, now I'm used to it, and I can't go back because of the same integrations that made me switch in the first place, and new ones I've found since. All the crispness and snappiness is gone in favor of deep features. I accidentally became an IDE-guy.
You almost definitely speak the truth, but that kind of attitude towards performance is why so many apps are so awful to use now. Especially if you can’t afford the newest Mac.
For people not fortunate enough to own an M1, it’s a slow to start typical Electron app. Don’t get me wrong, I love and use VS Code. But performance isn’t in the same league.
Sublime Text basically does what you describe above on ANY hardware.
I mean... I would hope pretty much anything opens ~instantly on the most absolute cutting edge custom-designed SoC from one of the richest companies in the world. hahah ;)
On M1, Sublime is still faster than VSCode to open. The bouncing icon is not even done bouncing back down that the whole project is open in Sublime.
Yes still very fast in Vs Studio, but there's always something nice about Sublime being able to get to a file so quickly.
I don't think sublime really compares to IDE's like vscode and jetbrains products.
It sorta is in just the text editing realm similar to vim and emacs. Sure it can do more but I feel like it's not fair to compare it. That said sublime text is probably the only text editor I ever used that comes even close to competing with vim and emacs for text editing.
Do you actually ever need to open a new editor? Why not just start whatever editor you want when you boot up, and then open files in it?
You probably don't shut down and start up your web browser every time you want to open a new site, so why would you do the analogue with your text editor?
> Do you actually ever need to open a new editor? Why not just start whatever editor you want when you boot up, and then open files in it?
Speaking only for myself and not the GP: due to a lifelong habit of putting things away when I'm finished with them, I always close windows and quit applications when I'm done using them for my current task.
> You probably don't shut down and start up your web browser every time you want to open a new site
Not literally every time I visit a new site, but yes, I quit my browser every time I'm finished with my current browsing session, even if I might end up launching it again in 10 minutes for a different reason.
I solved this need long ago with BBEdit (hi Rich!): I leave it running all the time. It is the only application that starts with my user login, and it is always available.
I don't get really get this "quickly" thing. I just checked, on my 2014 MBP my VSCode takes < 3 seconds to open a project from shutdown, including opening 14 files. Checking Sublime Text 3 it's faster (1.5 seconds?) but 3 seconds it's not enough for me to care.
I tested "Visual Studio". It takes ~10-12 seconds. For some reason VSC code fits within my threshold of "fast enough I don't feel like I had to wait at all" where as visual studio feels like I'm waiting. I guess your threshold is lower than mine though.
> Sublime Text license keys are no longer tied to a single major version, instead they are now valid for all updates within 3 years of purchase. After that, you will still have full access to every version of Sublime Text released within the 3 year window.
Life is expensive and getting more expensive every day. The median home price is twice as expensive as when sublime released for $70 in 2008. Everything from a car to a loaf of bread is more expensive and your developer needs pay for housing and loaves of bread too. As it stands the new permanent price of 99 is only 41% higher than in 2008.
Any chance you can get your employer (if you have one) to buy you a license? Some employers will help out their staff by buying licenses for IDEs, or textbooks or stuff like that.
It's not really much though... Software engineers make that in an hour or two, that's reasonable price for 3 years of updates of the primary tool... And it's a business expense. And as the sibling comment says, a game costs about the same.
I agree with this very much. Both Sublime Text and Sublime Merge are quite cost prohibitive, particularly so for individual users. I've mentioned this here and elsewhere before and often others will attempt to deflect this with getting an employer to cover it or that it isn't much for a developer, but that only holds true for a smaller subset than they realize.
One can buy a copy of Windows 10, an entire operating system, for about the same price (or often considerably less!)
Mostly, but allowing access during the window on an enduring basis is generally not typical of subscription models.
This is more like dated entitlement than subscription.
Most subscriptions have much stronger pressure to renew, including inability to install or download outside subscription period, version limits, software quits working, and, and, and...
I think this implies that after 3 year, you can keep using whatever is the last version you were using. It's basically license to get what you have right + any versions in the next 3 year.
JetBrains also has a similar license for yearly subscriptions, where you can keep using whatever version was supported at the end of the license.
Subscription models like Office365, Creative Cloud, etc., lock you out of the software version you’re already using when the subscription expires. In this approach, you can continue to use that version just fine. (And even still upgrade, if you’re yet not on the newest version your license extends to.)
Normal subscription models make you lose access to the software if you stop paying. With Sublime Text's new license model you retain full access except to updates released after the 3 year period has lapsed.
Not really. Subscription means that the thing stops working once you stop paying. This is a purchase with included maintenance subscription, a bit different (and much better).
Not really since you don’t lose access to prior versions. It’s more like buying the old Photoshop CDs but then getting three years of updates with that purchase.
That is a good model, but I'm a little confused about the transition. My license from 2015 obviously doesn't include ST4, but does it still include all versions of ST3 since it was purchased before this change? Or was it retroactively updated to only capture ST3 versions released during that 3-year window?
Why's that? It depends how frequently a major release happens. If it stays at "4.x" for 5 years, I'd way rather have the "tied to a single major version" license :)
That's the problem, though. The old model gives Sublime weird incentives, where they would be better off bumping major version more often to force people to upgrade. Or push features back until next major. And if they don't do, they are basically working for free for a few years.
It's software like Sublime that sustains my faith in the software industry and why I'm still a developer.
It's beautiful, efficient software that single-handedly proves that desktop software in 2021 doesn't have to be a shit, low quality side show to SaaS "apps" and mobile.
Heaven knows what their code looks like. Perhaps it's best it never goes open source so we can sustain the Opera-esque magic of a <10MB binary that packs so much punch.
> (…) Sublime Text has — in my experience — only gotten faster. I love software that does this: Software that unbloats over time. This should be the goal of all software. The longer it’s around, the more elegant it should become. Smooth over like a river stone. I have full trust in the engineering of Sublime Text because I’ve used it for over a decade, but also because it always feels like a fast, focused tool (even though it’s actually very complicated) and has only become faster the longer I’ve used it.
The whole essay is a nice read.
EDIT: Something else I wanted to add: I’ve tried other programs (file managers, for instance) that attempt to emulate Sublime Text both in interface (keyboard-driven, command palette, etc.) and speed, but they mostly manage to hit the former while blowing the latter. Fast software is hard!
I don’t use sublime in my day to day, but always keep it on hand because it’s the only IDE that quickly opens for viewing very large csv or similar files without a hitch. PyCharm, VSCode, Aton all barf under these conditions.
I buy mostly nothing, use ms alternatives like libre office, blender, gimp, resolve, darktable, etc, but sublime text has been a fantastic lightweight ide, like a notepad++ or gedit. Even when other big companies are coming out with nice free smaller than before apps, I'm happy to have bought sublime. I find I can use many editors at the same time for different uses to separate my minutia.
I love it in general, but in particular there's one feature that I can't do without: column mode. I don't understand why other editors haven't copied it (at least to my knowledge. If you know any other that has it, I'd like to know). For those of us that often work with CSV-like formats, it's a real time saver.
It's also better behaved for huge files than any other editor I've tried.
UltraEdit is probably the best text editor there is. Not the best IDE or anything, just the best text editor. It seems thoroughly underappreciated, though, for some reason.
It's the only editor I'm aware of that can do do disk-based editing, that is you can open a file of multiple gigabytes quickly and edit it because it doesn't load the whole file into RAM.
I used UltraEdit a million years ago and I think it’s just a matter of familiarity. I remember being unable to go back to BBEdit when I switched back to Mac from Windows, I was so tuned in to UE’s power features.
When I tried Sublime 2 I wanted to like it but it just felt weird, so I went back to… TextMate, which probably feels weird to other (especially younger) people. But I’d been using TextMate forever and had a lot of things integrated with my shell so that was my “normal.”
I’ll give Sublime another try though: I want their business model to work, I love that they’re cross platform, and the plug-in API looks pretty nice now that I’ve done a bunch of Python work.
Same here! Made the journey from QEdit to Vim to UltraEdit to Notepad++. These days I'm dabbling in Emacs and Notepad++.
Emacs for Org-mode - arguably the most revelatory single piece of software I've seen in 40 years of working with Software. Notepad++ is a safety crutch that I haven't let go.
Visual Code is OK. Not exciting though lots of respect for it.
UtlraEdit's smoothness, speed and polish are highly commendable. Just don't have the need to spend on the annual licensing for it.
QEdit on DOS... now that brings back some memories! I went in for their flagship TSE (The Semware Editor) when it came out and was duly impressed.
I have used Notepad++ as my regular non-IDE editor for probably 15 years; there are a handful of (semi-)unique features that I really appreciate. I'm guessing UltraEdit keeps its user base for similar reasons.
Then there is SlickEdit which has been around for decades as well. I wonder how they are able to continue to be in business with all of the editors such as Visual Studio Code being available for free.
Back then I loved UltraEdit. It was the fastest editor at the time and could open even the most humongous files.
Since then, I've used notepad2 for quick editing. And even for coding. Really loved notepad2. It could only edit one file at a time but that was part of its charm. I would have multiple notepad2 files open while coding.
Back in the DOS days I used Brief, Multi-Edit (syntax highlighting!!) and the Borland SideKick TSR notepad, remember that?
Nowadays on Linux, I code and write everything on Vim. Can't live without it. Cured my carpal tunnel too because I don't have to move my fingers to use the arrow keys or mouse.
I have UltraEdit. It's okay. The wordfiles are woefully anemic to define languages. The snippet system as well. It really needs a revamp. Also, the MacOS version IS different from the Windows version. ST is the same on both platforms and that is important to me.
my work makes us use UltraEdit (custom langauge) and frankly I hated it so much I wrote a custom language plugin for sublime my self so I could switch back.
UltraEdit just feels like it's stuck 10 years in the past.
Same. I've used a lot of git UI tools in the past (SourceTree, TortoiseGit, GitKraken, Tower, GitHub Desktop, SmartGit to name a few), but when I first tried out Sublime Merge I was blown away and never looked back. It was insanely fast. The UI makes sense and intuitive. Plus the killer feature which is customizable commands in every menu you can think of.
Desktop software is superior to web in virtually every way except:
(1) Collaborative features and syncing are easier to build when all the data lives in the cloud. There are currently no easy ways to build collaborative decentralized apps that scale and perform well and don't lose data. The best compromise solution today is probably cloud syncing, which is the Apple approach and keeps most of the brains local while using the cloud as a cache and a relay... but that tends to lead toward more and more stuff going to the cloud over time.
(2) The cloud is the only DRM that works. Cloud software can't be pirated because the user doesn't even have most of the software. At best the user gets the UI frontend in the form of obfuscated JavaScript or WASM.
(3) Due to #2, it's possible to easily collect recurring payments. "Recurring revenue" is the holy grail of virtually all businesses. Some VCs don't even consider non-recurring revenue in valuing a startup company. If your company collects $1M in one-time licenses and $100/month in subscriptions, some investors will literally chalk you up as having $100/month MRR.
(4) Cloud SaaS is a political loophole around free-as-in-beer ideology. The "information wants to be free" ideology tends to poo-poo commercial software and insist on the freedom to pirate everything, but cloud SaaS gets a free pass. Even better: with cloud SaaS you can use FOSS software without giving anything back! ... unless the license is AGPL, BSL, or Commons Clause, but those are not "true" FOSS licenses according to the FSF. (The AGPL sort of is, but it's also not strong enough to really prevent SaaSification.)
(5) Last but not least: shipping software sucks, especially on Windows. The Windows MSI installation subsystem is a horror from the deepest smoldering pit of hell. Be sure your company offers mental health benefits for PTSD treatment if you have to ask an engineer to deal with it. Mac and Linux are a little better but they are collectively only about 1/4 of the desktop market. The web offers a zero-friction "install" process that makes adoption and updates seamless and easy.
If those problems can be addressed, we can see a renaissance for real software that serves the user and doesn't have 100+ms latency for every action.
I don't think that (1) is true at all - you have the same problems in building a collaborative application using a web app as you would desktop software (e.g. let's say that you want to do multi-user real-time collaboration - you're going to need to use CRDTs no matter if you're writing C++ or JavaScript).
(2), (3), and (4) are true (they're why I've stopped making my tools available to others), although from a business sense, which is separate from a pure quality sense.
(5) can be addressed with some basic tooling and meta-tooling. I don't think that these are that hard - and, more importantly, the web has a complementary problem, which is that you have to do a lot of engineering to get things you get for free on desktop (most notably, persistence - compare the ease of setting up a database service for your cloud app with just writing to a file on desktop).
I like an editor that's fast enough, isn't bloated and isn't Vim.
Don't always need the IDE.
And although I can use Vim, I'm just not as efficient with it to use it 100% of the time. I learned a little to be able to work on remote servers but that's all I need. I can use a GUI editor like Sublime for the rest.
Before I switched entirely to Vim I used a remote editor plugin for Sublime that let me edit files over SSH. Didn't work for every case but was handy for editing webpages live on my dev server before the age of Vagrant and Docker.
A plausible explanation is that it's doing some kind of preprocessing of the file into a data structure that allows for faster or more responsive scrolling and editing of huge files. For example a rope or similar: https://en.wikipedia.org/wiki/Rope_(data_structure)
I'm a Data Engineer that works all day with all sorts of data, most of which gets streamed through python, dataframes, some sqlite, lots of awk/sed - but at least a half dozen times a day, every day, I drop a massive chunk of text into Sublime and crank through it - its progressive regex, fast filtering, search/replace are just coded into my finger DNA - It handles absolutely huge files that would cripple something like vscode - I understand why some people who have been using Textmate for 20+ years will never use another tool as their primary text-editor - once you've found "the one" - it almost becomes part of you.
Happy to buy every version of Sublime that ever gets released.
I'm blown away by how snappy this is. It always is, but it's even better now. This is really impressive work.
I don't think I'm the target audience here. I just spent 30m trying to tune this for a TypeScript project, and I can't seem to easily get eslint, prettier, and a few other tools working. I added the TypeScript language server package, but it doesn't offer any of the effortless reference navigation and refactoring I'm used to.
Having said that, am I just missing something? Can Sublime be that kind of editor?
I think I'd love to give it a shot, but without these conveniences I'm feeling like I should stick with VS Code.
I've used the following list of packages for eslint, prettier, and TypeScript. It's not as effortless as it should be, but the two LSP packages in particular do give reference navigation that's pretty equivalent to VS Code.
If you're on macos, I also recommend creating a file at ~/Library/Application Support/Sublime Text 3/Packages/User/Default (OSX).sublime-mousemap with the following contents -- this adds a cmd+click "go to definition" shortcut that's also equivalent to what VS Code provides. (I guess the path should be "Sublime Text 4" now? but after upgrading, the config at the "Sublime Text 3" path still works for me.)
I've tried to switch to VS Code a few times -- language features (especially TypeScript) tend to work better out-of-the-box but it still isn't close in terms of performance. If you want IDE-like features to "just work" then VS Code is definitely the best choice, but the persistent (albeit sleight) input lag drives me up the wall.
Sublime can definitely be that kind of editor, but requires quite a lot of setup in some cases. There is a language server plug-in, which (IMO) is not straight forward to customize or even setup, with very little feedback when something goes wrong (broken LS implementation, or misconfiguration). However, when it does finally work, it's super snappy and clean.
The philosophy of Sublime is almost opposite to VS Code and other IDEs. Instead of everything enabled by default, everything is simple and lightweight by default. Then you add your own things on top.
I mostly see it as analogous to programming, where I too prefer to start simple and add things I control on top and where I understand the whole stack. Compared to picking a huge framework which lets me get started but where I don't understand the hundreds of layers beneath.
Since I use Sublime Text since years, and plan to use it for years to come, I see it as an investment to learn the underlaying functionality and eco system from the ground up. It makes me a better and more productive programmer in the long run.
I use Sublime instead of vim/gedit/notepad/notepad++ for quickly viewing files. The main benefit of Sublime over VSCode is that it opens several orders of magnitude faster. However, in terms of doing actual programming work I prefer VSCode over Sublime because it has way better plugins.
Sublime Text used to be my main editor but when I've started developing more in TypeScript I dropped it because I could never get it working well enough. I'm using VSCode now and TypeScript with it just works without having to install and configure many half-working packages, some of which will conflict with other packages you might use.
Perhaps ST4 addresses these issues, but personally I probably won't go back to it.
I was a Sublime user, then Atom, and now I’m a VS Code user. In 2021, what reasons are there to use Sublime over VS Code? Performance is the only one that comes to mind, but there are surely others... right?
I tried VSCode and Sublime each for a month earlier this year.
I was surprised to find myself deciding on Sublime at the end of it.
It came down to performance but also clutter. Sublime is fast. But also, VSCode just had too many panels and bells and whistles.
And VSCode's defaults were just all wrong. Like trying to autocomplete every other word when I'm typing text in a .txt file -- it's not even code! I couldn't believe how many random options I had to hunt down just to make typing usable and not trying to insert a million things.
Typing in Sublime seems to operate... just how I expect it to.
I think Atom also does that. I need to escape a lot during typing text files. Notepad++ also does that. But I do understand getting auto complete comfortable is difficult.
I prefer the performance, design, configuration management and plugin ecosystem of Sublime to VSCode. I also found Sublime Merge growing on me despite not intending to use it, so I think it's something about how the developers think, not just the one tool I've gotten used to.
I don't know how to describe it, but there are a lot of little aggravations Sublime avoids.
What Sublime doesn't have anymore is the community zeitgeist. I definitely feel more like I'm sticking to tried-and-true as a user these days, than something innovative, even though it's still innovative.
I've tried to make the switch from Sublime to VS Code a few times, and a few things consistently hang me up:
* Performance, like you mentioned. I've very used to opening hundreds of megabytes of line-delimited data in my editor; anything that can't keep up with that immediately ruins my "tempo."
* I don't really understand how to customize VS Code's UI. It has a lot of little toolbars and widget panels that I don't want (I have everything except for the edit buffer on Sublime removed), but I can't find any obvious way to permanently remove them. Maybe I haven't looked hard enough.
* This one is largely my fault: 10+ years of Sublime Text have broken my brain, and VS Code's default bindings are just different enough to cause me significant annoyance. I'm sure I could spend a couple of hours fixing them, but I'll admit that the thought gives me pause.
On the other hand, I really like VS Code's session sharing feature (other than the shared undo/redo buffer). I'd love to see a version of that for Sublime!
FWIW, VS Code has a "zen mode" view which hides everything other than the editor window, which kinda makes it comfortable for people coming from vim, sublime and the like. Try it out sometime.
> I don't really understand how to customize VS Code's UI.
I don't think you've tried :)
View => Appearance has options for toggling all the "bars" ("status" bar, "activity" bar, "side"bar).
Also zen mode is a very nice way to toggle to a mode without any toolbars (you can customize which show up in zen mode; just open the settings UI (Preferences => Settings) and type "zen".
I've tried VSCode a few times hearing it was better for Elixir.
I have a strong dislike, bordering on hatred, for IDE's. I don't want a bloated environment that gets in my way with features I don't want but seemingly can't turn off. VSCode feels like an IDE to me. Back in the day I moved away from Eclipse to Sublime and built command line tools to do what I needed with building releases (Ant - does that still exist? LOL I don't do java anymore).
When you realize you want VSCode to look and feel like Sublime, and spend hours trying to tweak settings, turn things off, use Sublime keybindings, etc. why bother? Just use Sublime. Also, I like paying indie devs for their work.
I've tried using VS Code after years of coding in Sublime Text but quickly returned to ST - VSC just felt so slow, bloated, sluggish and overall unpleasent that all other features didn't matter because it simply made writing code irritating, it felt like the IDE is more important than the actual code you write and the editor is less important than all the bells and whistles.
Right now the majority of development I'm doing is Python/JS/TS. I've been really liking the Pylance extension by the MSFT team for VSC, it is so much faster than Mypy etc.
Then for JS/TS, the out-of-the-box support is what won me over from being a ST user for nearly 10 years.
I'm one of the developers at Sublime HQ. We're all very excited about this release. If you have any questions you'd like to ask I'll do my best to answer them.
I know that LSP plugin exists, but, anecdotally, folks are having trouble with it. Which i think is understandable https://lsp.sublimetext.io/features/ says Show Code Actions: UNBOUND, and this is the second most useful thing in LSP (the first is extend selection), it’s not that the plugin is wrong: it’s just that you can do only so much if the editor lacks first class UI/UX concepts for features, required to expose LSP to the user.
Just wanted to share my thoughts on why LSP as an open source plugin has more benefits than getting first class support from ST devs.
Cons of getting first class support from ST:
- ST is closed source. That would mean that the LSP source code would be closed source too and that would not allow other people to contribute to it.
- Implementing the LSP client in c++ won't make the user experience faster. The speed mostly depends on the speed a language server returns a response to the LSP client.
- ST devs would shift focus on implementing the LSP spec which is mainly driven by Microsoft and the spec is somewhat driven by VS Code functionality. So ST would chase after offering the same functionality as VS Code, but then always be a step back.
Having LSP as a plugin allows the best for both ST users and ST devs. It allows ST users to contribute to the LSP plugin, while ST devs can focus on making ST more awesome on their own way and adding new API-s.
All I can say is that LSP already has first class support, because the ST devs have specifically expanded the API to allow LSP to implement certain features. :)
I figured I'd wait until the non beta release, and try again.
The sort of minimal deal breaker level of support for me is being able to jump to definition. The symbols, if I understand correctly, are based on the syntax configuration, and for the common Elixir one, it includes the type definition line, each function head, and the callsites of the function, which makes it nearly useless for symbol navigation.
I figured LSP would help in this regard, but I couldn't make it work. The docs were vague, and I think I had to put some JSON configuration structure in some file, but nothing I tried I guess was the right file or right structure.
Still, I love everything else about Sublime and am excited now for multi-tab-select, so I'll probably give it one more try. Hopefully LSP is better integrated or documented by now.
Each person has different criteria of what is important, Some people like code actions, some think it is the goto definition command, but almost all keybinding in LSP are UNBOUND. The main reason is to not cause conflicts with default keybindings.
Here is an example for code actions. Most editors use `ctrl+.` to trigger code actions, but `ctrl+.` is a default ST keybinding used to go to the next modification in the code.
A lot of people consider it bad if a plugin overrides default keybindings, so LSP lets the user decide what keybinding to assign to LSP commands.
Hope the explanation helps.
Absolutely top tier lightweight code editor for special tasks.
Is this a common operation for a text editor?
Can you pretty please fix the issue where files deleted/renamed outside sublime are shown as unsaved? It often ends up with a lot of wasted debugging time until I realise I'm working on the wrong file
Please show "filename (deleted)" on the title, instead of "filename •". Thanks!
Thanks a lot for creating this piece of software art. I’m a user since the v1 and no matter what the editor du jour is, I always fallback to ST and Vim.
Deleted Comment
The current Rsubl implementation kinda works. But is a bit hacky for reliable everyday work.
However, since we started using Yarn workspaces (for JS), I've needed to switch to VSCode because its auto-import is just so much better, and it's one of those things that's hard to go back from, once you're used to it. Sublime text already indexes my code for search, which can probably be used for path suggestions / automatic imports without affecting performance too much maybe? I dunno.
I wouldn't mind it being a plugin either (before Yarn workspaces, I'd use FuzzyFilePath plugin which worked pretty well). But native support would mean the performance would be on par with what I've come to expect from Sublime Text :)
Thank you so much!
However, opening big files doesn't work too well, it seems the program wants to load the whole file in memory. Any change on that front?
I've been using Sublime for years now and yet I barely use most of its "well known features" and I feel ashamed of myself.
I know there are tutorials out there, but I am a chronic procrastinator and I just can't bring myself to watch them while at home.
So, it sounds like you could add more awesome things to do to the top of your list, until your procrastination becomes things like..watching Sublime tutorials. He explains his method in detail on this page:
http://www.structuredprocrastination.com/
I love this editor, but this detail annoys me:
https://i.imgur.com/wu6ZfSa.png
Folding code with curly braces doesn't "eat" the brace. It's indent-based, not syntax based. There is a 2 or 3 years old issue on their github, and they don't plan to fix. A little annoying for a paying editor.
Here is the github issue: https://github.com/sublimehq/sublime_text/issues/101
Maybe they fixed it and I did not look up new settings?
For me it's the best second editor, i always have it open when i do an operation. I have different main tool / editor open but always sublime text as a second tool.
Thanks for keeping a 32 bit version also.
Thanks for this release! I use ST every day and I love it: the speed, the efficiency, everything.
The one thing I miss, though, is manipulating files from the left panel (moving files especially). I know there is a plug-in doing that (Side Bar) but it lacks drag-and-drop support.
Any plan to have it natively in the future?
My only complain with Sublime is that if I have 100s of unnamed tabs opened, it gets very difficult to find a particular tab.
I wish there was somewhat better tab organisation possible. Maybe there are some plug-ins, I did check last time when I was frustrated with it.
Does anyone else face this issue or have I been using it wrong?
You have ctrl tab and alt-# but once tab names are no longer visible/readable I don't see the reason to keep so many open. I think the filetree view is exactly how 100s of files should be organized for finding a file you can't remember the name of or ctrl-p for quickly opening a file you do
Basically the exact opposite of my browser habits, where I easily have 100 tabs open at any time, lol.
BTW: Thanks for a great Editor.
https://github.com/matias-pizarro/freebsd-custom-ports/tree/...
https://github.com/matias-pizarro/freebsd-custom-ports/tree/...
Hopefully soon these will get added to the official ports repo and you can find them there:
https://www.freshports.org/editors/linux-sublime-text
https://www.freshports.org/editors/linux-sublime-merge
That would make my little embedded dev station just perfect! Would migrate it all to that new Pi 400.
My workflow involves keeping 9 sublime projects open most of the time (damn microservices), and restarting sublime after an update makes my computer very slow (not unusable, not noticeably laggy) for 5-10mins each time.
Relatedly, sublime has an excellent changelog window, but it only shows up after you've already updated! It would be really nice if I could see the changelog before I decide whether to update or not...
When will ST4 show up on Homebrew?
https://formulae.brew.sh/cask/sublime-text
Thanks for taking the time to answer questions
I hope one day you will release your UI toolkit. Since it's crossplateform, fast, and plug into Python, it could be a wonderful alternative to PyQT, wxWidget and the like, and we really need something in the Python world.
Good luck to ST4.
> I hope one day you will release your UI toolkit. Since it's crossplateform, fast, and plug into Python, it could be a wonderful alternative to PyQT, wxWidget and the like, and we really need something in the Python world.
Note our UI toolkit is really adjacent to python - there's no integration there at all. See here for my answer in relation to releasing/open sourcing our UI toolkit: https://news.ycombinator.com/item?id=27230608.
Deleted Comment
> Note you can upgrade to the bundle from either a Sublime Text or Sublime Merge license.
Right now I have a ST3 license and would like to upgrade it to both ST4 and Sublime Merge.
If one upgrades to a bundle now, will it be possible in the future to upgrade the bundle license to a single product one? Or is the only option to buy a new single product license instead?
(I’m ok with it either way, I just want to find out so I can plan better.)
For example, if I am using Julia/R I want side panel that shows all my current variables in memory. Is Sublime plugin system capable of adding UI components such as variable/plot viewer and add custom interactions to those UI panels(i.e. zoom/rotation for plots)?
Mind sharing how you do this in R? Thanks!
my day job has a fixed list of binaries that are permitted to run (by digest)... 2 is on the list, and 4 isn't
(quite happily using 4 now at home!)
https://micro-editor.github.io/
That would explain the visual corruption issues I sometimes have with Merge but not ST3. In Merge some actions, sometimes (mostly in the settings) corrupt the application window (sometimes also after minimizing and sleep) on my MacBook. To me it looked like a rendering/GPU issue. It looks like blocks of pixels having different colors, lines shifted, etc.
Edit: ctrl+tab saves, but mouse clicking a tab loses
How can I open find results in a split view?
How can I open definitions and references in split views without using the mouse to hover and click?
Edit: F12 and shift+F12.
I personally wouldn't ever use a embedded terminal, as their user interaction inherently conflicts with the rest of the application. ctrl+w for instance needs to both close files/tabs as well as delete a word in the terminal.
I was an avid user (and paying customer!) of ST1 and ST2. Somewhere along the way I switched to VS Code. Why should I use ST4 over VS Code today?
I noticed that you can only see the type of a type
Are there any plans for some kind of combo deal now that Sublime Text and Sublime Merge licenses are aligned?
It looks great.
I've always been a big fan of using snippets and auto-completing based on open buffers in a project instead of using LSPs.
I haven't used ST in a while but decided to install ST4 to try it out.
I opened a Flask application that uses SQLAlchemy. I opened a Python file and typed User. and then it showed me a list of fields and methods on my User model without having the User model open in a buffer.
I did the same thing in an Elixir project and after installing the Elixir package it worked for project specific "things" in my app. Like after typing UserView. it showed me only functions available in that view. Likewise it did the same thing with context modules, it picked up all functions inside of a specific module.
In both cases as I started typing "User" it showed me options to pick from. In both cases it also listed out the number of definitions for a specific "thing" and lets you quickly jump to a specific one. If you mouse over a function it brings up the list to pick a definition / reference. There's also key binds to bring up a CTRL+p'ish feeling menu to see and preview the file where something is being used.
It's not as good as a LSP but it's definitely a few notches above what I've seen in other editors and the best part about it is not needing to configure multiple LSPs and it's lightning fast.
I haven't gone crazy testing ST4 btw, I played with it for like 20 minutes. It felt like it was maybe 65% between ST3's auto-complete and what you'd get with a LSP back-end using VSCode. Meaning it's closer to VSCode than it is than ST3, but not as good as a LSP, but there's also no effort to get it set up so it's a reasonable trade off if you're someone like me who just wants pretty good auto complete without configuring a million tools to run in the background.
It is coming with LSP support so that will work as well.
How does it compare to YouCompleteMe or TabNine?
YCM feels more like a LSP client than buffer / project level auto-complete. AFAIK it requires you to have a language's runtime specifically installed which is a deal breaker for me. Most of my apps run in Docker and I don't have local copies of any runtimes installed.
ST4 works wonderfully in this case because it parses everything out based on syntax highlighting rules.
I'd say it occupies a middle point between full IDE and text editor.
edit: My only gripe with VSCode currently is that it seems too eager to correct my typing.
*files of sizes I work work. I don't care about gigabyte-sized files; if I do, vim or my existing ST3 license are good enough.
I often just open it to jot something down, and before I know it I have 15-20 notes on separate pages, I'll consolidate and save them to a file somewhere or delete them if necessary.
It's just a super reliable scratchpad and a versatile modern textfile editor.
Alas, now I'm used to it, and I can't go back because of the same integrations that made me switch in the first place, and new ones I've found since. All the crispness and snappiness is gone in favor of deep features. I accidentally became an IDE-guy.
I tolerate it, but I hate it every day. So much bloat, so many useless notifications and fragmented interface.
On my, 2015 Macbook pro (16 GB RAM)
and my 2012 Macbook pro (2 GB RAM).
Instantly.
Nothing else on my 2012 Mac opens that fast. Not MacVim. Not emacs. Not TextEdit. Not even the terminal.
Sublime Text basically does what you describe above on ANY hardware.
It sorta is in just the text editing realm similar to vim and emacs. Sure it can do more but I feel like it's not fair to compare it. That said sublime text is probably the only text editor I ever used that comes even close to competing with vim and emacs for text editing.
Do you actually ever need to open a new editor? Why not just start whatever editor you want when you boot up, and then open files in it?
You probably don't shut down and start up your web browser every time you want to open a new site, so why would you do the analogue with your text editor?
Speaking only for myself and not the GP: due to a lifelong habit of putting things away when I'm finished with them, I always close windows and quit applications when I'm done using them for my current task.
> You probably don't shut down and start up your web browser every time you want to open a new site
Not literally every time I visit a new site, but yes, I quit my browser every time I'm finished with my current browsing session, even if I might end up launching it again in 10 minutes for a different reason.
I solved this need long ago with BBEdit (hi Rich!): I leave it running all the time. It is the only application that starts with my user login, and it is always available.
Dead Comment
I tested "Visual Studio". It takes ~10-12 seconds. For some reason VSC code fits within my threshold of "fast enough I don't feel like I had to wait at all" where as visual studio feels like I'm waiting. I guess your threshold is lower than mine though.
I really love this model.
Deleted Comment
One can buy a copy of Windows 10, an entire operating system, for about the same price (or often considerably less!)
Edit: I've upgraded. I've felt guilty for years for how much mileage I've gotten out of Sublime. It is one of my most used applications.
This is more like dated entitlement than subscription.
Most subscriptions have much stronger pressure to renew, including inability to install or download outside subscription period, version limits, software quits working, and, and, and...
I'd call it purchase plus support period but it may be the enterprise IT geezer in me :->
JetBrains also has a similar license for yearly subscriptions, where you can keep using whatever version was supported at the end of the license.
This is purchasing (not subscription), but that includes 3 years of upgrades too.
It's beautiful, efficient software that single-handedly proves that desktop software in 2021 doesn't have to be a shit, low quality side show to SaaS "apps" and mobile.
Heaven knows what their code looks like. Perhaps it's best it never goes open source so we can sustain the Opera-esque magic of a <10MB binary that packs so much punch.
> (…) Sublime Text has — in my experience — only gotten faster. I love software that does this: Software that unbloats over time. This should be the goal of all software. The longer it’s around, the more elegant it should become. Smooth over like a river stone. I have full trust in the engineering of Sublime Text because I’ve used it for over a decade, but also because it always feels like a fast, focused tool (even though it’s actually very complicated) and has only become faster the longer I’ve used it.
The whole essay is a nice read.
EDIT: Something else I wanted to add: I’ve tried other programs (file managers, for instance) that attempt to emulate Sublime Text both in interface (keyboard-driven, command palette, etc.) and speed, but they mostly manage to hit the former while blowing the latter. Fast software is hard!
Dead Comment
But I have been a user of UltraEdit for many many years (maybe 20?) and I still find it much more natural to use.
I found it while looking for an editor to replace Semware's Qedit (DOS).
I wonder why UltraEdit has not much love here.
I do find Sublime's price much better than UltraEdit.
I love it in general, but in particular there's one feature that I can't do without: column mode. I don't understand why other editors haven't copied it (at least to my knowledge. If you know any other that has it, I'd like to know). For those of us that often work with CSV-like formats, it's a real time saver.
It's also better behaved for huge files than any other editor I've tried.
It's the only editor I'm aware of that can do do disk-based editing, that is you can open a file of multiple gigabytes quickly and edit it because it doesn't load the whole file into RAM.
When I tried Sublime 2 I wanted to like it but it just felt weird, so I went back to… TextMate, which probably feels weird to other (especially younger) people. But I’d been using TextMate forever and had a lot of things integrated with my shell so that was my “normal.”
I’ll give Sublime another try though: I want their business model to work, I love that they’re cross platform, and the plug-in API looks pretty nice now that I’ve done a bunch of Python work.
Emacs for Org-mode - arguably the most revelatory single piece of software I've seen in 40 years of working with Software. Notepad++ is a safety crutch that I haven't let go.
Visual Code is OK. Not exciting though lots of respect for it.
UtlraEdit's smoothness, speed and polish are highly commendable. Just don't have the need to spend on the annual licensing for it.
I have used Notepad++ as my regular non-IDE editor for probably 15 years; there are a handful of (semi-)unique features that I really appreciate. I'm guessing UltraEdit keeps its user base for similar reasons.
https://www.slickedit.com/
Since then, I've used notepad2 for quick editing. And even for coding. Really loved notepad2. It could only edit one file at a time but that was part of its charm. I would have multiple notepad2 files open while coding.
Back in the DOS days I used Brief, Multi-Edit (syntax highlighting!!) and the Borland SideKick TSR notepad, remember that?
Nowadays on Linux, I code and write everything on Vim. Can't live without it. Cured my carpal tunnel too because I don't have to move my fingers to use the arrow keys or mouse.
Just from looking at the screenshots on their site I wouldn't install it (because of it's ugly UI).
UltraEdit just feels like it's stuck 10 years in the past.
(1) Collaborative features and syncing are easier to build when all the data lives in the cloud. There are currently no easy ways to build collaborative decentralized apps that scale and perform well and don't lose data. The best compromise solution today is probably cloud syncing, which is the Apple approach and keeps most of the brains local while using the cloud as a cache and a relay... but that tends to lead toward more and more stuff going to the cloud over time.
(2) The cloud is the only DRM that works. Cloud software can't be pirated because the user doesn't even have most of the software. At best the user gets the UI frontend in the form of obfuscated JavaScript or WASM.
(3) Due to #2, it's possible to easily collect recurring payments. "Recurring revenue" is the holy grail of virtually all businesses. Some VCs don't even consider non-recurring revenue in valuing a startup company. If your company collects $1M in one-time licenses and $100/month in subscriptions, some investors will literally chalk you up as having $100/month MRR.
(4) Cloud SaaS is a political loophole around free-as-in-beer ideology. The "information wants to be free" ideology tends to poo-poo commercial software and insist on the freedom to pirate everything, but cloud SaaS gets a free pass. Even better: with cloud SaaS you can use FOSS software without giving anything back! ... unless the license is AGPL, BSL, or Commons Clause, but those are not "true" FOSS licenses according to the FSF. (The AGPL sort of is, but it's also not strong enough to really prevent SaaSification.)
(5) Last but not least: shipping software sucks, especially on Windows. The Windows MSI installation subsystem is a horror from the deepest smoldering pit of hell. Be sure your company offers mental health benefits for PTSD treatment if you have to ask an engineer to deal with it. Mac and Linux are a little better but they are collectively only about 1/4 of the desktop market. The web offers a zero-friction "install" process that makes adoption and updates seamless and easy.
If those problems can be addressed, we can see a renaissance for real software that serves the user and doesn't have 100+ms latency for every action.
(2), (3), and (4) are true (they're why I've stopped making my tools available to others), although from a business sense, which is separate from a pure quality sense.
(5) can be addressed with some basic tooling and meta-tooling. I don't think that these are that hard - and, more importantly, the web has a complementary problem, which is that you have to do a lot of engineering to get things you get for free on desktop (most notably, persistence - compare the ease of setting up a database service for your cloud app with just writing to a file on desktop).
I like an editor that's fast enough, isn't bloated and isn't Vim.
Don't always need the IDE.
And although I can use Vim, I'm just not as efficient with it to use it 100% of the time. I learned a little to be able to work on remote servers but that's all I need. I can use a GUI editor like Sublime for the rest.
Sublime is versatile.
Happy to buy every version of Sublime that ever gets released.
Not a Data Engineer (yet?) but that sentence definitely apply to me.
Dead Comment
I don't think I'm the target audience here. I just spent 30m trying to tune this for a TypeScript project, and I can't seem to easily get eslint, prettier, and a few other tools working. I added the TypeScript language server package, but it doesn't offer any of the effortless reference navigation and refactoring I'm used to.
Having said that, am I just missing something? Can Sublime be that kind of editor?
I think I'd love to give it a shot, but without these conveniences I'm feeling like I should stick with VS Code.
- https://packagecontrol.io/packages/SublimeLinter
- https://packagecontrol.io/packages/SublimeLinter-eslint
- https://packagecontrol.io/packages/JsPrettier
- https://packagecontrol.io/packages/LSP
- https://packagecontrol.io/packages/LSP-typescript
If you're on macos, I also recommend creating a file at ~/Library/Application Support/Sublime Text 3/Packages/User/Default (OSX).sublime-mousemap with the following contents -- this adds a cmd+click "go to definition" shortcut that's also equivalent to what VS Code provides. (I guess the path should be "Sublime Text 4" now? but after upgrading, the config at the "Sublime Text 3" path still works for me.)
[ { "button": "button1", "count": 1, "modifiers": ["super"], "press_command": "drag_select", "command": "lsp_symbol_definition" } ]
I've tried to switch to VS Code a few times -- language features (especially TypeScript) tend to work better out-of-the-box but it still isn't close in terms of performance. If you want IDE-like features to "just work" then VS Code is definitely the best choice, but the persistent (albeit sleight) input lag drives me up the wall.
The philosophy of Sublime is almost opposite to VS Code and other IDEs. Instead of everything enabled by default, everything is simple and lightweight by default. Then you add your own things on top.
I mostly see it as analogous to programming, where I too prefer to start simple and add things I control on top and where I understand the whole stack. Compared to picking a huge framework which lets me get started but where I don't understand the hundreds of layers beneath.
Since I use Sublime Text since years, and plan to use it for years to come, I see it as an investment to learn the underlaying functionality and eco system from the ground up. It makes me a better and more productive programmer in the long run.
Perhaps ST4 addresses these issues, but personally I probably won't go back to it.
I was surprised to find myself deciding on Sublime at the end of it.
It came down to performance but also clutter. Sublime is fast. But also, VSCode just had too many panels and bells and whistles.
And VSCode's defaults were just all wrong. Like trying to autocomplete every other word when I'm typing text in a .txt file -- it's not even code! I couldn't believe how many random options I had to hunt down just to make typing usable and not trying to insert a million things.
Typing in Sublime seems to operate... just how I expect it to.
I don't know how to describe it, but there are a lot of little aggravations Sublime avoids.
What Sublime doesn't have anymore is the community zeitgeist. I definitely feel more like I'm sticking to tried-and-true as a user these days, than something innovative, even though it's still innovative.
* Performance, like you mentioned. I've very used to opening hundreds of megabytes of line-delimited data in my editor; anything that can't keep up with that immediately ruins my "tempo."
* I don't really understand how to customize VS Code's UI. It has a lot of little toolbars and widget panels that I don't want (I have everything except for the edit buffer on Sublime removed), but I can't find any obvious way to permanently remove them. Maybe I haven't looked hard enough.
* This one is largely my fault: 10+ years of Sublime Text have broken my brain, and VS Code's default bindings are just different enough to cause me significant annoyance. I'm sure I could spend a couple of hours fixing them, but I'll admit that the thought gives me pause.
On the other hand, I really like VS Code's session sharing feature (other than the shared undo/redo buffer). I'd love to see a version of that for Sublime!
FWIW, there's a ST keymap extension for VSCode: https://marketplace.visualstudio.com/items?itemName=ms-vscod...
That's the first thing I installed when I switched (years ago now) and it made the process surprisingly seamless.
I don't think you've tried :)
View => Appearance has options for toggling all the "bars" ("status" bar, "activity" bar, "side"bar).
Also zen mode is a very nice way to toggle to a mode without any toolbars (you can customize which show up in zen mode; just open the settings UI (Preferences => Settings) and type "zen".
When you realize you want VSCode to look and feel like Sublime, and spend hours trying to tweak settings, turn things off, use Sublime keybindings, etc. why bother? Just use Sublime. Also, I like paying indie devs for their work.
Sublime Text just does what I ask.
Ironically, version 4 broke this.
Then for JS/TS, the out-of-the-box support is what won me over from being a ST user for nearly 10 years.