Live data from Hacker News

Benefits of using tmux – streamlining your development environment

blog.bugsnag.com

111–120 of 172 posts

Re: Benefits of using tmux – streamlining your development environment

#111

"All problems in computer science can be solved by another level of indirection" David J. Wheeler Tmux/Screen provides an extra redirectable abstraction layer over the terminal device. The biggest complaint I regularly see about it is that people are used to the screen keybindings. I wonder why not add an abstraction layer there, where keypresses really call commands that perform the actions, and you could reconfigur…

> The biggest complaint I regularly see about it is that people are used to the screen keybindings. That's my problem with Tmux. Ctrl-a,d is already burned into muscle memory, and for my applications Screen is "good enough".

in your .tmux.conf

  set -g prefix C-a
  unbind C-b
  bind C-a send-prefix

Re: Benefits of using tmux – streamlining your development environment

#113

"All problems in computer science can be solved by another level of indirection" David J. Wheeler Tmux/Screen provides an extra redirectable abstraction layer over the terminal device. The biggest complaint I regularly see about it is that people are used to the screen keybindings. I wonder why not add an abstraction layer there, where keypresses really call commands that perform the actions, and you could reconfigur…

> The biggest complaint I regularly see about it is that people are used to the screen keybindings. That's my problem with Tmux. Ctrl-a,d is already burned into muscle memory, and for my applications Screen is "good enough".

1. start tmux

2. in the first shell you get run:

    tmux set-option prefix C-a
3. now your prefix is C-a like in screen.

Permanentize it by changing tmux.conf :)

Re: Benefits of using tmux – streamlining your development environment

#114
post #100
post #49

This is actually why I prefer Emacs. I can literally do all my development work in Emacs, with a full-featured shell (e-shell), directory explorer (dir-ed), REPL and full IDE for Clojure (CIDER). It's pretty great.

> a full-featured shell (e-shell) My experience wasn't so simple. Griefs: coloring, git support problems, bash aliases. I'm sure there's a way to get it to work, but I wouldn't call it a full featured shell out-of-the-box; at least, it doesn't really compare with Terminal.

For git I use Magit, I don't have any bash aliases, and anything I would normally see coloring in when using bash in a real terminal has a full-fledged Emacs analog.

Re: Benefits of using tmux – streamlining your development environment

#115
I recommend the book: Tmux--Productive Mouse-Free Developmenet, written by Brian P. Hogan. It's a concise and practical book about Tmux. There are some usable configuration in it, and you can learn something about concepts like session, window, pane in the book. After you combine vim style with tmux, it's quite perfect to do anything in the terminal. Haha, enjoy!

Re: Benefits of using tmux – streamlining your development environment

#116
post #87
post #70

Earlier quoted context omitted.

Won't be able to answer all your questions but to enable your mouse scroll add the following to your .tmux.conf set -g mouse on Likewise, to select from mouse you probably need to press "Shift" in Linux or "Fn" in Mac. I've had more issues with Mac than in Linux with tmux tbh.

I didn't ask a question, I know how to fix the issues.

Is your reply really necessary? It doesn't contribute anything. At least other people having the same issues which you know the solutions but don't share, can benefit. Sorry, it just came out wrong to me.

Re: Benefits of using tmux – streamlining your development environment

#118

"All problems in computer science can be solved by another level of indirection" David J. Wheeler Tmux/Screen provides an extra redirectable abstraction layer over the terminal device. The biggest complaint I regularly see about it is that people are used to the screen keybindings. I wonder why not add an abstraction layer there, where keypresses really call commands that perform the actions, and you could reconfigur…

> The biggest complaint I regularly see about it is that people are used to the screen keybindings. That's my problem with Tmux. Ctrl-a,d is already burned into muscle memory, and for my applications Screen is "good enough".

Beyond the other answers telling you to remap the prefix key: tmux used to come with an example configuration file that maps to the screen defaults:

    https://github.com/tmux/tmux/commit/2a1bb9#diff-fefa423d67264099ae82d4d2f5422b09
However, it appears that they have removed it at the beginning of the year. At least it's still in the commit history.

Re: Benefits of using tmux – streamlining your development environment

#119
post #116
post #87

Earlier quoted context omitted.

I didn't ask a question, I know how to fix the issues.

Is your reply really necessary? It doesn't contribute anything. At least other people having the same issues which you know the solutions but don't share, can benefit. Sorry, it just came out wrong to me.

It contributes to preventing the topic from derailing into "how to configure tmux", which is not what my comment was about. Derailing threads is considered bad etiquette online, it's not just me.

Re: Benefits of using tmux – streamlining your development environment

#120
post #110

Earlier quoted context omitted.

> The biggest complaint I regularly see about it is that people are used to the screen keybindings. That's my problem with Tmux. Ctrl-a,d is already burned into muscle memory, and for my applications Screen is "good enough".

Tmux expects you to rebind its leader to Ctrl-a once you're ready to move off of screen. Otherwise, it's default works nicely if you are nesting screen inside of Tmux or vis-versa

I use Ctrl-a as the "go back to beginning of line" shortcut that Readline-capable programs offer by default [1]. That's actually one reason I never got used to Screen ;)

[1] that is, using the Emacs keybindings it exposes by default. I know you can change that through .inputrc

Post reply on HN