Questions tagged «tmux»

tmux是一个终端多路复用器:它使多个终端(或窗口)能够在单个屏幕上创建,访问和控制,每个终端(或窗口)运行一个单独的程序。tmux可能会与屏幕分离,并继续在后台运行,然后再重新连接。

6
如何在tmux中像在屏幕上那样在窗口内的窗格之间循环切换?
我以为将tmux窗格移至窗口是相同的问题,但事实并非如此。 由于经常使用GNU屏幕,我正在寻找tmux做同样的事情。我经常要做的事情是打开几个不同的窗口,一个在vim中打开一些代码,打开几个终端窗口以测试代码,有时还需要一两个窗口来处理其他各种事情。我垂直分割屏幕,通常在顶部窗格中有vim窗口,然后在底部窗格中具有其他窗口之一。 然后Ctrla,我使用的主要命令是,Tab在窗格之间旋转,以及Ctrla,n在窗格内的窗口之间旋转。例如,在顶部窗格中使用vim,我切换到底部窗格,然后在其他终端上旋转,以完成所需的操作。屏幕始终保持拆分状态。 问题是我无法找到可比的能力,屏幕的Ctrla,n在TMUX。切换窗口似乎无法在窗格内运行,但会完全跳转。如果屏幕被拆分,则似乎仅有的两个选项是跳转到某个未拆分的窗口,然后拆分它或对窗格进行子拆分。我要找的东西都不是。 建议(除了坚持使用屏幕之外)?

5
重新连接时,为什么必须在tmux中重新设置环境变量?
我主要在Mac上工作,并将ssh / tmux附加到Linux机器上以完成工作。我在Linux机器上运行ssh-agent。我有 set -g update-environment "SSH_AUTH_SOCK SSH_ASKPASS WINDOWID SSH_CONNECTION XAUTHORITY" 在我的.tmux.conf。然而,每当我重新参加本次会议时,我都必须跑步 tmux setenv SSH_AUTH_SOCK $SSH_AUTH_SOCK 为了$SSH_AUTH_SOCK正确设置新的tmux窗口。我希望不必这样做。有任何想法吗? 更新资料 我想我的解释不太好。这是我的shell函数,用于在远程计算机上打开shell: sshh () { tmux -u neww -n ${host} "ssh -Xt ${host} $*" } 当TMUX运行此ssh命令,$SSH_AUTH_SOCK是没有设置,即使是在我的本地环境设置。如果使用setenv上面的命令将其放在tmux的环境中,则一切正常。我的问题是,为什么我必须完全运行setenv命令? 更新2 更多信息: 当我附加到现有会话时,$SSH_AUTH_SOCK未在tmux环境(或全局环境)中设置。 % tmux showenv | grep -i auth_sock -SSH_AUTH_SOCK 如果我手动设置它,则工作正常: % tmux setenv SSH_AUTH_SOCK $SSH_AUTH_SOCK …

3
如何直接切换到Tmux中的窗格?
我想通过窗格#直接切换到Tmux中的窗格。 我怎样才能做到这一点?我知道如何在窗格之间循环,以及如何移动到当前窗格旁边的窗格。 我希望能够运行该display-panes命令,该命令在每个窗格上显示“窗格#”,然后稍后使用通过显示的窗格#直接跳转到窗格display-panes。 这可能吗? 注意:为了清楚起见,我不是指窗口,而是指窗格。谢谢!
37 tmux 

2
如何更改tmux中窗格分隔线的颜色?
我使用以下命令更改屏幕底部状态栏的颜色: set -g status-bg colour244 但是我不知道如何更改划分窗格的线条的颜色。目前,它们是原始绿色和灰色(color244)的混合。man tmux给了我很多有关状态行的信息,但这似乎是指状态栏本身,而不是分隔线。 我怀疑我只是在这里缺少一些术语。
36 tmux  colors 

4
在tmux中是否有GNU Screen的“ log”命令的等效项?
在给定环境中进行更改时,我大量使用screen的“ log”命令将会话的输出记录到文件中。我搜索了tmux的手册页,但找不到对应的页面。是否有人知道tmux中的类似功能,还是我必须编写自己的包装脚本来做到这一点? 编辑:我知道'脚本'和其他实用程序,允许我记录会话。屏幕功能如此有用的原因是能够定义一个日志文件变量,该变量使用字符串转义符来唯一标识每个会话。 例如,我有一个shell函数,给定一个主机名,它将在新的屏幕窗口中SSH到该主机,并将窗口标题设置为该主机名。当我启动该会话的日志时,它以窗口标题为前缀。 如果tmux中不存在此功能,则必须创建一组新的Shell函数来设置要记录的会话的“脚本”。这并不是很困难,但是鉴于屏幕恰好满足了我的需要,因此不值得付出努力。
35 gnu-screen  logs  tmux 

