我写了一些函数.bashrc以便tmux于使用:
#!/bin/bash
# .bashrc
# vim tmux
#----- --------------------
tabc() { tmux kill-window; }
tabe() { tmux new-window; }
tabf() { tmux find-window $@; }
tabn() { tmux next-window; }
tabo() { ; } # <-- How to `tabonly`?
tabp() { tmux previous-window; }
qa() { tmux kill-session; }
sp() { tmux split-window; }
vsp() { tmux split-window -h; }
on() { tmux kill-pane -a; }
typeset -fx tab{c,e,f,n,o,p} {,v}sp qa on
Run Code Online (Sandbox Code Playgroud)
我想执行tabonly命令,但不知道如何执行。
每天我都会推出一堆urxvtc -e tmux.
我试图找到一种方法来覆盖 urxvt X 窗口标题(“tmux”),并通过:rename-session session_name.
你们有人做到了吗??
谢谢 !
我有 tmux 命令键作为 Ca。C-Left/C-Right 在单词(或任何它的名字)之间跳转单独在 urxvt 中工作得很好,但在 urxvt/tmux 下它会分别为 Left/Right 打印 '5D' 和 '5C'。如何配置 tmux 以便跳过单词(在 X 上使用 urxvt 或在 tty 中)?
我在 中使用了两个单独的会话tmux,并且在 中有以下内容/etc/tmux.conf:
set -g base-index 1
new -s logi -n cmd
neww -n logi "cat /dev/logi | ccze -m ansi -p syslog -C"
splitw -t 1 -v -p 50
selectw -t 2
selectp -t 0
new -s standard -n htop "htop"
neww -n cmd
splitw -t 2 -v -p 50
selectw -t 2
selectp -t 1
Run Code Online (Sandbox Code Playgroud)
我standard通过调用以下命令启动会话:
urxvtc -name 'tmux' -e bash -c 'tmux attach-session -t standard'
Run Code Online (Sandbox Code Playgroud)
如果没有会话,则创建一个,如果有,则附加。如您所见,我有两个窗口,其中一个分为 2 个窗格。当我重新加载配置文件时,我从另一个会话中获得了 2 个额外的窗口,并且都已添加到预先存在的窗口中。此外,以前的窗口收到了一个额外的窗格。两个额外的窗格很清楚,其中任何一个都没有执行的命令 (htop)。 …
如果我从这样mutt的tmux会话开始:
$ tmux new-session -s mutt mutt
Run Code Online (Sandbox Code Playgroud)
穆特抱怨:
Error in /home/lars/.mutt/colors, line 20: 230: color not supported by term
Error in /home/lars/.mutt/colors, line 26: 244: color not supported by term
Run Code Online (Sandbox Code Playgroud)
但是如果我这样开始tmux,没有命令:
$ tmux new-session -s mutt
Run Code Online (Sandbox Code Playgroud)
然后在tmux会话开始mutt:
$ exec mutt
Run Code Online (Sandbox Code Playgroud)
它可以毫无问题地工作。在这两种情况下,会话TERM内部tmux都设置为screen-256color。我没有看到这两种情况之间有任何功能差异,所以我很困惑。就其价值而言,-2tmux 选项(“强制 tmux 假设终端支持 256 色”)似乎对此行为没有任何影响。
有没有人见过这种行为?你知道是什么原因造成的,以及如何解决吗?
问题:如何增加 tmux 中的复制缓冲区大小?
数据:当我运行以下命令时...
$ for i in {1..1000}; do echo "$i"; done
Run Code Online (Sandbox Code Playgroud)
...并在 tmux 中突出显示整个输出(使用鼠标或键盘命令),这是发送到系统粘贴板的内容:
1
2
3
4
--snip--
205
206
207
208
20 (<--- Notice where it cuts off)
Run Code Online (Sandbox Code Playgroud)
分类:
- 当我退出 tmux 并杀死服务器,移动 tmux.conf 并使用默认 conf 文件启动一个新的 tmux 实例时,这种情况仍然存在。(不得不重新学习默认键很困难 X_X)。
- 也存在于不同的机器上(同样,使用默认的 tmux 设置)和确切的软件(如下所列)。
- 还保留在默认的 Terminal.app 中(同样,使用默认的 tmux 设置)
系统:
OS X 10.9.2
tmux 1.9a(自制软件)+重新附加到用户命名空间(自制软件)
iTerm Build 1.0.0.20140421
概括
当我有一个输出大量文本的 tmux 窗格时,tmux 变得无响应。在文本完成之前,所有 tmux 命令都将被忽略。
这是通过引入选项在 tmux 中修复的:
c0-change-trigger - Number of control characters that occur in 1 ms to trigger throttling
c0-trigger-update - Time to wait between pane redraws when triggered
Run Code Online (Sandbox Code Playgroud)
问题
我正在使用 tmux 1.8。我在 ~/.tmux.conf 文件中设置了以下选项:
# Limit character spewing
set -g c0-change-trigger 100 # default is 250 triggers/millisecond
set -g c0-change-interval 1000 # default throttle updates at 100 ms intervals
Run Code Online (Sandbox Code Playgroud)
但是,tmux 仍然会因过多的文本而窒息。例如,如果我转到一个窗格并键入:
find /
Run Code Online (Sandbox Code Playgroud)
该命令会生成大量文本,即使设置了 c0-* 选项,tmux 也不允许我切换窗格、切换窗口、分离等。
我知道您可以通过键入以下内容来查看设置的选项:
Ctrl-<Prefix> …Run Code Online (Sandbox Code Playgroud) 是否可以在 Tmux 中创建一个会终止当前会话的快捷方式?输入“kill-session -t mysession”不是很方便
我想像
bind X kill-session -t $currentsesion
我不明白如何让绑定知道哪个会话是当前的。
如果我使用byobu,exit只会关闭当前的shell。而且我必须关闭所有 shell 才能终止会话,这很糟糕,因为我想保留所有 shell,这就是我使用 byobu 的原因。
另一种方法是直接关闭窗口。但有时我只想恢复到我的本地计算机。
是否可以在不打扰 byobu 的情况下关闭会话?或者我应该总是为与 byobu 的 SSH 会话打开一个新选项卡/窗口?
tmux ×10
linux ×5
terminal ×3
urxvt ×2
arch-linux ×1
bash ×1
byobu ×1
gnu-screen ×1
mutt ×1
session ×1
ssh ×1
ubuntu-14.04 ×1
unix ×1
vim ×1