Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I've mostly ditched tmux for emacs shells. I wrote a quick script that gives me tmux like shortcuts for tagging and switching to different buffers. This allows me to start several shells and move between them with simple "Alt-Fn" shortcuts. The split screen modes and copy paste are so powerful I find myself opening emacs just to use the shells even when I don't have any need for a file editing buffer.


That's quite funny. I've ditched the terminal for vim with split screen, for pretty much the same reason that you are using emacs - quicker to shift between shells and copy/paste become so much more (also, searching command history is not intuitive).

Here's my shell script for vimterm.sh:

    vim -c 'call Tmux()'
And here's the relevant function from my .vimrc:

      function! Tmux()
         vsplit
         terminal
         set nonumber
         wincmd j
         q
         wincmd l
         terminal
         set nonumber
         wincmd j
         q
      endfun


I never really set up a function for it, but what I usually do is in a new vim instance, I'll run the :term command, press ctrl-w o to make it the only window and then run a nested vim instance in that term window (typically one instance per vim tab). I'll open new terminals by running :tab :term.

Basically, I'm using one instance of vim as a session manager to run other programs in, including vim itself. You can pass ctrl-w to a nested vim instance by pressing

    ctrl-w .


> You can pass ctrl-w to a nested vim instance by pressing

>

> ctrl-w .

Huh, never knew that; thanks :-)


wow, I've used emacs for a gazillion years and never thought to replace screen/tmux with it. I think I'll start now, thanks to your comment!


I run tmux in vterm in emacs rather than multiple vterm buffers because as awesome as emacs is it still crashes or just becomes unusable with enough uptime. This way I can bounce emacs without losing my terminals.


I still use Screen/TMux to run servers, or any process that I need to keep running for a long time and still maintain control over it's STDIN/STDOUT.

But now that I use Emacs "shell-mode" I hardly ever use Screen/TMux anymore. I don't even use Bash anymore, I switch my default shell to Dash, because I don't need Bash's tab-complation in Shell-mode. I use Emacs's tab completion instead.




Consider applying for YC's Fall 2026 batch! Applications are open till July 27.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: