最近在用screen,后来发现,tmux更好用啊。 参考资料: https://cloud.tencent.com/developer/article/1195836
安装
代码语言:javascript复制sudo apt-get install tmux
配置
配置快捷键
代码语言:javascript复制#首先创建几个alias
vi ~/.zshrc
alias tls="tmux ls"
alias ta="tmux attach -t "
alias tk="tmux kill-session -t"
alias ts="tmux switch -t "
alias tn="tmux new -s"
编辑配置文件
代码语言:javascript复制touch ~/.tmux.conf
vi ~/.tmux.conf
set -g default-terminal 'screen-256color' # 设置默认颜色
set -g status-utf8 on # 支持 utf-8
set -g history-limit 100000 # 设置历史记录最大条数
setw -g mode-keys vi # 设置按键模式为 Vi 模式
# 把快捷键改成c-x,手短
set -g prefix C-x
unbind C-b
bind C-x send-prefix
# 以下配置为取消原有 hjkl 键的绑定
# 并绑定 Pane 选择,和 Vim 操作一致
unbind-key h
bind-key h select-pane -L
unbind-key j
bind-key j select-pane -D
unbind-key k
bind-key k select-pane -U
unbind-key l
bind-key l select-pane -R
bind-key u command-prompt -p "join pane from:" "join-pane -s '%%'"
bind-key s command-prompt -p "send pane to:" "join-pane -t '%%'"
子窗口管理
代码语言:javascript复制# 创建子窗口
ctrl x c
# 显示列表
ctrl x w
# 关闭子窗口
ctrl x x
# 修改窗口名
ctrl x ,
分屏
用这个软件,就是用来用分屏玩的。
代码语言:javascript复制# 注意已经把唤醒键改成了ctrl x
# 上下分屏
ctrl x "
# 左右分屏
ctrl x %
# 此时可以用ctrl x h/j/k/l 来切换分屏了
载入已存在的window
有时,已经打开了N个window。(比如窗口 0,1)想把其中的两个window显示在一个窗口,可以这样:
代码语言:javascript复制bind-key u command-prompt -p "join pane from:" "join-pane -s '%%'"
bind-key s command-prompt -p "send pane to:" "join-pane -t '%%'"
切换的窗口0, 此时,在一个window按下 ctrl x u
,输入:1
,1号窗口就变成了0号窗口的一个pane。1号窗口随即关闭。
如果想把原来的1号窗口(现在的0号pane 1)复原,麻烦一点。先创建window。
代码语言:javascript复制ctrl x c
此时有两个window,0,1。0号窗口有两个pane,pane1,pane2,如下:
代码语言:javascript复制| pane0 |
|----------------|
| pane1 |
按快捷键ctrl x s
,进入send模式,输入:1
。此时pane1被移动到了window1。