Live data from Hacker News

Emacs is the 2D Command-line Interface

hongchao.me

101–110 of 180 posts

Re: Emacs is the 2D Command-line Interface

#101

Sometimes I think people trick themselves into thinking that all their fiddling with Emacs counts as part of their productivity. Don't hate on me. I use Emacs just about every day. I used to use Emacs as my go to editor for writing code ... and it almost worked. But it was never hassle free, and things often worked more poorly than I would have liked, or ended up requiring too much fiddling to get it to work right, o…

Don't you miss having the same keyboard shortcuts across programs?

Or the tiny things, like, does backspace at the beginning of text delete one space, back to the nearest indentation (e.g. 4 spaces) or back to the beginning of the line?

Moving between sublime on MacOS and VSCode on windows is death by a thousand needles to me. I can only imagine what moving between 3-4 editors must be like.

Re: Emacs is the 2D Command-line Interface

#102
post #6

I love Emacs, but I think it’s safe to say that it’s a lot harder to use than Visual Studio Code, which is vastly more popular. I think what made VSCode popular was the availability of many high-quality extensions for major languages. Unfortunately, my experience with Elisp packages is that they tend to be much less stable. This is changing some with LSP mode, of course, but I think the Emacs community would do well…

From what I can tell, the relative instability of Emacs comes from two things: the lack of well-supported concurrency primitives and defadvice. The former is the source of UI lockups, and if you're really out of luck, you'd have no other choice but to kill the Emacs process. The latter is a footgun in Elisp that allows you to replace or hook into any function defined in Emacs. I think the concurrency problem is solva…

Yeah, I wouldn't touch defadvice itself. We can talk about reminding elisp developers to use it only as a last resort, but ultimately, it is a very important feature, that lets you make modules cooperate even if they don't want to.

Re: Emacs is the 2D Command-line Interface

#103

Sometimes I think people trick themselves into thinking that all their fiddling with Emacs counts as part of their productivity. Don't hate on me. I use Emacs just about every day. I used to use Emacs as my go to editor for writing code ... and it almost worked. But it was never hassle free, and things often worked more poorly than I would have liked, or ended up requiring too much fiddling to get it to work right, o…

I don't hate you :). You have a good point.

But in my experience, it's a wash. I've wasted a lot of time customizing my Emacs over the years, but I also wrought a lot of time savings out of it, which compound over time.

It's also a part of a bigger discussion about automation and developing support tools. The popular opinion is, better not spend time on it[0], but I feel that we tend to err too much on the side of doing things the hard way and waiting until someone on the Internet develops just the tool we need.

--

See https://xkcd.com/974/, https://xkcd.com/1205/ and https://xkcd.com/1319/ for the common arguments.

Re: Emacs is the 2D Command-line Interface

#104
post #52

Earlier quoted context omitted.

Emacs has a lot of amazing extensions! Magit is unparalleled for working with Git. The problem is that they break more frequently, in my experience. The very fact that I have to install a 3rd-party DSL to have a sane package management experience is beyond the pale from a usability perspective.

Clunky interface aside (a given with emacs), what's wrong with package-list-packages and customize? It's essentially no different to installing and configuring packages in vscode. Why do you think use-package is necessary?

use-package + eschewing customize makes it easier to manage your Emacs configuration as code, and keep it synced across Emacs installations on different machines.

Otherwise, package-list-packages and customize are awesome. The interface isn't even that clunky, and it's more powerful than equivalent interfaces in other software. Particularly customize, I'm very impressed by how it works.

Re: Emacs is the 2D Command-line Interface

#105

Sometimes I think people trick themselves into thinking that all their fiddling with Emacs counts as part of their productivity. Don't hate on me. I use Emacs just about every day. I used to use Emacs as my go to editor for writing code ... and it almost worked. But it was never hassle free, and things often worked more poorly than I would have liked, or ended up requiring too much fiddling to get it to work right, o…

I'm in the same position. I've used Emacs intensively for 20 years and I'm the author of Emacs packages that other people use. Nowadays I work on Python, Rust, and Typescript/$JSFramework projects. Here are some of the requirememts:

- Completions need to take the type system into account (even in Python), etc.

- Emacs has to provide intelligent completions, linting, type-checking, compiler error annotations, type information, format-on-save, jump-to-definition, code search, etc

- It has to be easy to set the interpreter path for every one of the executables involved.

- This all must work in a dockerized development environment, including setting breakpoints in 3rd party code that may exist only in a container volume.

Clearly nowadays this has to be done with LSP.

I initially got a bad impression of lsp-mode and tried Eglot. However, (a) Eglot has been under heavy development, and (b) it has a complicated relationship to other core Emacs modules such as eldoc and flycheck/flymake (who can remember which is which) and (c) it threatens to become part of Emacs which means that its development will no longer be done openly with PRs but in an old-school mailing list with a lot of bickering.

So, it now looks like I'm switching to VS Code for programming on real projects, but sticking to Emacs for Magit and everything else.

Re: Emacs is the 2D Command-line Interface

#106

Sometimes I think people trick themselves into thinking that all their fiddling with Emacs counts as part of their productivity. Don't hate on me. I use Emacs just about every day. I used to use Emacs as my go to editor for writing code ... and it almost worked. But it was never hassle free, and things often worked more poorly than I would have liked, or ended up requiring too much fiddling to get it to work right, o…

I hear what you're saying, as I regularly run up against the rough edges of emacs too, but buffers and org-mode are absolute gamechangers for me and my productivity.

I have ADHD, so not being able to switch between active files/tabs/whatever + my TODO list at lightning speed + having to constantly use the mouse devastates my productivity.

That's to speak nothing of the embrace-extend-extinguish behaviors Microsoft has been exhibiting in its development of VS Code -- e.g., deprecating their open source, editor-agnostic Python language server in favor of a proprietary, closed-source VSCode-only server[1].

I regularly update and play around with VSCode in an effort to keep an open min, but frankly I haven't found it to offer anything worth the trouble + spiritual taint (I'm saying this sort of tongue in cheek!) of switching

[1] https://github.com/microsoft/pylance-release/issues/4

Re: Emacs is the 2D Command-line Interface

#107

Sometimes I think people trick themselves into thinking that all their fiddling with Emacs counts as part of their productivity. Don't hate on me. I use Emacs just about every day. I used to use Emacs as my go to editor for writing code ... and it almost worked. But it was never hassle free, and things often worked more poorly than I would have liked, or ended up requiring too much fiddling to get it to work right, o…

Don't you miss having the same keyboard shortcuts across programs? Or the tiny things, like, does backspace at the beginning of text delete one space, back to the nearest indentation (e.g. 4 spaces) or back to the beginning of the line? Moving between sublime on MacOS and VSCode on windows is death by a thousand needles to me. I can only imagine what moving between 3-4 editors must be like.

That's less of a problem when you use Vim keybindings everywhere.

Re: Emacs is the 2D Command-line Interface

#108
post #94

Earlier quoted context omitted.

> VSCode does not even have keyboard macros. https://marketplace.visualstudio.com/search?term=macros&targ... > Either "every keystroke is a programmable command" is not exactly what is going on in VSCode There are commands (JavaScript-Functions) which one can be bind to keys. But who knows whether all keys have a command behind them? An with a GUI, I wondern whether all interactions are bindable commands. Mouse-Inter…

Since you were too lazy to check, I did the work, and I can say there is nothing that provides keyboard macros in the search link you posted. Here is the documentation that explains keyboard macros: https://www.gnu.org/software/emacs/manual/html_node/emacs/Ke... > But who knows whether all keys have a command behind them? Yes, they literally do in Emacs. That is the whole point of this discussion. > An with a GUI, I…

> Since you were too lazy to check, I did the work, and I can say there is nothing that provides keyboard macros in the search link you posted.

Seems you were to lazy to look deep enough...

> Let me explain how this "Open Source" thing works: you can submit a patch, you don't need to "push hard" on Daddy Microsoft.

Kinda funny how you have no clue how Open Projects are really working. Yes, Submiting a patch is an option. You can do that for VS Code too. Just nobody seem to have done this in this case.

And here comes into play how projects really work, even open source-projects. People complain and except the dev to implement something and than call it a day. And sometimes you have people doing some halfassed crap that makes more problems than it solve, and devs are not obligated to accept the patch. Any partly decent open source-project is doing this. Funny Uncle Emacs is doing this all the time. There is absolutly no difference in how both projects are working.

Re: Emacs is the 2D Command-line Interface

#109

Sometimes I think people trick themselves into thinking that all their fiddling with Emacs counts as part of their productivity. Don't hate on me. I use Emacs just about every day. I used to use Emacs as my go to editor for writing code ... and it almost worked. But it was never hassle free, and things often worked more poorly than I would have liked, or ended up requiring too much fiddling to get it to work right, o…

Don't get me wrong, a lot of these problems aren't really Emacs's fault. Jetbrains puts a lot of money and effort into its IDEs. If some commercial or nonprofit entity was actually committed to developing and maintaining elisp packages providing superb language support, then Emacs would have it. Maybe language support will get better with LSP; anyone know how that is going in the emacs world?

JetBrains has a straightforward way to pay for all that development and polishing time, which is lacking (due to sound but foundational reasons) on the emacs side.

Re: Emacs is the 2D Command-line Interface

#110

Sometimes I think people trick themselves into thinking that all their fiddling with Emacs counts as part of their productivity. Don't hate on me. I use Emacs just about every day. I used to use Emacs as my go to editor for writing code ... and it almost worked. But it was never hassle free, and things often worked more poorly than I would have liked, or ended up requiring too much fiddling to get it to work right, o…

Don't you miss having the same keyboard shortcuts across programs? Or the tiny things, like, does backspace at the beginning of text delete one space, back to the nearest indentation (e.g. 4 spaces) or back to the beginning of the line? Moving between sublime on MacOS and VSCode on windows is death by a thousand needles to me. I can only imagine what moving between 3-4 editors must be like.

All my IDEs share common settings for copy paste, searching and basic text editing, for everything else there is mouse and graphical tooling.
Post reply on HN