upvote
> Now I am more excited about the major releases; for instance term issues are an issue for me with the aforementioned Claude integration. Not enough to stop me, but annoying.

Being a co-maintainer, I'm a bit biased, but I think you should try Ghostel (https://github.com/dakra/ghostel) if you aren't already. And if you are, you should report bugs so we can fix them :)

reply
I quickly skimmed and did not really see any compelling reason why I should switch from vterm. Then I went into the docs and found compelling performance numbers (10MB cat test: 220ms vs 550ms; throughput: 75MB/s vs 18 MB/s). You could market your project better by showing these numbers :)
reply
Hehe, the feature that enables that (feeding reading the PTY and feeding the VT parser off the main Emacs thread) only got merged today. But the rendering even before this was a lot faster than Vterm.

Otherwise, I think the main advantage over Vterm and other Emacs terminal emulators is that it handles modern fancy TUIs a lot better than Vterm. It's backed by libghostty-vt so supports all the new fangled escape codes. It has a bunch of tricks to force fallback glyphs to the terminal monospace grid to remove the flickering effect when the glyph cells change size during TUI animations, most notably in Claude Code. Btop and Yazi runs great too, if you're into that sort of thing.

Plus a bunch of other things!

reply
And Ghostel support recently landed in claude-code-ide.el!
reply
Is it conservative in what it sends, and liberal in what it accepts?
reply
Can you elaborate a bit on what you are asking about?
reply
The name Ghostel sounds like a tribute to the Ghost of John Postel, whose law is a good thing for a terminal emulator to respect:

https://lawsofux.com/postels-law/

https://en.wikipedia.org/wiki/Robustness_principle

>In computing, the robustness principle is a design guideline for software that states: "be conservative in what you do, be liberal in what you accept from others". It is often reworded as: "be conservative in what you send, be liberal in what you accept". The principle is also known as Postel's law, after Jon Postel, who used the wording in an early specification of TCP.[1]

>In other words, programs that send messages to other machines (or to other programs on the same machine) should conform completely to the specifications, but programs that receive messages should accept non-conformant input as long as the meaning is clear.

reply
Lol this looks like a wonderful coincidence.

I thought it was named Ghostel because of Ghostty and EL (emacs lisp).

reply
This got downvoted, but it made me laugh.
reply
"Is anyone still using emacs?"

Of course. Emacs has been my stable editor over many years, handling many languages that came along, surviving many other IDEs that came and gone (the latest being the Cursor sold out).

There're always new enhancements in Emacs, from multiple-cursor editing years ago, to LSP and tree sitter in recent years. Currently I just got into the vertico/marginalia/consult/embark combo packages. Embark with its context based actions seriously is an amazing underrated package.

reply
I also have been using emacs for almost anything for the past 20 years. I had to switch to VSCode for coding over a remote ssh connection to cloud VMs. The client/server split of vscode felt superior over the ssh connection and the emacs alternatives was not up to the same level of performance two years ago. Do you know any progress on that front? I would love to go back to emacs as my daily driver but I am sensitive to lags when I type / execute commands. Have you worked with ai assistants over a remote connection?
reply
The two complaints I hear is:

1.Memorizing how to use it has a big learning curve.

2.Wrist pain from pressing button combinations all the time.

Otherwise plenty of people still use it and it's great. Just hard to pick up for new users.

reply
I've only ever used emacs in vim mode (evil-mode). Its vim emulation is the best I've seen anywhere.
reply
It's terribly inefficient for emacs vi emulation mode to actually quit emacs when you type ":q", because it takes much longer for emacs to start up than vi, and people use a long-running emacs a lot differently than they use disposable vi's.

UniPress[1] Emacs's vi emulation mode would actually flip you over to an emacs shell buffer when you typed :q, and the shell would recognize when you typed "vi foo.c" and flip back over to a vi emulator buffer instead of actually running vi, but INSTANTLY, since changing buffers in a running emacs was much faster than actually starting up a new vi process.

So die-hard vi users didn't have to re-learn their muscle memory, and could just stay in the same emacs all the time, while the same old emacs alternately flipped between pretending to be a shell, and pretending to be vi.

[1] "Evil Software Hoarder Emacs": https://news.ycombinator.com/item?id=26113192

reply
I use emacs --daemon with emacsclient for this. I always have a running emacs instance, and connect with the client. Opening and quitting a client is near instant.
reply
Yup. I've aliased it to e and and it works just fine. Sort of "send file into Emacs". I've also added some elisp to say things like e something.c:43 so that it opens it up at line 43.

I used have a ep which I could pipe something into and it would put it in Emacs buffer but that stopped working somewhere I never got around to fixing it.

reply
I used emacs for about 16 years, but never properly gotten into client-daemon setup. What’s your setup? Does the daemon preserve open buffers and stuff, so when you connect you have all your openned stuff? Or each emacs sessions have separate set of buffers and windows?
reply
> Does the daemon preserve open buffers and stuff, so when you connect you have all your openned stuff?

Yes. I use it instead of tmux for that.

reply
WRT point 2, binding the caps-lock key to ctrl helps a lot, or finding a keyboard with the ctrl key to the left of "A".
reply
being scared of emacs pinkie was a major contributor for me back as a student to learning vim. I remap ctrl to CAPS LOCK on all my computers as one of the first things but I still end up using my pinkie. I've been playing with the idea of switching ctrl to the spacebar at least in non insert mode though because I still end up using my pinkie a lot when scrolling with Ctrl+E for example
reply
On my MacBook I map the right hand command key to “ctrl” and the right hand option key to “meta”. Since the command keys are right next to the space bar that puts the ctrl key on a thumb position most of the time, and for the times when that isn’t a good key for a given combo I still have caps lock bound to “ctrl” as well. Seems to work reasonably well and lets me keep the usual command and option keys on the left side for “super” modifiers and for typing accented and other characters.

For my desktops, I use an Ergodox EZ keyboard and mapped ctrl and meta into the thumb clusters there.

reply
Don't use your pinkie or any finger. Use the meat of your hand to hit the control key.
reply
This works especially well on an IBM Model M because there's nothing in the vicinity of either the left or right ctrl, you just chop your palm down and can't go wrong. I could also pretty reliably M-x in one hit by flipping my left hand over, curling my pinkie finger, and hitting the keys with the knuckles. On more crowded keyboards I remap ctrl:nocaps and use thumb and forefinger for M-x. I actually deliberately got rid of my Model M to teach myself to do it this objectively worse way, because context switching between my docked workstation setup and laptop keyboard on the go was difficult. If only someone would make a laptop with a proper keyboard...
reply
Why not use agent-shell? It makes the whole experience great.

Also claude-code-ide.el. try these

reply
I use claude-code.

I've been trying to use agent-shell with OpenCode but the abstraction that agent-shell puts on top of it is too much. I can't figure out how to change the model. The command to do it doesn't do anything; I see the correct model list and seem to be able to select it, but then it doesn't change. If I just run "opencode" in the same directory it comes up configured the way I want. The Claude integration works with that workflow too. Opencode comes up with some baby CPU-only model that I've never heard of, and basically, it outputs syntactically correct English sentences but doesn't seem to do much more than that.

Since I mostly use Claude I haven't fussed with agent-shell much yet.

reply
agent-shell is awesome, but Anthropic banning subscription usage via ACP is a killer. I've liked claude-code-ide.el when I've used it, but its lack of concurrent sessions per project has prevented me from fully adopting it. I know, I should be using worktrees, but I still haven't figured out a nice way to get that to work with my docker-compose-based project (though I'm open to suggestions!)
reply