标签: tmux

更新了我的 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
Run Code Online (Sandbox Code Playgroud)

这是locale -a服务器上的输出:

$ locale -a
C
POSIX
Run Code Online (Sandbox Code Playgroud)

在我的机器上(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
Run Code Online (Sandbox Code Playgroud)

这是怎么回事,我该如何解决?

arch-linux tmux unicode locale

40
推荐指数
3
解决办法
4万
查看次数

将选择复制到 tmux 中的剪贴板

如果我在 macOS 上的 iTerm2 中的 tmux 中使用鼠标选择文本,则会将所选文本复制到剪贴板中。我不必单击任何额外的按钮 - 只需选择所需的文本即可。

我已经在 macOS 上的 terminal.app 中测试了 tmux,但它在那里不起作用 - 我必须点击y将选择复制到我的剪贴板。

我认为有一个鼠标绑定(MouseOnSelection类似于MouseDown1Pane),但我在网络和man tmux.

我想知道是否有办法在 Ubuntu 16.10 上有类似的行为 - 最好是在 Gnome 终端中。

tmux clipboard

40
推荐指数
3
解决办法
4万
查看次数

tmux 中是否有等效于 GNU Screen 的“log”命令?

当我在给定环境中进行更改时,我大量使用 screen 的“log”命令将会话的输出记录到文件中。我搜索了 tmux 的手册页,但找不到等效的。有没有人知道 tmux 中的类似功能,或者我是否必须编写自己的包装器脚本才能做到这一点?

编辑:我知道允许我记录会话的“脚本”和其他实用程序。screen 的功能如此有用的原因是能够定义一个日志文件变量,该变量使用字符串转义来唯一标识每个会话。

例如,我有一个 shell 函数,给定一个主机名,它将在新的屏幕窗口中通过 SSH 连接到该主机,并将窗口标题设置为主机名。当我开始记录该会话时,它以窗口标题为前缀。

如果 tmux 中不存在此功能,我将不得不创建一组新的 shell 函数来设置我想要记录的会话的“脚本”。这并不是非常困难,但考虑到屏幕已经完全满足我的需求,这可能不值得付出努力。

logs gnu-screen tmux

38
推荐指数
2
解决办法
3万
查看次数

tmux 强制调整窗口大小

我通常从特定的 Windows 服务器 (W1) 连接到远程 linux 服务器。在 Windows 端,我使用putty,在 linux 端,我启动tmux.

有时,我必须使用不同的 Windows 服务器 (W2) 并连接到相同的tmux会话。

问题:如果我putty在 W1 上为窗口设置了一个大小,那么我不能在 W2 上超过这个大小。当我最大化putty窗口时,多余的空间无法使用,充满了~字符。

有没有办法在 W2 上“强制”调整大小,即使这意味着 W1 将只显示部分输出?或者让 W1 与tmux会话断开连接的方法?

tmux

38
推荐指数
3
解决办法
3万
查看次数

tmux 启动后立即退出

我正在尝试开始,tmux但我什至无法运行它。启动后立即退出,类似于这个问题

它发生在没有.tmux.conf, 和(以下一些示例)的情况下.tmux.conf

set -g default-shell /usr/bin/zsh
set -g status on
set -g history-limit 10000000
set -g prefix C-t
set -g status-bg green
setw -g window-status-current-bg cyan
setw -g window-status-current-attr bold

set -g status-right '#7H | %F %s'

bind-key C-t last-window

setw -g monitor-activity on
set -g visual-activity on
Run Code Online (Sandbox Code Playgroud)

new-session在 的开头添加.tmux.conf,如建议的那样,有些地方没有帮助,当我tmux new $SHELL也使用时会发生这种情况(再次建议在某处解决此问题)。

我在用:

  • tmux 1.9a
  • Ubuntu 14.04
  • zsh 5.0.2

我的tmux-server.log文件在以下之后显示tmux -v

server …
Run Code Online (Sandbox Code Playgroud)

tmux

36
推荐指数
4
解决办法
3万
查看次数

如何快速向嵌套的 tmux 会话发送命令?

我的 .tmux.conf 中有以下内容

set -g prefix M-j
bind-key j  send-prefix
Run Code Online (Sandbox Code Playgroud)

我需要按 ( Atl+ J) + ( J) + bound-key 将某些内容发送到嵌套的 tmux 会话。我觉得比较慢。有没有更好的办法?例如,我希望能够执行 ( Alt+ J) + (2x bound-key) 在嵌套会话中执行操作。我经常在顶级 tmux 会话中执行命令,而不是在嵌套会话中执行它们。另外,为什么每个人都绑定prefixC-a?我发现输入这种组合非常缓慢且令人不快。我错过了什么吗?

keyboard-shortcuts tmux

36
推荐指数
1
解决办法
2万
查看次数

新的 tmux 会话不提供 bashrc 文件

概括

当我创建一个新的 tmux 会话时,我的提示从默认的 bash 配置中提取,我必须手动运行source ~/.bashrc我的自定义提示。

分析

我正在使用 RHEL 7 机器。在不久前的一次 bash 更新后,我开始注意到这种行为,但直到现在才开始提出这个问题(我不确定这开始发生在哪个更新)。

例如,我已将提示自定义为如下所示:

[user@hostname ~]$

每当我开始一个新的 tmux 会话时,它使用的似乎是 bash 默认值:

-sh-4.2$

快速运行source ~/.bashrc总是可以解决问题,但每次我想修复一些小问题时都必须这样做,这很烦人。关于如何让 tmux 再次自动执行此操作的任何想法?

如果需要更多信息,我很乐意提供。

配置文件

作为参考,我在tmux.conf下面有我的文件,尽管它几乎不是您可以称之为自定义的。

setw -g mode-keys vi

# reload tmux.conf
bind r source-file ~/.tmux.conf \; display-message " ? ~/.tmux.conf is reloaded"
Run Code Online (Sandbox Code Playgroud)

bash tmux

36
推荐指数
3
解决办法
3万
查看次数

35
推荐指数
3
解决办法
5万
查看次数

tmux 会话在未知 pts 中丢失,原因和可能的解决方案?

我试图重新附加到长时间运行的 tmux 会话以检查 python 网络应用程序。然而tmux attach声称没有正在运行的会话,并ps显示一个tmux进程(第一行),但用问号而不是pts数字。

这是什么意思——这个 tmux 会话是否永久丢失了,可能是什么原因造成的?有没有办法查看 python 进程的当前状态,在 tmux 会话中产生并在pts/19(第二行)中运行?

[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  0 10:18 pts/16   00:00:00 -bash
mhermans 16247 10030  6 10:28 pts/16 …
Run Code Online (Sandbox Code Playgroud)

process tmux session

35
推荐指数
2
解决办法
2万
查看次数

重新加载 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),它仍然显示“键绑定Ct”
  • 按下PREFIX ?以查看新的键绑定仍在列表中
  • 退出 tmux
  • 输入 …

keyboard-shortcuts tmux

35
推荐指数
6
解决办法
5万
查看次数