I'm going to comment on sublime merge since I see others have.<p>(I'm a paid user and paid again for the latest year or whatever the term of support is).<p>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. <a href="https://git-scm.com/downloads/guis" rel="nofollow">https://git-scm.com/downloads/guis</a><p>In all of them I see diffs. I can stash/stage/commit. I'm not sure what "amazing" features one has over the other.<p>What I can't do<p>* 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.<p>* 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.<p>* 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.<p>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.<p>---<p>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.<p>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:<p>* open remote /usr/my/project1<p>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.<p>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<p>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 <a href="http://locahost:9000" rel="nofollow">http://locahost:9000</a> on my mac and access the server running on linux (yes I can do that manually. It's nice that it's zero effort)<p>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.<p>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<p>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 .<p>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.<p>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)<p>All that said, the pluses outweigh the minuses and I can't go back.