Or $65 per year: https://www.sublimehq.com/store/text
Before anyone asks any further. See the CLA [0] and the Privacy Policy [1].
[0]: https://zed.dev/cla
I think CLA is a nuanced thing, since Eclipse also has one and didn't rugpull anyone ever, but their Privacy Policy states that the tool is chockful with telemetry and can collect any personal and non-personal data as they see fit.
When somebody tells that you can opt-out of this, I have a hard time believing that the switches are connected to anything.
[0]: https://zed.dev/cla
IDE-ajacent text editors like VSCode et al are more like those ridiculous fat one with everything in it [1], and Sublime is the elegant model with only a blade and can opener, but the blade and can opener are both really good.
And then you get Microsoft Notepad, one of those shitty metal nail files that seemingly everyone's wife has in the bottom of her handbag.
1 - https://external-content.duckduckgo.com/iu/?u=http%3A%2F%2Fp...
I find it extremely convenient to include images alongside text, such as diagrams and schematics for work, photos of goods in a shopping list, and inspiration collections for hobby projects, etc.
When combined with a simple web clipper script[2], it has been a game changer for me.
[1]: https://packagecontrol.io/packages/Markdown%20Images
[2]: https://github.com/dmi3/bin/blob/master/url-preview-md.py
I found [1] which at least shows what it looks like, for those of us who haven't had the pleasure to test Sublime Text. I gather that the search that is integrated in the palette is an important aspect of their use, so perhaps it's hard to show actual UX in a still image.
[1]: https://www.tutorialspoint.com/sublime_text/sublime_text_com...
I love ST (my last blog post is https://blog.separateconcerns.com/2025-01-04-teal-lsp-sublim...) and I think the main thing lacking compared to the competition is the remote development experience.
I work in AI so we typically work over SSH on machines with big GPUs. Most of my colleagues use VSCode because it has a very good Remote Development extension.
There are others, this is the first that appears on a search. Sublime's package control makes it really easy to find tools like this. Another favorite is the one that renames the currently opened file.
- Color virtual calls differently from direct calls to tell them at a glance
- Class members in a different color than regular variables
- Arguments in a different color than locals, in a different color than statics
- Consts in red, mutable variables in orange
makes a huge difference in effortlessly reading the code.
It's not supported in Sublime (though you can hack a kludge to make a basic version of it work).
[1] https://gist.github.com/swarn/fb37d9eefe1bc616c2a7e476c0bc03...
All thoughts, meeting notes, journals, blog post drafts... everything is jotted down in ST first. I even went as far as writing my own to-do list syntax highlighter[1] which is the main reason ST is always open, at home and at work, even though I mostly use VSCode and IntelliJ for coding nowadays.
Do you also use Sublime Text as your primary IDE just like author does?
————
Mirroring the structure of the article:
1) Regarding the section about LSPs: do you also have the need to be able to “just add an LSP installed as a binary in on your usr/local/bin” even though by the author's own admission “VS Code is the LSP king”?
Kind of ironic to have the author say in the introduction about VS Code that “it probably has taken inspiration from Sublime. So why not check out one of the OGs” and then a bit later proceeds to say that the LSP “tech originat[es] with that editor [VS Code]”. I'm returning the question to the author and you: why not check out the OG?
2) Regarding the section about snippets author says that “VS Code can do this” and even that “the syntax for it is a bit nicer”.
3) Regarding workspaces VS Code does all of that. Author admits that he “ha[s]n't used it personally, so [he] can't speak to it much”.
4) Regarding build systems VS Code does all of that and it's easier because contrary to “the Package Control [that] is not part of Sublime” (and that you have to uglily inject in the Sublime Text console to get working), the VS Code plugin repository has everything already ready-to-use so that you don't need to reinvent the wheel. You can if you want though; Sublime Text doesn't provide anything extra in that regard.
5) Regarding the “Multiple cursors” VS Code has it as well.
6) Regarding the block-level key bindings, have you ever needed them? For me the last thing I want is for my shortcuts to change dynamically based on which block I am in the file. Note that in Sublime Text “they cannot be saved on a per-project basis”, which is awkward to say the least. I would (much) rather have project-level keybindings rather than only block-level keybindings that apply globally.
7) Regarding using “Python all the way down” rather than JavaScript, I'm surprised that the author finds it to be a good thing considering that they primarily use it for “web-dev” and all their examples are frontend Javascript code.
8) Finally, the author complains about the terrible documentation of Sublime Text, the lack of a plugin system, and the fact that for the 3rd-party hacked-together plugin management system he finds that getting them on the “Package Control site to be quite a chore”. I have a ton more complaints about Sublime Text to add on top of that.
I would rather directly donate money[1] to small developers rather than — as another commenter puts it — “supporting and using the products developed by a small team of dedicated engineers ...”
————
[1] And I do! Currently sponsoring 14 developers on a monthly basis[1]: https://github.com/devnoname120?tab=sponsoring
Edit, I suspect what I wanted was the "after delay" setting here https://zed.dev/docs/configuring-zed#autosave
Shameless plug - I wrote a plugin ages ago which makes it possible to replace and sort text using Python code (https://nneonneo.github.io/sublime-replace-with-python/). This little plugin has been incredibly useful for certain tasks, and serves both as a useful prototyping tool (playing with text modifications before implementing a full-blown script) as well as a general-purpose text wrangling utility. Basically, you can select some text (or find it with regex), then activate the plugin and type a line of Python code; it will then run the code for each selection region and produce the replacement. Sorting works similarly - select some regions, enter an expression as a sort key, and the selections will be rearranged according to the key.
I love how a plugin I wrote nearly a decade ago is still working with essentially no changes needed since 2017. Stable software is reliable software!
That reminds me, I wonder if Sublime Text still has room to improve in some areas. Here's an example, in Vim generating a date stamp is a one liner incl. text expansion[0], whereas in Sublime Text, one has to write a multi line plugin and a separate keyboard shortcut[1] to get the same functionality as that of Vim.
[0]: https://gist.github.com/ckunte/2d7a750e6cf8b96f98f028e90c8ab...
[1]: https://gist.github.com/ckunte/31500c17452b0fd8c55bc9460bd9c...
I use PlainTasks [0] which is very similar to your plugin but also has a few keyboard shortcuts to toggle the item state. Using this with a watered down GTD setup has really brought a lot of peace in both my personal and professional life.
I tried Zed recently because it has remote support and AI integration, but the Python integration is limited to Pyright so I gave up temporarily (I guess I can recreate Pylance using this doc: https://github.com/microsoft/pylance-release/blob/main/USING...).
https://support.apple.com/guide/mac-help/choose-an-app-to-op...
(There's also prob some way to do it from terminal, but I do it the above way)
The latest build (4192), says it was released in "2024" when I think you mean to say "2025".
https://github.com/spencerchristensen/sublime-open-in-cursor
It isn't on Package Control yet as I just submitted the PR.
I made this as I love Sublime Text as a text editor and do not want to pollute it with AI garbage. However, there are times where I want to quickly open the same file in Cursor to hash out some their agents. Workflow is:
- lovely text editing in Sublime
- encounter something I would like AI assistance for
- quickly pop open the thing in Cursor and do the AI stuff
- hop back to Sublime to continue my lovely editing
After I initially switched from VSCode back to Sublime Text, I used Terminus [1], which I used to swear by. But then I made an effort to strip back the amount of plugins I used, and just bound a hotkey to focus my default terminal (Konsole on KDE), and I don't really miss the integrated terminal anymore.
Sadly, I almost stopped using Sublime Text around a half year ago. Development of AI coding tools made flexible UI plugins support a must. Right now when I'm using ST as main editor I feel like 0.5x developer compared to myself and my colleagues with Cursor, because of being limited to very lazy and limited Copilot suggestions passed via LSP.
Also, I think you should open-source `minihtml`.
VS Code is very nice, when it works. My main problems had to do with the extension ecosystem. It felt very chaotic: it was hard to figure out which ones to install to get the functionality I wanted. Updates to Python extensions sometimes caused instability, crashing the editor. And I found it difficult to set extension preferences: the UI tries to be slick but in practice it ends up being clunky and awkward. On top of that, there was an annoying bug on Linux, related to Electron, that prevented the Save dialog box from appearing properly, which... kind of sucks. https://github.com/electron/electron/issues/32857
Sublime is the perfect programmer's editor for dynamic languages like Python, and for general text editing. It's lightning fast. LSP is just enough to be helpful without getting in the way. Workspaces work the way I would expect. I prefer editing JSON files for preferences over navigating a complex GUI.
Best money I've ever spent on a license, and I'll happily renew just for maintenance updates, to be honest.
I didn't consider the conflict between how I said "try the OG" but then say "VS code is the OG". It is a good point.
I show an example of the block level key binding. So yeah, I needed it and used it. I only showed one example but I have a few more that are my own I just didnt write about them.
Around python vs. js for plugins, have you tried to make a VS code plugin? You need a package.json, npm, and vsce installed globally. Which language is being used is usually the least of my problems. For Sublime, you need a single .py file! Someone shared this 9 line plugin they made: https://gist.github.com/ckunte/31500c17452b0fd8c55bc9460bd9c... - I don't tthink plugin development could be more simple
I bet an LLM could spit out single file plugins very easily. VS code plugins are clearly more work to create and deploy even after taking into account my critiques of Package Control. At the end of the day you can just toss your plugin in a folder or push it to github and reference it with a URL.
I didn't say the docs were "terrible". I just said they were disjointed. They are complete and fully document the APIs. I just wish they were more like the PHP docs or the ones for VS code which are docs plus guides.
All your other points are fine critiques. I'll chalk the other complaints up as a matter of opinion
> Personal licenses are a once off purchase, and come with 3 years of updates. After 3 years, an upgrade will be required to receive further updates.[0]
Tbh I think this is fair, but it surprises me every 3 years when I have to pay up again xD
(I'm a paid user and paid again for the latest year or whatever the term of support is).
To be honest, I'm not sure what this product does or does better than all the other similar apps. VSCode has git tools. There's gitlens add on. There's also github's git UI app and some other ones. https://git-scm.com/downloads/guis
In all of them I see diffs. I can stash/stage/commit. I'm not sure what "amazing" features one has over the other.
What I can't do
* I can't copy text from anywhere in the UI. I might be looking at a diff, a path appears, I want to open that path in my editor, so, I want to be able to copy the path from Sublime Merge and paste the path into my editor or shell. Sorry, S.O.L.
* It puts headings on diff sections. I want to copy text that from Sublime Merge and search for the identifier in my editor. Sorry, S.O.L.
* I want to search for things across changes - sorry, S.O.L. - "someIdenifier" doesn't exist in the current code. When was it deleted? Let me search.
Also a minor nit. I hate that it doesn't respect platform conventions. The default folder to open should not be root, it should be my user folder (or something) but definitely not root. No other app on my Mac does this. If you want yours to be root find, add a pref, but by default it should do what other apps do.
---
As for Sublime Text - Of course you can use whatever you want. I used SlickEdit since ~1994 through ~2015 (forgot when I switched to VSCode). The thing is, you should at least know what you're missing.
In VSCode I use it's SSH remote feature to connect to my linux machine. This is not simple SSH file sharing (Slickedit had that and FTP even). VSCode starts a custom server on the remote machine and uses it to coordinate. Examples:
* open remote /usr/my/project1
VSCode loads that project remotely. It edits the files locally (meaning when you open a file, it copies it from my linux box back to the mac in the local editor. IIUC, it proxies the language server stuff so it launches language server support on linux remotely. This means all the TS/C++/Rust etc intellisense stuff is being indexed on Linux in that project's environment.
VSCode opens a terminal to /usr/my/project1 in VSCode. I can start running shell commands. I used to use separate terminals, external to VSCode, and I still do. But the nice thing about the VS code ones is they're per project. If I switch over the a different project (multiple projects at once), each one has it's own terminal, relevant to that project
VSCode monitors and forwards servers from that terminal. If I type `python3 -m http.server 9000` in the VSCode terminal, it will launch python3 and then VSCode will automatically forward that port to my mac. I can open http://locahost:9000 on my mac and access the server running on linux (yes I can do that manually. It's nice that it's zero effort)
VSCode debugs remotely. If I launch the debugger it will debugger (gdb/llvm) on linux but the UI will be local (mac). I can set breakpoints in VSCode in mac, it will set them remotely on linux. I can view data etc.
VScode opens local UIs remotely. If, in the terminal for /usr/me/project1 I `cd ../project2 && code .` or `code ../project2` (so these commands are running on linux), it spawns a new window on Mac connected via SSH automatically to /usr/me/project2
VSCode's terminal is using an editor window and keeping it synchronized with the remote shell. This means it's more responsive than SSH from a normal terminal. In a normal terminal IIUC. I type 'x' on my keyboard. It's sent to the remote server over SSH. The shell over there emits an 'x' which is sent back to my local machine. In VSCode. I type 'x', the 'x' is put in the editor control that's shadowing the terminal. It's assumed the remote machine will return 'x' but it doesn't wait for it. Rather, you're typing locally, and it's catching up. So, even and a slow connection you can type faster in VSCode's terminal than you could in a standard SSH terminal. I'm sure there are places where this is not perfect but the general experience is it's way more responsive .
This is a short list of some of the things that VSCode is doing that AFAIK, most other editors are not (yet?). There's lot of other features though.
I have lots of issues with VSCode. I wish it had keyboard macros. I wish it it's undo system didn't suck. I wish it did auto backups like Slickedit did. I wish it had search and replace across a folder tree with undo like Slickedit did. I wish it had column select (different than multi-cursor as a column can go into virtual space and multi-cursor can't)
All that said, the pluses outweigh the minuses and I can't go back.
I don't have the resources, so please add support for the ACPUL programming language. If Sublime had a good debugger, it would be even more powerful.
Maybe give it a try? https://vscodium.com/
For Linux and macOS, you can mount ssh directly.
Unfortunatley, Windows makes it a little more complicated.
But there's hope. You can use yasfw with dokany (dokan fork).
https://github.com/DDoSolitary/yasfw
https://github.com/dokan-dev/dokany
Or mount from inside WSL.
Just head over to the unofficial discord server: https://discord.sublimetext.io/
Firstly, thanks for using it and supporting us!
If you haven't already, it would help immensely to get a bug report here: https://github.com/sublimehq/sublime_merge/issues/new/choose
I'll definitely look into this further and get it sorted
1. There are several plugins that allow AI integration 2. There is an active community on https://discord.sublimetext.io
3. From what I can perceive based on Sublime HQ's responses, it's main focus for Sublime Text is simplicity and to be a text editor. You can notice this if you look at the banner text in the website; it says "Text Editing, Done Right". And while it is mainly used for code and most of its users are developers, it tries not to be. However, it does provide people the ability to extend it however they please.
Overall, Sublime Text is indeed not as fully featured as VSCode because it is not supposed to.
You can see the feature under "Find > Find in Files" You can see the "navigation" under "Find > Find Results"
For more help, head over to https://discord.sublimetext.io (and tag me, I'll reply when I can)
- One major improvement would be to provide a button to "View blame prior to this change" like Gitlab blame does (screenshot below):
https://drive.google.com/file/d/1BjXpQNlFgHKIJz-5SmJIxYB6fGD...
Because c++ codebases nowadays are full of commits that just reformat or refactors code (clang-format, update to smart pointers, update to new api, etc) and so if I just want to find out the original commit which introduced that codeline (because I want to know the _original_ motivation for it), it means in Gitlab I just need to click 3 or 4 times on said button to skip all such formats/refactor commits until I get to the one I'm interested in. That is easy in Gitlab, while SublimeMerge just let me click on the SHA of the last change for the codeline, and from there I'm lost I don't know how to keep "blaming back" like Gitlab easily let me.
- In the same vein of easy skipping blame changes until the one you want, it would help a lot supporting the git config setting blame.ignoreRevsFile:
https://git-scm.com/docs/git-config#Documentation/git-config...
Thanks and long life to Sublime!