There is a thing which provides zsh completions. It's zsh. If that's what you're wanting, then maybe don't stop using it?
Emacs
A community for the timeless and infinitely powerful editor. Want to see what Emacs is capable of?!
Get Emacs
Rules
- Posts should be emacs related
- Be kind please
- Yes, we already know: Google results for "emacs" and "vi" link to each other. We good.
Emacs Resources
Emacs Tutorials
- Beginner’s Guide to Emacs
- Absolute Beginner's Guide to Emacs
- How to Learn Emacs: A Hand-drawn One-pager for Beginners
Useful Emacs configuration files and distributions
Quick pain-saver tip
If the zsh situation is similar to bash (as it seems to be, from the link you posted), then then problem is that zsh provides completions through readline commands only.
This makes it hard to access them from Emacs. The bash-completion package mentioned in the blog post does that, but it's a tricky solution, and not super robust in my experience...
async-shell-command
I switched to detached-shell-command
from detached.el
"In my experience Emacs simply isn't a very good terminal to run a shell in anyway"
Do you know about vterm
and eat
? If yes, what is the problem with these?
not OP, but i tried eat for about 2 seconds and immediately gave up. The backspace key produces spaces.
Then I tried vterm. The backspace key works! OK the basics are out of the way. Let's try my basic git workflow, using ncurses program tig to view a log. Nope, lots of random jumpy scrolling.
Maybe these issues have work arounds. But iterm2 + tmux + Emacs already work flawlessly. Years of use with 0 issues.
eat and vterm don't have these problems for me — backspace works, less and vi work, haven't tried tig (I use magit). No hard blockers.
For tui user, i think tmux makes sense, it has similar keybindings anyway. For gui users vterm really helps. And it gets you even more familiar key bindings. It works for all the front ground apps I use.
As the others have mentioned, check that TERM
is correctly set (it should be something like eat-truecolor
), but also make sure that the terminfo file is there. If you're on Mac or, I assume, any flavor of BSD, the version that comes with eat won't work out of the box because Linux and Darwin/BSD compile these files differently.
Just run M-x eat-compile-terminfo
and that should get you the proper files for your system. Restart eat and it should work.
Yeah, vterm is a game changer for me. The directory tracking and ssh(tramp) support make it so seamless. Highly recommend giving it a try!