我已经设置了我的 tmux 来使用screen-256colors它,它与 vim 配合得很好。
但是,当我从 tmux 内 ssh 到远程主机时,screen-256colors无法识别,所以我收到如下错误:
E558: Terminal entry not found in terminfo 'screen-256color' not known. Available builtin terminals are:
builtin_ansi
builtin_xterm
builtin_iris-ansi
builtin_dumb defaulting to 'ansi'
Run Code Online (Sandbox Code Playgroud)
除了编辑每个遥控器.bashrc(类似于这个建议),有没有办法TERM在远程主机上正确自动地设置?
我在我的服务器上使用 tmux,最近我发现 ctrl-d 会退出 tmux 并丢失所有会话信息,我的目的是简单地结束 ssh 会话,但没有注意到我仍然在 tmux 中,直到为时已晚。
我知道将来使用 ctrl-d 时应该小心,但我想知道是否有办法防止 tmux 在意外按下 ctrl-d 时退出?诸如提示、确认或分离之类的解决方案就可以了。
我知道有一种方法可以通过将配置文件保存在 $BYOBU_CONFIG_DIR 中来定义在会话中打开的窗口。但是有没有办法(命令或脚本)来保存当前会话(即窗口及其名称等),以便在重新启动后可以恢复?
我在桌面上工作时使用 tmux,然后如果我想在笔记本电脑上在户外工作,我会通过 ssh 连接到桌面并附加到同一个会话。然后,当我关闭笔记本电脑并返回内部时,桌面上可见的会话会缩小,仅显示较小笔记本电脑屏幕上可用的行/列。无需再次打开我的笔记本电脑,是否有某种方法可以强制笔记本电脑与会话分离?或者至少调整 tmux 的大小以使用桌面屏幕上的所有可用空间?
所以,我想创建一个特定于项目的tmux会话,自动在某些窗格中弹出某些命令。按照在线教程和tmux手册页,这是我为配置文件提出的:
new -n estruct ls
neww -n estruct2 ls
splitw -v -p 50 -t 0 ls
Run Code Online (Sandbox Code Playgroud)
结果是……没什么。 tmux以单个窗口和该窗口中的单个窗格启动,不执行任何命令。
我将如何制作一个配置文件,该文件实际上允许我使用预先执行的某些命令创建一组窗口和窗格?
我正在使用“会话组”,以保持多个操作系统级、窗口管理的终端窗口向不同的tmux“窗口”打开(因此它们共享默认的工作目录、tmux设置等。)这些终端窗口的大小不同。
通常,从较大的终端,我可以执行以下操作来启动新命令:
:new-window vim
Run Code Online (Sandbox Code Playgroud)

但是,如果我以往任何时候都切换到不同的窗格中有新的,更大的终端窗口,我foreverafter坚持了这一点,当我再次打开:

我必须tmux new-session -t <blah>终止整个会话,创建一个全新的会话,然后再次将其链接到会话组,使用, 以恢复完整的终端宽度。
有没有其他方法可以恢复/更改/设置会话(或窗口,idk)的“可用宽度”?
某些命令(kill-session和kill-server)具有相同的前缀。
当我输入 ( prefix:kill-seTab) 时,tmux 不会给我任何结果。
是否可以选择在 tmux 中显示用于自动完成的野生菜单?
我正在使用 Ubuntu 12.04
tmux 手册讨论了各种类型的选项,例如全局选项、服务器选项等。问题默认的 tmux 配置文件在哪里?也指其中一些类型的配置。
其中一些类型很容易理解:窗口选项处理仅与单个窗口相关的事情。例如“允许重命名”:窗口有名称,会话没有。然而,对于其他类型,区别不是很清楚。
之间有什么区别
set-option -s),set-option -g),set-option),set-window-option -g),set-window-option)?另外,这些类型的继承规则是什么?
如果只有两个窗格,我很难分辨哪个窗格是 tmux 中的当前窗格。边界似乎只突出了相邻的边缘,这使得无法分辨。这是一个 Gif 来强调我的意思。
我在 bash 中,它的配置看起来如此
set-option -g pane-border-fg white
set-option -g pane-active-border-fg green
Run Code Online (Sandbox Code Playgroud)
任何人有任何提示,使其更明显?