首页 > 代码库 > tmux frequently asked questions

tmux frequently asked questions

tmux frequently asked questions

How is tmux different from GNU screen?

    tmux and GNU screen have many similarities. Some of the main differences I am aware of are (bearing in mind I haven‘t used screen for a few years now):
    1) tmux uses a client-server model. Each server has single Unix domain socket in   /tmp and within one server there are multiple sessions which may be attached  to multiple clients (terminals).
    This has advantages, notably: windows may be linked simultaneously to multiple sessions; windows may be moved freely between sessions; and a client may be switched between sessions easily (C-b D). There is one major disadvantage: if the server crashes, game over, all sessions die. In practice, however, tmux is quite stable and gets more so as people report any bugs they hit :-). 
    This model is different from screen, where typically each new screen instance is independent. tmux supports the same behaviour by using multiple servers with the -L option but it is not typically recommended.
    2) Different command interfaces. One of the goals of tmux is that the shell should be easily usable as a scripting language - almost all tmux commands can be used from the shell and behave identically whether used from the shell, from a key binding or from the command prompt. Personally I also find tmux‘s command interface much more consistent and clearer, but this is subjective.
    3) tmux calls window names (what you see in the status line) "names", screen calls them "titles".
    4) tmux has a multiple paste buffers. Not a major one but comes in handy quite a lot.
    5) tmux supports automatically renaming windows to the running application without gross hacks using escape sequences. Its even on by default.
    6) tmux has a choice of vi or emacs key layouts. Again, not major, but I use emacs so if tmux did support only one key set it would be emacs and then all the vi users would get humpy. Key bindings may be completely reconfigured in any case.
    7) tmux has an option to limit the window size.
    8) tmux has search in windows (C-b f).
    9) The window split (pane) model is different. tmux has two objects, windows and panes; screen has just windows. This difference has several implications: 
  1. In screen you can have a window appear in several layouts, in tmux a pane can only be in one window (fixing this is a big todo item but quite invasive).
  2. tmux layouts are immutable and do not get changed unless you modify them.
  3. In tmux, all panes are closed when you kill a window.
  4. tmux panes do not have individual names, titles and so on.
    I think tmux‘s model is much easier to manage and navigate within a window, but breaking panes off from and joining them to windows is more clumsy.
    tmux also has support for preset pane layouts.
    10) tmux‘s status line syntax is more readable and easier to use. I think it‘d be hard for anyone to argue with this. tmux doesn‘t support running a command constantly and always using the last line of its output, commands must be run again each time.
    11) tmux has modern, easily extended code. Again hard to argue screen is better if you have looked at the code.
    12) tmux depends on libevent. I don‘t see this as a disadvantage: libevent is small and portable, and on modern systems with current package management systems dependencies are not an issue. libevent brings advantages in code simplicity and performance.
    13) screen allows the window to be bigger than the terminal and can pan around it. tmux limits the size to the largest attached client. This is a big todo item for tmux but it is not trivial.
    14) screen has builtin serial and telnet support; this is bloat and is unlikely to be added to tmux.
    15) Environment handling is different.
    16) tmux tends to be more demanding on the terminal so tends to show up terminal and application bugs which screen does not. 
    17) screen has wider platform support, for example IRIX, and for odd terminals.

Why is C-b the prefix key? How do I change it?


How do I use UTF-8?

How do I make Ctrl-PgUp and Ctrl-PgDn work in vim?

参考

tmux frequently asked questions  https://raw.githubusercontent.com/tmux/tmux/master/FAQ

 

tmux frequently asked questions