tmux frequently asked questions

时间:2023-12-17 19:03:20

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 simultaneouslyto multiplesessions; 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 typicallyeach new screen instance is independent. tmux supports the same behaviour by using multipleservers 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 usableas a scripting language - almost all tmux commands can be used from the shell and behave identicallywhether used from the shell, from a key binding or from the command prompt. Personally I also find tmux's command interface much more consistentand 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. Nota major one butcomes in handy quite a lot.
    5) tmux supports automaticallyrenaming 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 reconfiguredin any case.
    7) tmux has an option to limitthe 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 individualnames, titles and so on.
    I think tmux's model is much easier to manage and navigatewithin a window, butbreaking panes off from and joining them to windows is more clumsy.
    tmux also has support for presetpane layouts.
    10) tmux's status line syntaxis 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 atthe 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 simplicityand 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 serialand telnet support; this is bloatand is unlikely to be added to tmux.
    15) Environment handling is different.
    16) tmux tends to be more demandingon 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 oddterminals.

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?

参考