4
Tmux不采购我的.tmux.conf
我在本地安装了tmux(没有root特权)。我还.tmux.conf使用以下几行在主目录中创建了文件: unbind-key C-b set -g prefix C-o bind-key C-o send-prefix 但是,tmux似乎并没有采购该文件(我的绑定键仍然是C-b)。我尝试关闭并重新打开ssh会话(在远程计算机上),但没有成功。 可能会发生什么?
34 tmux 

3
哪些终端仿真器支持tmux控制模式?
tmux具有通过激活的控制模式,-CC以允许终端仿真器控制tmux。iTerm2使用此功能效果非常好,允许tmux窗口显示为单独的iTerm窗口。 还有其他支持控制模式的终端仿真器吗?我对Windows的终端仿真器/ SSH客户端可能会提供这种功能特别感兴趣,但是Linux / Unix也很有趣。
33 terminal  tmux  iterm 

7
重新加载tmux配置而不解除绑定键(绑定键是累积的)
我一直在尝试不同的tmux键盘绑定设置,并且注意到以下几点: 如果我重新加载我的tmux配置(从tmux内部),我曾经加载的按键绑定将保持加载状态。(我知道)清除此错误的唯一方法是退出所有tmux会话并重新启动。因此,看起来tmux会记住所有先前加载的键绑定,并且只会在重新启动时或通过显式取消绑定键来删除它们。 要重新创建它: 打开终端(A) 启动tmux 检查键盘绑定是否显示时钟(按PREFIX C-t) 按下PREFIX ?以查看列表中的绑定 编辑 ~/.tmux.conf 添加键绑定(bind C-t display "Keybinding C-t") 重新加载tmux配置(PREFIX : source-file ~/.tmux.conf) 检查键盘绑定是否有效(按PREFIX C-t) 按下PREFIX ?以查看列表中的新键盘绑定 ~/.tmux.conf再次编辑 删除键绑定(因此删除bind C-t display "Keybinding C-t") 重新加载tmux配置(PREFIX : source-file ~/.tmux.conf) 检查PREFIX C-t键盘绑定是否有效(按),它仍显示“ Keybinding Ct” 按下PREFIX ?以查看新的绑定仍在列表中 退出tmux 输入tmux 检查原始的键盘绑定是否再次起作用(按PREFIX C-t),现在应该再次显示时钟 按下PREFIX ?以查看新的绑定已从列表中删除 我的问题:有没有一种方法可以指示tmux“忘记”所有已加载的配置,然后再加载.tmux.conf?

3
防止在命令完成时关闭窗格/窗口-tmux
在我的tmux.conf文件中,我将其配置为打开窗口,命名它们,设置窗格等。等等。 但是我遇到的一个问题是,如果其中一个窗格启动了一个命令,比如说ls,那么在命令完成后(即刻),该窗格会自行关闭。有什么办法可以防止这种行为?还是在命令完成后将其放到正常的shell中? 我假设在窗格启动时需要启动shell-> execute命令,但是如果我想出了办法,该死的。我已经用谷歌搜索了一下这个问题,但很快就解决了。
33 tmux 

2
如何快速将命令发送到嵌套的tmux会话?
我的.tmux.conf中包含以下内容 set -g prefix M-j bind-key j send-prefix 我需要按(Atl+ J)+(J)+绑定键才能将某些内容发送到嵌套的tmux会话。我觉得这很慢。有什么更好的办法吗?例如,我希望能够(Alt+ J)+(2x绑定键)在嵌套会话中执行操作。我经常在顶层tmux会话中执行命令,而不是在嵌套的会话中执行命令。此外,大家结合怎么来prefix来C-a?我发现键入此组合非常慢且令人不快。我想念什么吗?

