再来tmux

早上刚玩好screen,又发现tmux,一块补补课吧。

总体而言,功能类似,但是看上去tmux更加popular一点。

先看基本玩法

- 打开一个新的session

直接在远程机器上面输入tmux

- 主动退出但是保留session以便将来继续使用:

ctrl-a d

- 查看一下目前有哪些tmux session

leon@mywsssss:~$ tmux ls
0: 1 windows (created Mon Apr  3 20:24:53 2017) [176x41]

 最前面的号码是session#

- 重新attach

tmux attach-session

以上命令会默认attach上一个进入的session;

如果想指定某个session进入,那么

tmux attach-session -t 0 (最后这个0,就是tmux ls出来的每一行最前面那个nbr)


 

以上算是basic了,几个概念就此澄清一下

每次在远端机器执行tmux,都会开启一个新的 “session”,

每个session可以有多个windows;每个windows又可以有多个pane,大致关系如下图(图片来源

所以,有了如上认识之后,再看下面的快捷键,就会明白很多

  • C-b ? 显示快捷键帮助
  • C-b C-o 调换窗口位置,类似与vim 里的C-w
  • C-b 空格键 采用下一个内置布局
  • C-b ! 把当前窗口变为新窗口
  • C-b “ 横向分隔窗口
  • C-b % 纵向分隔窗口
  • C-b q 显示分隔窗口的编号
  • C-b o 跳到下一个分隔窗口
  • C-b 上下键 上一个及下一个分隔窗口
  • C-b C-方向键 调整分隔窗口大小
  • C-b c 创建新窗口
  • C-b 0~9 选择几号窗口
  • C-b c 创建新窗口
  • C-b n 选择下一个窗口
  • C-b l 切换到最后使用的窗口
  • C-b p 选择前一个窗口
  • C-b w 以菜单方式显示及选择窗口
  • C-b t 显示时钟
  • C-b ; 切换到最后一个使用的面板
  • C-b x 关闭面板
  • C-b & 关闭窗口
  • C-b s 以菜单方式显示和选择会话
  • C-b d 退出tumx,并保存当前会话,这时,tmux仍在后台运行,可以通过tmux attach进入 到指定的会话

本着够用原则,暂且到此,赶紧干正事去。

最后放几个参考link

- screen& tmux 功能键对照表:http://www.dayid.org/comp/tm.html

- 各种customized config: http://mingxinglai.com/cn/2012/09/tmux/

 


 

补充#1 - Pane里面scroll up 历史信息

在~/.tmux.confi里面添加下面

set -g mouse on
set -g history-limit 3000
bind -T root WheelUpPane   if-shell -F -t = "#{alternate_on}" "send-keys -M" "select-pane -t =; copy-mode -e; send-keys -M"
bind -T root WheelDownPane if-shell -F -t = "#{alternate_on}" "send-keys -M" "select-pane -t =; send-keys -M"

 

## Update

Tmux 1.8.4之后,选项变化,比如鼠标选中窗口和resize,换成了下面的

set -g mouse-select-pane on
set -g mouse-resize-pane on

 

 

 

至于和copy-mode的冲突

在windows上面要按住shift;在Mac上面要按住option

more ref:

https://wiki.archlinux.org/index.php/Tmux#Scrolling_issues

https://superuser.com/questions/209437/how-do-i-scroll-in-tmux

 

补充#2 - 如何更快一步,进入默认pane layout

- 装个东西:dnf install tmuxinator

- 先用tmux把window里面pane的布局layout设置好,用下面命令获取layout配置信息

leon@mywsssss:~$ tmux list-windows
0: leon@localhost:~* (3 panes) [178x41] [layout f9fd,178x41,0,0[179x20,0,0{89x20,0,0,0,89x20,90,0,1},179x20,0,21,2]] @0 (active)

- 编辑下面这个配置文件,把上面的粗体下划线layout信息填入即可

其中default是这个layout的名字,并列的还可以定义其他layout

leon@mywsssss:~$ cat .tmuxinator/default.yml
name: default
root: ~/
windows:
  - default:
      layout: 7dbd,177x41,0,0[178x20,0,0{88x20,0,0,0,89x20,89,0,1},178x20,0,21,2]
      panes:
        - clear
        - ipython
        - clear

 - 然后就是用了:注意要用mux default来启动(是的,不是tmux)

- 如果在.bashrc里面加上下面这句,那么每次login之后就可以自动进入这个layout

[ -z "$TMUX" ] && mux default

 

posted @ 2017-04-03 20:39  LEON的流水账  阅读(353)  评论(0编辑  收藏  举报