5 ms·
Yeah, it's a seamless experience to run a program in shell-mode that invokes $EDITOR and it just pops into a new buffer. Edit, hit C-x #, and you're back at th
by ataylor284_ 3y ago
Yeah, it's a seamless experience to run a program in shell-mode that invokes $EDITOR and it just pops into a new buffer. Edit, hit C-x #, and you're back at the shell.
- earthscienceman 3y agoWait, I'm confused, because you might have found a solution to something that's bothered me for a long time. I use emacsclient -t as $EDITOR and editor is invoked at a normal emulator, it opens a new buffer in the terminal. Great. But if I'm using vterm inside emacs anything that invokes editor then tries to open a buffer inside vterm and I'm now in a weird recursive state that locks up. Having some lisp that checks if I'm in vterm when editor is invoked and instead opens it in my current client session would be great. I searched for this at some point but gave up.
- chaorace 3y agoHave you considered overriding the Emacs process EDITOR variable via setenv? i.e.: (setenv "EDITOR" "/usr/bin/emacsclient -c") If you do that, it should cause any child processes (e.g.: vterm) to inherit the replaced EDITOR variable and properly open new editor frames instead of trying to do a terminal takeover.
- earthscienceman 3y agoWell,this is extremely clever and simple. I tried that out from vterm in 29.1 and it crashed emacs...
- Brentward 3y agoPersonally, I got tired of weird quirks like this with vterm and now bind this command to the key I used to have vterm on to spawn my actual terminal (st) in my current directory. It's probably not what most people want from vterm, but I prefer it. (defun open-term-here () "open st in `default-directory`" (interactive) (call-process-shell-command (concat "st bash -c \"cd " default-directory " && exec zsh\"") nil 0))
- jrockway 3y agoI also do this, C-x t to open a tmux tab to whatever directory the current buffer is: (defun tmux-here () (interactive) (if (not (eq (getenv "TMUX") "")) (shell-command (format "tmux new-window -c %s" default-directory)) (error "Not inside a tmux session."))) I know, I know, tmux is slow and should never be used. I like it, OK.