5
为什么Vim颜色在tmux内部和外部看起来有所不同?
环境: Fedora 25(4.9.12-200.fc25.x86_64) GNOME终端3.22.1使用VTE版本0.46.1 + GNUTLS VIM-Vi IMproved 8.0(2016年9月12日,2017年2月22日16:26:11编译) tmux 2.2 我最近开始使用tmux,并且观察到Vim中的颜色会根据我在tmux内部还是外部运行而变化。下面是查看Git差异时Vim在tmux外部(左)和内部(右)的屏幕截图: 我的TERM变量是 外部tmux: xterm-256color 内部tmux: screen-256color Vim按预期(通过:set term?)报告以下终端类型: 外部tmux: term=xterm-256color 内部tmux: term=screen-256color Vim还报告两个实例都以256色模式运行(通过:set t_Co?): 外部tmux: t_Co=256 内部tmux: t_Co=256 关于让Vim在tmux中以256色模式运行(我发现最好的答案是在这里),还有很多类似的问题,但是鉴于以上信息,我认为这不是我的问题。 如果我在终端类型设置为Vim的情况下运行Vim,则可以在tmux之外复制该问题screen-256color: $ TERM=screen-256color vim 因此,我认为xterm-256color和screen-256color终端功能之间仅存在一些差异会导致颜色差异。这就引起了标题中提出的问题:终端功能中的哪些特定因素导致Vim颜色不同? 我看到了在:set termcap内部和外部运行tmux 之间的差异,但是我很好奇哪个变量实际上导致了行为上的差异。 与上一个问题无关,在tmux内部或外部运行时,Vim颜色是否可以保持一致? 我尝试过的一些事情包括: 显式地将默认终端tmux使用设置~/.tmux.conf为各种值(有些违反了tmux FAQ的建议): 设置-g默认终端“ screen-256color” 设置-g默认终端“ xterm-256color” 设置-g默认终端“ screen.xterm-256color” 设置-g默认终端“ tmux-256color” …
29 terminal  vim  tmux  colors 

6
如何在横跨父窗口整个宽度的tmux窗口中添加水平拆分?
当我有一个tmux窗口垂直拆分为两个窗格时,如何产生一个新的第三个水平窗格,该窗格在整个宽度上伸展? 例如我如何从中得到: Ctr-b % +–––––––––+–––––––––+ | | | | | | | | | | | | | | | +–––––––––+–––––––––+ 对此吗? Ctr-b % Ctr-b ...怎么办? +–––––––––+–––––––––+ | | | | | | | | | | | | | | | +–––––––––+–––––––––+ | | | | +–––––––––––––––––––+ 而不是这个? Ctr-b …
29 tmux 

5
更新了我的Arch Linux服务器,现在我得到了tmux:需要UTF-8语言环境(LC_CTYPE)但具有ANSI_X3.4-1968
我最近更新了Arch Linux服务器,在此过程中更新了tmux。tmux升级进行时,我一直在使用,后来使用它,但是所有过程都在同一SSH会话中进行。 但是现在,每当我尝试发出任何tmux命令时,都会出现此错误: tmux: need UTF-8 locale (LC_CTYPE) but have ANSI_X3.4-1968 这是locale -a服务器上的输出: $ locale -a C POSIX 在我的机器上(Ubuntu 15.10): $ locale -a C C.UTF-8 en_AG en_AG.utf8 en_AU.utf8 en_BW.utf8 en_CA.utf8 en_DK.utf8 en_GB.utf8 en_HK.utf8 en_IE.utf8 en_IN en_IN.utf8 en_NG en_NG.utf8 en_NZ.utf8 en_PH.utf8 en_SG.utf8 en_US.utf8 en_ZA.utf8 en_ZM en_ZM.utf8 en_ZW.utf8 POSIX 怎么回事,我该如何解决?


2
tmux会话丢失在未知的点,原因和可能的解决方案?
我试图重新连接到长时间运行的tmux会话,以检查python Web应用程序。但是tmux attach声称没有正在运行的会话,并ps显示了一个tmux进程(第一行),但是带有问号而不是pts数字。 这是什么意思-这个tmux会话会永久丢失,是什么原因引起的?还有没有办法查看在tmux会话中生成并在pts/19(第二行)中运行的python进程的当前状态? [mhermans@web314 ~]$ ps -ef | grep mhermans mhermans 16709 1 0 Mar04 ? 00:26:32 tmux mhermans 8526 16710 0 Mar04 pts/19 00:20:04 python2.7 webapp.py root 9985 6671 0 10:18 ? 00:00:00 sshd: mhermans [priv] mhermans 10028 9985 0 10:18 ? 00:00:00 sshd: mhermans@pts/16 mhermans 10030 10028 …
27 process  tmux  session 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.