TMUX 的两个问题

2015-12-09 23:12:33 +08:00
 tracyone
# session 的关闭

请教各位,在使用 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 却把这个功能给废,**求指导**
7157 次点击
所在节点    tmux
13 条回复
fityme
2015-12-09 23:18:20 +08:00
首先,你需要给 session 命名。。。
tracyone
2015-12-09 23:19:58 +08:00
@fityme 麻烦..
cxbig
2015-12-09 23:29:28 +08:00
prefix+s 看所有的 session ,很显然你 new session 的命令没有做 alias
cxbig
2015-12-09 23:31:58 +08:00
我自己做了个快捷方式,$ tx [session_name]
不给 session 名字就自动创建一个新的自动编号,给了名字就做判断,有就 attach ,没有就 new
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"
tracyone
2015-12-09 23:50:04 +08:00
@cxbig 你这个复制粘贴我有解决,但是有问题,比如说你 xshell 上 ssh 登录,这种映射的复制并不能带到 win 上面啊,我需要的能复制到 win 上面。

还有就是使能了鼠标之后,就无法正常的选择了而是进入了 tmux 的那种选择的模式也不能右键什么的
cxbig
2015-12-10 00:05:43 +08:00
@tracyone
从效率上讲,推荐纯键盘操作,适应 vim-mode 为佳;
考虑 cp 一份 tmux 配置到远程,登录 ssh 后在远程开 tmux 。
ETiV
2015-12-10 00:08:52 +08:00
小 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!"
```
lightening
2015-12-10 00:21:54 +08:00
你是需要许多 session 的吗?
我一台服务器只有一个 session 。下次上去就 attach 上原来的 session 呗。
chaker
2015-12-10 00:24:04 +08:00
只开一个 session ,多开 window 和 panel ,登录自动 attach
Kai
2015-12-10 00:26:52 +08:00
moved to /go/tmux :)
liangqing
2015-12-10 00:54:46 +08:00
直接 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
ETiV
2015-12-12 15:38:44 +08:00
t   mu   x 2.1 改了配置项,所有跟 mouse 有关的,都只需要一个 mouse 就可以了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/242387

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX