tab-rs icon indicating copy to clipboard operation
tab-rs copied to clipboard

Have you considered alternatives?

Open zsugabubus opened this issue 3 years ago • 4 comments

Hi,

Sorry for disturbing you with such a silly question but I just randomly browsed GitHub projects and I come across with tab. I have read through manual page, looked into tab.yml, checked tab -h but I could not come up with a reasonable answer about what "market gap" this project would like to fill or where tab could be really beneficial over others.

I’m currently using abduco where I can similarly name sessions, then use fzf or whatever I want to attach a specific session. At first sight–at least for me–seems like a competing alternative.

If it is not a burden to you, could you explain to me in a few words why have you created tab? Have you considered alternatives and they failed for you? Thank you in advance.

zsugabubus avatar Nov 28 '20 02:11 zsugabubus

Hi @zsugabubus, Good question! I used both tmux and screen for quite a while.

I wrote tab because I'm a software engineer, and I use the terminal as a rapid launchpad for many other tools (vim/atom/vscode/github/gh/others), and what I needed was a tool that helped me very rapidly context switch between repositories, and get access to information as fast as possible.

What I wanted from my terminal multiplexer was a great navigation tool. Something that asks for just a few keystrokes and then takes me right where I need to go.

Pros: What tab provides over tmux and screen is configurable sessions, with dedicated working directories, env/shell config, and tab-unique command histories (in bash/fish/zsh). That means you can write a tab called myrepo and immediately get a session in that working directory, with all the context and history that you left last time.

Tab has a built-in fuzzy finder (#1) that works out of the box, and automatically discovers your existing sessions. It is just as fast as alt-tab, and far faster than typing a session name by hand. Tab also has dynamic command-line autocomplete for tab names (tab f\t => tab foo) which you can type anywhere, even within an existing session.

Cons: What tab is lacking at the moment is maturity and stability. It has some bugs that I'm working with the community to find and fix. I think within a month or so I'll have things running quite smoothly.

Tab also does not support panes/tiling. This is a design decision, and it allows tab to function with your terminal emulators native scrollback buffer. Native search and scrolling. This is so that you can easily work with local servers & log output.

austinjones avatar Nov 29 '20 03:11 austinjones

When I work on a web project. I usually use tmux with 2 panels. 1 for the backend and 1 for the frontend. I start a command in each one and let them run while I work. I alternate between the 2 of them pretty frequently to restart them or check the log for errors.

With tab-rs, I would alternate between them by running the tab or ctrl+t command? And when https://github.com/austinjones/tab-rs/issues/2 is resolved I could also use some keybindings?

Is that how you would use tab-rs with my use-case @austinjones ? Nice project by the way. It's refreshing to see different approaches.

bbigras avatar Dec 22 '20 16:12 bbigras

Hey @bbigras, thanks for the comment!

I wrote the tab <name> command first and just added the fuzzy finder in v0.5.0. Yeah, I'd recommend using ctrl-T and the fuzzy finder for quick switches. I want to make it easier, by adding a quick-switch to the previous tab, sorting by most-recently-used (#265) and by adding support for command history search (#256). I just gave #2 a refresh.

Nice project by the way. It's refreshing to see different approaches.

Thanks, that's really cool to hear! It has taken a lot of work - a bit over a year now. It's really coming together now and lots of people are contributing code - it's really exciting!

austinjones avatar Dec 22 '20 22:12 austinjones

  • Screen
  • Dvtm https://linuxconfig.org/an-introduction-to-terminal-multiplexers
  • Mtm https://github.com/deadpixi/mtm
  • Zellij has discoverable shortcuts
  • Abduco
  • Tabbed (no detach) https://git.suckless.org/tabbed/file/tabbed.1.html

I haven't looked closely at all of these, but my main issue with tmux and those like it is that it alters scrollback and mouse usage (there are some newer ways to configure tmux that I haven't tried out though).

Tab fits in the space of not altering anything about normal terminal usage and also providing session detachment.

gregwebs avatar May 08 '21 17:05 gregwebs