Editor Overload
blog.iansinnott.com
blog.iansinnott.com
I personally often have a JetBrains IDE open alongside VSCode, Sublime and vim because there are things each of them do better, or at the very least things I better know how to do in each. You don’t need to replace a program you like, you can just add to your menagerie.
Final unrelated note, all editor nerds should give Acme a spin. It’s a literal trip. I never got comfortable enough with it to be productive, but I could see it being amazing if you get your head around it.
But I am curious:
On the Emacs side of things, none of the dozens of editors I've used that claim to emulate Emacs have done a good enough job to let me actually work. Right off the bat, most of them do not get C-U correct, and that's something any serious Emacs user will hit within a few seconds.
Do the 'vi' plugins generally do a good job, or are they just the same hollow key remappings that most editors consider "an Emacs mode"?
In intellij, shortcuts (commands using a modifier) can either be handled by the Vim plugin or by the IDE. You can't choose depending on the mode of vim. I mainly use Vim for the movements, so I don't feel very limited by the lack of "advanced features". However, what irks me is the way words are handled. For exemple, the IDE will be able to handle camelCase and go from one "word" to the next with ^->. Vim doesn't know that.
Another limiting factor is that many people use a bunch of vim plugins. As the vim-mode in IDEs isn't actually vim, those plugins can't be used.
I've never tried, but what looks interesting on paper is the neovim integration of VSCode. From what I understand it actually uses nvim, so that should be able to provide the full vim experience, including plugins.
Though comments under yesterday's post about scrollbars made me realize I might live in a :g/:v bubble :)
For the basic editing (probably not that basic, as I use quite advanced editing techniques like macros) I use vim shortcuts and for things like manipulation of windows/buffers/tabs I use editor specific shortcuts. Also for some unique features, like code refactoring in IntelliJ IDEs I use their shortcuts.
But "basic vim" functionality is still enough "to be dangerous" very fast after I start using an editor and I gradually learn the specifics. I never think twice whether I want to try some new editor. I just do it.
Indeed, I don't use vim proper (can't remember if I ever used it), but I heavily use all of the following (for different purposes) at the moment:
1. WebStorm for web stuff 2. CLion for Rust (it's different from WebStorm and has different shortcuts for various things) 3. Spacemacs for OCaml 4. VSCode for various things, mostly for beancount accounting 5. vim on remote machines - but there I don't use buffers and other more advanced things
Me and Vim never clicked. Mind you that may also be because I've not found a good tutorial / practice thing yet, nothing that stuck or that pushed me to get the various commands into my muscle memory.
But I use Emacs for everything else. Emacs never changes how things are done. It can't do Java the way I'm used to doing it though. It took me a whole heap of work to get competency to a level I was actually productive with though, so I can appreciate why it's a tough sell. Worth it though IMO. Though I pity the person who has to pair program with me!
I never got into emacs/vi/vim. I suspect they aren't actually rubbish, but my exposure to both so far has been limited to lots of very aggressive sales pitches like "anything less than my particular way of using emacs doesn't even qualify as text editing" and "using arrow keys is sin, filthy unbeliever", both in person and online (HN has its fair share of this), and that's just such a huge turn-off, massively takes the fun out of it.
I've lightly forayed into vim and emacs before, but can't live without the built in language support
A couple of years ago i could have sworn that they had feature parity, but these days it seems like VSCode is getting "all the cool plugins", while Sublime has stagnated. The long development cycle probably doesn't help.
Sublime is still the king of speed. It launches in milliseconds, opens just about anything you can throw at it, and does so without making a fuzz.
VSCode on the other hand spends seconds starting up, more seconds after starting up loading plugins, even more seconds refreshing plugins until it is finally ready after 10-15 seconds. It may not be a big deal if you only open it in the morning, but if you have to open it multiple times a day it becomes a chore, so much that i have reverted to Notepad++ for most trivial tasks.
VSCode will also open pretty much anything you throw at it, but where Sublime will use very little memory opening a large log file, VSCode is in the GB memory consumption range long before finishing reading it.
Of course, the above is only "Windows" problems, as any Unix based operating system will have some form of Vi, which is my preferred editor.
I tried this and was surprised to find that VS Code is quite slow to start. However, opening subsequent files once the editor has started is fast and I pretty much always have VS Code running so the slow initial startup doesn't seem to be a big problem - at least for people like me who are terrible at closing programs...
Actually a colleague of mine use a Jupyter-lab install on the remote cluster, he uses the Editor and Notebooks together to develop. This is also a nice way to develop locally with the code remote.
Extremely useful for projects which have an environment that is a bit tricky to setup - so usually python. I can just run all my python projects on a workstation or even some powerful cluster node and never need to mess with a local python version on the windows laptop. A giant improvement over the rather lackluster remote mode of Pycharm which needs a local environment to be useful at all. It even supports a remote connection via a jumphost, e.g. for cluster nodes behind another login node.
On the other end the editor is significantly worse when compared to Pycharm. The refactoring is mostly unusable across files and more often breaks things than helps. No perfect tool I guess.
Coda (and Coda 2 on modern machines) is great for remote editing, especially since you don't have to set up any plugins.
My favorite editors/IDEs by task: * Remote config file editing: Coda * PHP: PHPStorm * JS: WebStorm * Rust: CLion * CLI text editing: Vim * Edit a random file on Windows: Notepad++ * Edit a random file on Mac: VSCode/Atom
Pretty much any editor with plugin support ends up with at least one Vim plugin. In addition to VSCode, Sublime, Atom, and Emacs all have Vim plugins (Sublime's is even built-in, but disabled by default).
To me this is the best of both worlds, since I can take advantage of all the nice features from my IDEs while still having the efficiency of Vim editing. Honestly, the thing I miss the most from full-fledged Vim is the Subvert command from abolish.vim (https://github.com/tpope/vim-abolish).
Text editing is one place I’ll absolutely never use nonfree software. In addition to the privacy concerns (my editor has the highest security requirements of any software I run), it’s also my most-used tool, and, as such, must always be able to be inspected and modified, as it is an extension of my muscle memory.
You might lock me into a cloud or an API, but my most critical tools that take up the deep parts of my habits will remain under my control.
Not if you deactivate telemetry.
As a daily user of the editor, I'd be curious to hear more. To be honest, it's become an essential tool, and would be a challenge to replace. It's quite excellent.
I know it's funded by Microsoft, whose operating system I'd consider as a kind of spyware these days. But for VS Code, aside from the opt-in telemetry, and the fact that it's built on Chromium, funded by an advertising giant who thrives on invasion of privacy, is there evidence to justify calling it a "spyware"?
OK, I admit that whole question might be an answer to itself..
One such example:
vim is more of a text sculptor than text editor. the way you work with text is next to magical.
that said, it shows its age. i'm now trying out - with quite some success - vscode with remote-ssh. it's extremely nice to be able to use native OS window and have everything happen on the remote side transparently. the vim plugin works but as usual not everything is good: visual mode doesn't quite work for copying lines, commands are missing, keybindings conflict with native, etc. haven't looked at the neovim integration - next on the list.
The noevim plugin is decent, and allows most of your vimrc mappings, but it definitely has it's quirks. If the quirks got smoothed out VSCode + neovim plugin might just be perfect.
I was a hardcore Vimmer for years, but I've heard so much about emacs I decided to give it a try and after giving up on it once I tried Doom Emacs and it is fantastic. Easily doubled my workflow speed and that is just learning some of the basics. It takes a little bit to get used to but it is so powerful and fast. In addition learning a new workflow and the world of Lisp has been eye opening.
Windows Editor - Laughable piece of crap with one single undo step!
Notepad++, Slickedit, etc: Nice for some quick editing and hacking. Quickly fired up, but framework support is generally lacking.
Atom - feels super heavy for a text editor
VSCode - alright, but not really something will get you excited
WebStorm - Not free, but fucking great. Maybe not as lightweight as those Slickedit, Notepad++ options, but awesome framework support and by far the best diff tool that I know.
1. Dreamweaver
2. UltraEdit
3. Sublime Text
4. Vim+tmux: clicked for me like a year into my career.
5. Vanilla Emacs+Evil and a custom config.
6. Doom Emacs: I started running into some slowness with my own config years in, so decided to give doom a try. I’m glad I did: it’s so fast and really intuitive.
Interesting effect on link hover by the way. I can't decide if I like it or if it's a bit too distracting!