请教各位,在使用 tmux 的过程如何比较方便的管理 session?比如说遇到这样的情况,我主动按 prefix+d 将当前的 session 放到服务器后台执行,或者突然断网,这样的情况下,就会产生多个 session ,此时按 prefix+s 会展现多个 session , session 的名字是用数字来命名的。
此时我想关闭其中几个,而不退出当前的 session ,一种办法是进入命令提示的界面执行
:kill-session $session_name
但这样不方便,一来是 session 的名字是数字,我们不知道它是否是我们要杀的 session 。
第二种方法是在 linux 和 mac osx 下用kill pid
的方式,这种更加不方便,我们无法从 pid 得知对应的 session 。
我在.tmux.conf
使能了一些列的鼠标功能,但是有个问题是,当我不只是在纯命令行的情况下使用 tmux ,我往往需要用 GUI 自带的鼠标选择复制粘贴功能,就像 linux 下地 gnome-terminal 和 win 下地 xshell ,我希望我依旧可以用鼠标选择文本并右键复制粘贴,但是 tmux 却把这个功能给废,求指导
采用了 8 楼的映射快捷键取消鼠标和使能鼠标
bind m setw -g mode-mouse off \; set -g mouse-select-pane off \; set -g mouse-resize-pane off \; set -g mouse-select-window off \; display "Mouse OFF!"
bind M setw -g mode-mouse on \; set -g mouse-select-pane on \; set -g mouse-resize-pane on \; set -g mouse-select-window on \; display "Mouse ON!"
采用了 12 楼的快捷键映射,按下后会杀掉当前 session 然后跳到下一个 session
bind-key K confirm-before -p "Kill Session #S (y/n)?" "run-shell 'tmux switch-client -l \\\; kill-session -t \"\$(tmux display-message -p \"#S\")\"'"
1
fityme 2015-12-09 23:18:20 +08:00
首先,你需要给 session 命名。。。
|
3
cxbig 2015-12-09 23:29:28 +08:00
prefix+s 看所有的 session ,很显然你 new session 的命令没有做 alias
|
4
cxbig 2015-12-09 23:31:58 +08:00
我自己做了个快捷方式,$ tx [session_name]
不给 session 名字就自动创建一个新的自动编号,给了名字就做判断,有就 attach ,没有就 new |
5
cxbig 2015-12-09 23:34:31 +08:00
关于原有 terminal 的鼠标选择即 cp
vim-mode 下加一个 copy-pipe 即可( Mac 版): bind-key -t vi-copy Enter copy-pipe "reattach-to-user-namespace pbcopy" |
6
tracyone OP @cxbig 你这个复制粘贴我有解决,但是有问题,比如说你 xshell 上 ssh 登录,这种映射的复制并不能带到 win 上面啊,我需要的能复制到 win 上面。
还有就是使能了鼠标之后,就无法正常的选择了而是进入了 tmux 的那种选择的模式也不能右键什么的 |
7
cxbig 2015-12-10 00:05:43 +08:00
|
8
ETiV 2015-12-10 00:08:52 +08:00 1
小 m: 关闭 tmux 的鼠标功能. 然后就能自由选取文本(选取后复制啊什么的...)
大 M: 打开 tmux 的鼠标功能. 可以在 tmux 的 pane 里翻页, 选中 window , blahblah... 下面是代码, 如果格式不对, 请自行脑补: ``` bind m setw -g mode-mouse off \; set -g mouse-select-pane off \; set -g mouse-resize-pane off \; set -g mouse-select-window off \; display "Mouse OFF!" bind M setw -g mode-mouse on \; set -g mouse-select-pane on \; set -g mouse-resize-pane on \; set -g mouse-select-window on \; display "Mouse ON!" ``` |
9
lightening 2015-12-10 00:21:54 +08:00
你是需要许多 session 的吗?
我一台服务器只有一个 session 。下次上去就 attach 上原来的 session 呗。 |
10
chaker 2015-12-10 00:24:04 +08:00 via Android
只开一个 session ,多开 window 和 panel ,登录自动 attach
|
12
liangqing 2015-12-10 00:54:46 +08:00 1
直接 tmux a 会 attach 到最近使用的 session ,无需重新创建一个新的 session
可以通过 prefix s 选择切换 session 关闭 session ,可以有下面的方法: 1. 直接运行命令行 tmux kill-session -t <session_name> session 名字可以通过 tmux ls 显示 如果想关闭当前 session ,可以直接运行 tmux kill-session 2. 通过 tmux 的冒号命令 :kill-session -t <session_name> 同样,直接 kill-session 可以杀死当前 session 3. 绑定一个快捷键 bind-key K confirm-before -p "Kill Session #S (y/n)?" "run-shell 'tmux switch-client -l \\\; kill-session -t \"\$(tmux display-message -p \"#S\")\"'" 这样按 prefix shift+K 后可以提示杀死当前 session |
13
ETiV 2015-12-12 15:38:44 +08:00 via iPhone
t mu x 2.1 改了配置项,所有跟 mouse 有关的,都只需要一个 mouse 就可以了
|