Especially in startups, where you can't afford to be sitting atop massive too-big-to-fail enterprise bureaucracy, and need to understand the systems, and work creatively and efficiently with them.
Especially in startups, where you can't afford to be sitting atop massive too-big-to-fail enterprise bureaucracy, and need to understand the systems, and work creatively and efficiently with them.
https://github.com/tmux-plugins/list
As a neovim user I can also very much recommend this vim plugin to seamlessly navigate between tmux panes and neovim windows:
Tmux panes and windows behave more like separate shells. It's similar to what we get with individual shell gui windows that are neatly stacked and makes it easy to follow.
I don't know if there is an equivalent in screen, but I like and heavily use the zoom feature which can temporarily minimize other splits and focus on single shell.
I didn't want to before, but now in the current year I switched from gnu screen to tmux, keeping the key bindings the same. Ending a 15 year or so streak.
The reason is that tmux supports more modern features like hyperlinks and truecolor, in the distro versions. Once settled, I don't notice a difference.
My virtual terminal (iTerm2, Alacritty) makes mouse-clicking a link opens it in Firefox.
I've used GNU screen for 25 years. I gave tmux a try 10-15 years ago, but I didn't see the upside.
I'm curious about Zellij and its wasm plugins, but equally skeptical.
All I ever do in screen is ^A D, ^A C, ^A SPC, not sure what else I need?
Programs such as GNU coreutils ls (ls --hyperlink=always) can use hyperlink escapes in the outputs to make every file name it lists clickable, for example.
Of course there are ways to escape these escapes and get them to pass through screen - I wrote an escape code script myself to do it - but that experience is still inferior to native support, which tmux has nowadays.
Well I used GNU screen for a long time but it finally broke through now due to truecolor, and I managed to switch :)
I tested both zellij and tmux before switching, I was considering zellij as the first alternative. But zellij had some noticeable performance problems compared to tmux when it comes to throughput of terminal output, so I picked tmux.
Here is mine : https://pastebin.com/ZVWYcpyU , but a lot of GNU Screen muscle memory fails for various reasons.
The main reasons I'm trying to switch are: better scrollback support, and better mouse support (both for tmux itself and for pass-through to terminal applications). Having used GNU Screen for 32 years, it's difficult for me to even think about what keys I'm hitting, it's below the level of conscious recognition at this point.
# remap prefix from 'C-b' to 'C-a'
unbind C-b
set-option -g prefix C-a
bind-key a send-prefix
bind-key C-n next-window
bind-key C-p previous-window
unbind C-a
bind C-a last-window
unbind A
# Default C-a ,
bind A command-prompt -I "#W" "rename-window '%%'"
unbind k
bind k confirm-before "kill-window"
bind Escape copy-mode
# start counting from 1
set -g base-index 1
setw -g pane-base-index 1
# vi keys scrollback
setw -g mode-keys vi
# Style
set -g status-bg black
set -g status-fg white
# Make current tab visible
setw -g window-status-current-format "#[reverse]*#I:#W*"Thank heavens there's someone else - I thought I was the only one[1].
[1] I use screen, and then use vim with multiple splits and tabs, with each buffer being a `:terminal`. Works very for me, because I get all the terminals I want, splitted and tabbed in any fashion I want, using my existing vim muscle memory to switch between them, minimise, maximise, etc. Also, takes about 1s to save the session if I ever feel the need to exit vim (I never do, though).
The big advantage of using a single Vim instance for everything is having all my registers shared.
I can copy something into register 'a' from file One.txt, and then paste 'a' into file Twenty.txt. Same with recording macros, command history, etc.
If any of those buffers are terminals, then I can use them just like a read-only file: copy from them into registers, run macros within them, etc.
The advantage, to me, of using Vim over Tmux, is that that I don't need to remember an additional set of key chords for moving between splits and tabs, and for resizing splits, etc. Using tmux requires additional commands and key chords to memorise.
I used to love tmux before vim had `:terminal`, but since Vim got `:terminal` there's nothing I get from tmux that I don't get in a simpler and easier way from Vim.
If I'm expecting a lot of copying between files, that's when I will break my own rule and temporarily use a split window inside vim.