如何在 bash 脚本中编写以下内容?
tmux # Start tmux session.
compass watch /path/to/project1/compass/ # Run the first process.
Ctrl + B, " # Split the pane.
compass watch /path/to/project2/compass/ # Run the second process.
Ctrl + B, D # Exit the session.
Run Code Online (Sandbox Code Playgroud) 对很多人来说可能是一个非常愚蠢的问题,但我很密集!
前任:
应用预定义的布局:
C-a M-1 switch to even-horizontal layout
C-a M-2 switch to even-vertical layout
C-a M-3 switch to main-horizontal layout
C-a M-4 switch to main-vertical layout
C-a M-5 switch to tiled layout
C-a space switch to the next layout
Run Code Online (Sandbox Code Playgroud)
什么是M?如果只是 shift+m 那就请现在拿走我的颈须。我以为它可能是 alt + key 但似乎不是这样。
我试过了
tmux -c "shell command" split-window
Run Code Online (Sandbox Code Playgroud)
但它似乎不起作用。
使用tmux split-window,可以拆分一个新窗口。
更新:
使用tmux split-window 'exec ping g.cn'可以运行 ping 命令,但停止时新窗口将关闭。
我目前的工作流程是:
tmux以启动 tmux。如何使用新的终端窗口默认加载 tmux?
在您的.tmux.conf文件中,您可以使用以下内容设置窗口历史记录:
set -g history-limit 4096
有没有办法为每个窗口设置无限历史?
如何在 tmux 中有效地重新排序窗口?例如,有这组窗口:
0:zsh 1:elinks 2:mutt 3:irssi 4:emacs 5:rss 6:htop
Run Code Online (Sandbox Code Playgroud)
我需要做些什么才能移动rss到elinksand之间mutt,最终得到:
0:zsh 1:elinks 2:rss 3:mutt 4:irssi 5:emacs 6:htop
Run Code Online (Sandbox Code Playgroud)
我知道如何使用move-window将窗口移动到尚未使用的索引,并且我可以使用它们中的一系列来实现这一点——但是,显然,这非常乏味。
我多年来一直使用 screen 来确保任何远程工作在断开连接/崩溃后安全地保持打开状态。事实上,即使在本地工作,我也理所当然地使用屏幕。
最近,我的需求已经发展到我切换到 tmux 的阶段,因为它的美:
tmux attach -r
Run Code Online (Sandbox Code Playgroud)
以只读模式 (-r) 附加到我自己的会话意味着我不必担心意外:
当然问题是我必须打开一个会话, Cb + d 分离,然后用 -r 标志重新打开它以进入只读状态。然后,当我偶尔想加入 IRC 对话、中断任务或其他任何事情时,我必须再次断开连接并正常重新连接。
有谁知道一种通过键绑定在模式之间切换的方法?
摘要:我试图弄清楚为什么我的 tmux 会话在我与 ssh 断开连接时会死掉
详情:
我在 Arch Linux 系统上安装了 tmux。当我开始一个 tmux 会话时,我可以从它分离,然后在 ssh 会话处于活动状态时再次附加。但是如果我结束我的 ssh 会话,那么 tmux 会话就会被杀死。
我知道这不是正常行为,因为我有其他系统,即使 ssh 会话结束,tmux 会话也会继续运行,并且我可以在建立新的 ssh 连接后附加到 tmux 会话。有问题的系统和正常工作的系统具有非常相似的配置,所以我不确定要检查什么。
我正在运行 tmux 1.9a 版。有问题的系统(我有 root 访问权限)的 Linux 内核版本为 3.17.4-1,而正常工作的系统的内核版本为 3.16.4-1-ARCH(我没有 root 权限)系统)。我怀疑内核版本是问题的根源,但这只是我注意到的一个差异。
我想我会问是否有人见过类似的问题并知道可能的解决方案。
导致问题的确切步骤是:
tmux以启动 tmuxctrl-B D 分离(此时我可以重新连接 tmux attachtmux attach,我收到消息no sessions并运行tmux ls返回failed to connect to server: Connection refused …我最近开始使用 tmux(之前是一个屏幕用户)并且我很喜欢它,除了一个小问题。我在 tmux 会话中使用 emacs,我习惯于使用 Shift-箭头键在 emacs 窗口(不是 tmux 窗口)之间移动。在 tmux 中运行时,这些绑定似乎完全停止工作(就像它们根本没有注册到 emacs 一样)。如果我退出 tmux 并在我的 shell 中运行 emacs,它们就可以正常工作。
我正在使用 iTerm2,通过 ssh 进入一个 Linux 机器,在那里运行 tmux/emacs。我在 .emacs 中按如下方式设置了 Shift-箭头键绑定:
(global-set-key "\M-[1;2A" 'windmove-up)
(global-set-key "\M-[1;2B" 'windmove-down)
(global-set-key "\M-[1;2C" 'windmove-right)
(global-set-key "\M-[1;2D" 'windmove-left)
Run Code Online (Sandbox Code Playgroud)
当不在 tmux 中运行时,我可以通过在 emacs 中执行 Cq 然后按下键序列来确认这些是 shift-arrow 键组合的正确字符序列。在 tmux 中,即使这样也不起作用,因为它似乎没有看到来自 shift-arrow 按键的任何输入(它只是位于 Cq 提示符处)。
查看 tmux 的键绑定,我不认为任何东西都绑定到 Shift-箭头键,即使是,它们也只会在输入前缀后注册(在我的情况下绑定到 Co)。
关于如何在 tmux 中使 shift-arrow 键再次工作的任何想法?
围绕这个有很多问题,但这是因为有太多的变数。在我开始工作之前,我必须拼凑来自许多网站的说明。
首先,我无法在 gnome-terminal 中轻松设置 16 种日光化颜色定义(我手动/单击才意识到我没有正确设置顺序/映射)。一旦我确定我继续前进......
然后我在 vim OK-ish 中使用了日晒颜色,但是在某些突出显示中出现了一些奇怪的黑色背景。一旦我解决了这个问题,我继续前进......
然后我意识到 vim 曾经在 tmux 中运行过 v.wonky。这引起了广泛的争论,但很少有答案(主要是关于设置TERM为xterm-256colors)对我有用。我最终也解决了这个问题。
Solarized是一个非常好的调色板(尽管我使最暗的基色变暗并使最亮的基色变亮,因为我更喜欢更高的对比度,并且在我的校准屏幕上发现 tmux 的“白色”太黄了 - 在典型的未校准笔记本电脑屏幕上可能很好,因为它们“ re通常太蓝了!),所以我发布了这个问题及其答案,以分享我的学习结果。