I have to be honest: I was enjoying Emacs -- even if all I was doing was small stuff -- but the current rms/fsf situation kinda makes me want to drop everything.

(It's not "Emacs SUCKS!" or anything else, it is just kinda like a statement, you know?)

@juliobiason Don't. While RMS do post on the dev mailing list at times, he hasn't been in charge of its development for very long.

@juliobiason Unfortunately I haven't found anything else that I'd be willing to switch to. VSCode seems to come closest to a "modern Emacs", but Electron makes it a non-starter for me. Maybe Electron will eventually stop sucking so badly?

@juliobiason It seems like NeoVim is capable of doing almost everything I need, but from reading the non-responses people get when asking about using it as an IDE, I'm guessing it would be something of an uphill battle. I have trouble imagining an Emacs person responding to a question about using Emacs as an IDE with "Emacs is an editor."

Which is a bit silly given that "enabling new applications" is right on NeoVim's home page. But it does make a difference how the community thinks about it.

@freakazoid @juliobiason I'm happy with neovim, spacevim actually because I'm lazy these days

@rob @juliobiason I'm lazy, too, which is why I insist on code completion, on-the-fly error checking, code navigation, automatic linking to the documentation, etc. I don't like going back and forth between my browser, editor, and the command line.

@freakazoid @rob Part of that I get from LanguageClient -- which, pure anecdotal story, I found easier to install and use on NeoVim than Emacs and lsp-mode.

I guess you can do all those right now (documentation I believe I can get from the lsp plugin, but if you're crazy enough, you can change the "open manpage" command for your preferred language) with the glaring exception of the browser. I don't think Vim/NVim have anything even close to eww (or whatever this is called now).

@freakazoid @rob Honestly, I know it is not that easy to transition: There is more than plugins and settings and what-not that makes someone pick an IDE/Editor/Whatever. It is how much they "adere" to our own workflow and, thus, even if NeoVim could have all the features you want, I'm pretty sure its workflow would, somehow, clash with your own.

In other words: Happy Emacsing :)

@freakazoid @rob @juliobiason It's a different mindset. You can have a nice workflow popping Vim open and using tmux, screen, or a tiling WM to jump around between different things. What it really comes down to is whether you want to leverage Unix or avoid it for a poor man's Lisp machine.
@petit @freakazoid @juliobiason also vim has windows and tabs so you don't even need tmux

@rob @petit @juliobiason Why are we talking about windows and tabs and tmux at all? I don't want to switch back and forth *at all*. Someone brought up eww. I don't use that. I use ctrl-c ctrl-d to open the documentation of the symbol at the cursor directly in Emacs, or I can just hit ctrl-d on a completion option. And if I leave the window open that has the documentation in it, it updates automatically as I navigate.

@rob @petit @juliobiason It's not even just switching back and forth. I have no interest in searching through documentation either. I already have the symbol I want docs for on my screen. I should just be able to navigate directly to it. And to the source code. If that's straight forward to set up in NeoVim or whatever, great. But if tmux or a tiling window manager or vim windows or tabs are somehow part of the answer, then the person responding doesn't understand the question.

@freakazoid @rob @juliobiason Sure, but you're switching between panels in Emacs the same as you would be switching between tabs in Vim or sessions in tmux or windows in a tiling WM. It's all the same. You are switching back and forth.

You can always get documentation at a symbol or jump to source, but unless you're exclusively programming in Lisp, SmallTalk, or similar, it's going to be a mediocre approximation whether you're using Emacs or not.

@petit @juliobiason @rob A mediocre approximation to what exactly? Most of the time I'm programming in Python. The documentation that comes up in Emacs is exactly what comes up if I type help(<symbol>) in the Python interpreter.

Switching between different Emacs windows is not an issue because I am doing it constantly. It's switching to a different program with different navigation paradigms that's an issue.

@petit @juliobiason @rob I should also point out that I run the Python interpreter *in Emacs*. And it's not just running in a window; I can send code directly to it, single-step through functions, etc.

Emacs is also aware of virtualenvs, so I can navigate to the docs for a package that's not globally installed, in a Python interpreter that's not globally installed.

@petit @juliobiason @rob The thing that got me to switch back to Emacs from vim wasn't people saying "You can do that in Emacs." It was someone saying "I do that in Emacs. Here, look." Anyone who isn't already doing the things with vim that I'm looking to do isn't going to be able to make a compelling argument. There's a big difference between "X is possible" and "here's an example of someone doing X as part of their regular workflow."

@freakazoid I do understand. The misleading part of the "enable new applications" is basically "make easy to people create new frontends with NeoVim backend without hacks or anything".

But I feel that what you want may come in the future (how long I'm not sure): With the work into replacing VimScript with Lua and tools like Fennel maybe it would be easier for the things you're looking for.

@juliobiason I don't really care whether an editor supports Lisp. The thing I like about Emacs is that it's mostly implemented using its own extension language. That's why I think VSCode comes closest; it's implemented and extended using JS. I'm not a huge fan of JS, but worst case you can always work in a better language and transpile like with Fennel.

@juliobiason And responding to a reply I think you may have deleted, I'm not that picky about the specifics of the workflow. My Emacs workflow is far from perfect. On-the-fly checking and code navigation are by far the most time-saving features for me. The rest is just gravy.

Actually, that's a lie: helm-projectile saves a huge amount of time, too. Being able to navigate to any file in a large project just by typing part of its name is a huge time saver as well.

@freakazoid Helm is one of the things in my list to try. I'm using Ivy (and Councel) but so far I haven't found a way to turn on fuzzy finding.

For that on NeoVim, I'm using Skim (

@freakazoid Well, not Lisp specifically, but I believe Lua have more features than VimScript, and that will allow more complex extensions -- like Org-Mode, for example.

The Fennel thing is just that parts of what already exist in Emacs could be somewhat ported to Lua as a scaffolding/bootstrap for extensions.

@juliobiason ELisp is dynamically scoped, so I'm not sure how much easier it would make porting. There are some packages that use Emacs's Common Lisp compatibility, and those might be easier. But any such package is still going to use a ton of functions that are implemented either in Elsp or in C.

@juliobiason People could certainly implement stuff like Org Mode in Lua, but I think a big challenge with Lua is that people who are already capable of writing complex programs usually aren't going to want to write a lot of Lua. It's a fine language, but it's quirky in ways that make it annoying for an experienced programmer, like starting array indexes at 1.

ELisp isn't much better on this front, but it's already got the ecosystem. JS or Python would be better.

@juliobiason It's hard for me to get away from the idea that "fixing Electron" is the way to go, though. Something like Mozilla's old XUL applications. Ship the runtime and the actual packages separately. Maybe build package discovery into the runtime.

This seems like it might be a good project for Mozilla.

@freakazoid @juliobiason Neovim has a built-in Language Server Protocol client and supports Tree-Sitter; both of those combined give it the ability to do re-factoring, project navigation, go-to-definition, formatting, diagnostics, hover documentation, etc.

Also worth noting that RMS isn't involved in Emacs anymore. He stepped down from maintainership five and a half years ago (current maintainers are listed at A look through the git logs reveals that RMS hasn't been involved in Emacs development for a very long time; it's probably safe to use.

@freakazoid @juliobiason As far as the whole "arrays starting with one" argument goes, an experienced programmer can easily implement arrays starting at 0. FWIW, it doesn't take much more than an overwritten ipairs function and a suitable length metamethod. The whole code probably fits a toot.

@phel @juliobiason I am quite aware that you can change the behavior. But if you do that, you need to make sure anyone else working on the same project knows it. Not exactly conducive to large projects.

@phel @juliobiason Also note that I said it was annoying. Whether it's that a core construct has an unusual behavior or that a bunch of people change the behavior of core constructs to suit their preferences, it's still annoying.

JS and Ruby have similar issues in the latter regard, in that people sometimes modify prototypes in JS and it's common to extend core classes in Ruby. It's not too hard to avoid in JS, but extending classes is a way of life in Ruby, making Ruby a lost cause IMO.

@phel @freakazoid I don't see the "starts at 1" a huge problem, to be honest.

In lisp, we basically never use indexes and transverse the whole thing, anyway. So 1 or 0 or everything is just a mindset that you have to bring when using the language.

(Sure, it is hella confusing the first time, but you can get used to it. pairs and ipairs on the other hand... 😬 )

@juliobiason @phel It doesn't stop me from using it, either. It just makes using it slightly more annoying. And it doesn't take much added friction to prevent a project from ever gaining enough momentum.

There have only been decent choices for embedding JS interpreters for a few years now, so it's perfectly understandable why they would have picked Lua. But I would not pick Lua *today* for such a project.

@juliobiason @freakazoid heh, one of the positive folks involved with emacs is one of the fennel guys. (Technomancy, which... he has 2 accounts on the fediverse... not sure which I should link to (: )

to be clear: I did this a few years ago. I did the whole "try something instead of Emacs" thing. I _liked_ textmate, it was made by an old Amiga and Emacs user... and when it turned into Sublime Text, I tried that. It got unwieldy. I went so far as to try to modify vim so it would use emacs keybindings, and so on : discovered that you just CANNOT take modal editing out of vim, and I can't do modal editing. (It blocks my work, I need _flow_ like what emacs does.) I tried a lua based editor, I even paid for it, but then went back to emacs because it _does what I want_ and _what I need_ with org mode, magit, and tramp.

The lua editor I tried (and which was pretty good) was textadept. (console and gui also.)
You may find that suits you.

@Truck @juliobiason I don't have a strong opinion on modal vs non-modal editing, but I think you have a point - if I think Emacs's quirky extension language and other outdated paradigms doom it to eventual irrelevance, then the same is almost certainly true of modal editing. The huge adoption rate of VSCode seems to demonstrate that the real winner of vim vs emacs is "neither".

@freakazoid I'm struggling to get to the tail end of this converstaion, but "TextAdept" is written in Lua and I've found it easy to extend with Fennel - other folk in this thread might be into that.

@juliobiason The number of positive, non-RMS people you'll meet who use Emacs is FAR greater than the number of people you'll meet who are RMS.

Use what works for you.

(And if you're going to stop using products because someone is shitty, well... have you looked at the PLANET we live on? )

@juliobiason Yeah, I can empathize. There's a few web comics I enjoy, but occasionally an author vents something political I dislike through the comic or a blog post on the same page. Worse, impulsively made political comics caricaturize their opponents. The comics are shallow, ignorant, and offensive.

I remember this happening a few times and me thinking, "Do I just stop enjoying everything this person creates now that I know I disagree with the author on something unrelated?" And what I told myself was "No, I don't want to live that life.", because if I do live that life I have to start researching everyone and everything to see if it meets my political requirements. I also can't complain if people, who probably have different values, analyze me the same way.

If you dislike the FSF because of RMS, it's probably consistent to dislike Emacs too, but this path never ends.

I think RMS is good for the FSF because he's one of the few people in this world that can be trusted not to dilute the concept of free software. I really doubt RMS and I would get along or see eye to eye on most things. I doubt we could be friends. (How many friends do people have that are 20+ years different in age anyway?) But, I'd rather have RMS influence the FSF than anyone else.

If a job puts someone in conflict with society and power, I'd rather have someone who speaks their mind, cares about details, and cares about truth more than anyone interested in avoiding anything distasteful. Saying things people don't want to be heard is always distasteful. "Journalism is printing what someone else does not want printed: everything else is public relations.”
Sign in to participate in the conversation
Functional Café

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!