NeoVim
I’m also a MacVim fan and user! I need to give Elixify a try
I’ve used Neovim, it’s a pretty nice editor, but I am not good at remembering keybinds.
I use VS Code now. Quite a nice editor.
I don’t even know if virtue is a proper word to be used in this context because, at the end of the day, a tool is just a tool… Like @connorlay also said, there are always tradeoffs but only the one using it can decide if it’s worth it or not.
BTW I think no one has the right to force tools onto other professionals (and I had this experience in a job years ago), it simply doesn’t make any sense to me why anyone would want to do that. I also have the impression that such things as “editor wars” is something less common today or at least considered by most people, as dumb as it sounds.
Another reason I think I’m stuck with vs code today is that it’s backed by a major company with almost infinite money, which brings its own guarantees to the project. But I’d love to have more options to try, especially lightweight editors focused on ergonomics (btw @connorlay, thanks for the recommendations, I’m now on the waiting list for zed).
“Virtue” in the sense of objective proficiency or ability - so emacs’ comprehensive programmability is a certain virtue, but then it’s quite another step to decide how to weight that in a decision.
My main point was that objective & intrinsic abilities of a tool don’t necessarily swing a decision. Extrinsic, pragmatic, social, and aesthetic factors legitimately come into play. We humans are complex beings, and our decisions are far beyond the ken of economists
I used http://kakoune.org/ for a long while but now I use https://helix-editor.com/ as a daily driver. It’s a bit minimalistic because it doesn’t have a plugin system yet, but the built-in tree-sitter and LSP support are great, and the code-base is pretty hackable!
Vanilla vim with tmux. I’ve been using this setup for over a decade and have no interest in putting in the time to learn something new as I’m super efficient with it and I enjoy configuring and writing plugins for it. Contrary to popular belief, I do this in my personal hobby time—I don’t “waste a bunch of time configuring my editor instead of getting work done.” On the other hand, I’m currently wasting time writing this post instead of working (Naw, I’m waiting for CI).
I try to contribute to the elixir vim ecosystem when I can, but it’s been hard to find the time and motivation lately as there are a million other things I want to do.
I’m curious, in that setup, how do you do refactoring? If you rename something that you reference in multiple places, and might overlap with something else.
For example, if you rename Foo.Helper to Foo.Manager, how do you make sure Bar.Helper references do not get messed up?
I’ve been using vim but am growing a little frustrated at trying to keep all the plugins managed. I really only want features of syntax highlighting, bracket/quote closure, tab for autocompletion, and automatic language-specific formatting. I like the modal and keyboard centric Vim paradigm. Those using helix, how much would I be missing if I switched?
Of what you listed, only auto-formatting (which is done through LSP) is missing, and it does work for the most part but it’s disabled for elixir because there are some crashes. I’ll find some time to debug it at some point and patch helix and/or elixir-ls . Otherwise it sounds to me like you might really like helix
I love Emacs but I don’t use it anymore.
Mostly because I’m trying to use builtin solutions as much as I can so I don’t have to lose time installing software, cloning .files and configuring things every time I need to setup a new machine.
Most of time I will code with something available and that’s it. Sometimes I use mg, sometimes nano, sometimes ed(1), sometimes XCode…
Autocompletion and other IDE features are something I don’t really benefit from, as I get annoyed by it pop-uping and getting in my way.
I only miss syntax highlight.
Apart from that I only want a lightweight and fast editor, that’s why mg, ed, nano or anything could do.
I might eventually try helix as I saw that they allow C-n C-p and other common readline/terminal/emacs keybindings.
But for now I’ll just stick with tools shipped by the OS and keep it minimal and simple.
I don’t really want to “code fast” with all those IDE tools, because I benefit from having more time to think again while I’m writing everything down instead of autocompleting blazing fast.
I don’t see myself as less productive than people using all those fancy things. haha
There is no simple answer to it - my workflow is not foolproof. I tend to make few mistakes, but these are tracked and reversed very easily.
I work on different OS env - Mac (primary), Linux and Windows. So I tend to organise my workflow with minimum tooling and without having to depend on gui and installing dependencies on a machine (only exception is windows I will install Notepad++). Mac has sublime installed, because people get distracted/confused looking at vi when I am screen sharing.
Typical workflow for refactoring:
- Take a backup or git branch if it is not a simple search and replace.
- Search for usage of full module name -
Foo.Manager
andManager
. - Perform a search and replace after refining search.
- Mental model of code and familiarity with framework/configurations helps refine searches.
There will be some overhead with this workflow when refactoring unfamiliar code bases and frameworks. But I tend to save time eventually and debug things quickly because of constant scanning and looking at different files with this workflow.
I read compile/build logs every time they are generated - eliminates the need for constant feedback/distractions from language servers and linters in editor.
Tools like tmux, grep, git, diff, etc are part of the workflow.
Thanks for the reply. I’m used to PHPStorm, and structure my code as much as possible to not be too dynamic, so that I can refactor without worries, but its nice to have an idea what to do with Elixir… Unless the LSP at some point manages to solve it.
But I’m also working solo, so its easier to just do it™
Have been using VS Code for years, but Onivim/revery does look interesting!
spacemacs for me
Thanks for sharing your experiences in more detail! I’m looking into your comments - those are really helpful. Signed up for Zed’s waitlist too.
Wanted to give a Vim (or a derivative) a try, but quickly learned that I want a GUI thing: I want my code font relatively big and monospaced, but my UI fonts smaller and variable-width. I loved Sublime, but at some point decided to move to VSCode for plugins and the fact that a lot of them just-work-TM. I don’t want to spend time trying to make things work.
Onivim slowed down on development cause the maintainer could not sustain OSS work full-time, and thus got a job, which is ok. That’s why there hasn’t been (much) updates.
Doom Emacs user. But I’ve been noticing its slowness due to it being single-threaded; really noticeable at times. Although it is still much faster than VSCode, hence why I stick with it. Plus magit
+ org-mode
are things I can no longer live without.
I’ve been a Sublime Text user for quite a while, but more recently I’m on VS Code for Elixir development. I’d prefer to not be on VS Code (I almost like it) and ideally would be using Sublime Text for that as well, but for the WSL2 integration. Outside of Elixir, I continue do a lot of database development work and for that work I use (mostly) Intellij DataGrip which is just over the tipping point on being more useful than Sublime Text for that effort; I also do some C++ and JavaScript, and for those I continue to use Sublime Text.
The preference for Sublime Text is mainly just because as an editor I’ve found it hard to beat. Once you start getting into specialized features (WSL integration, database introspection) then the clear advantage it has as an editor start to become overwhelmed by the deficits it has as being the core of a development platform.
I’ve been meaning to give vim or neovim a try. I’ve been using the vi family of editors since the mid-90s, but only for the bare minimum of editing a configuration file here and there… never really learned it.
I use doom emacs! It’s great.
Already mentioned is magit
, the git mode for emacs. It’s unrivaled as a git tool.
Also exunit.el
is great for running tests in the editor. Being able to jump to file+line from the test output is super helpful,
Have you tried using the Linux build of Sublime Text in wsl2? With the newish wslg subsystem it should work seamlessly. I’m not a Sublime user but have good success using other Linux gui apps from wsl. Depending on your monitor(s) configuration you may have to experiment with some env vars to get the scaling right (eg. GDK_SCALE
and GDK_DPI_SCALE
for gtk apps - not sure about Sublime with its own custom toolkit).