我用来tmux attach启动 tmux 并在 tmux.conf 中包含以下几行:
new -n TeX bash
neww -n Shell bash
Run Code Online (Sandbox Code Playgroud)
启动终端模拟器并运行 pgrep 后,我得到以下信息:
~ $ pgrep -lL tmux
41479 /Users/nmk/.homebrew/bin/tmux attach
41481 /Users/nmk/.homebrew/bin/tmux attach
Run Code Online (Sandbox Code Playgroud)
我看到的 tmux 会话是 0。第二个进程在做什么?那两个是客户端和服务器吗?
有些程序,例如vim,如果底部没有 tmux 状态栏,看起来会好得多。我已经设置了一个切换状态栏可见性的按键,但如果状态栏在我启动时就消失,那就更棒了vim。
tmux 支持如此美妙的东西吗?或者甚至可以从侧面接近它.vimrc?alias vim='tmux set status; vim'如果可能的话,我更喜欢更优雅的东西。
我想分离一个 tmux 会话。现在我知道快捷方式 (^bd) 但有没有办法通过 shell 命令来做到这一点。我正在编写一个需要它的自动化脚本。
我正在使用 Cmder (mini) 的 vanilla 安装。安装了 WSL(适用于 Linux 的 Windows 子系统,适用于 Windows 的 Bash)的 Windows 10。使用以下命令在 Cmder 中加载 bash。
%windir%\system32\bash.exe ~ -c zsh -cur_console:p
为了检查功能键是否在终端窗口中工作,我用 nano 打开了一个文本文件。nano 打开后,如果我按 F2(保存和关闭的快捷方式),它会按预期工作。因此,终端至少正确接收到 F2。
然后,我打开了 byobu(默认安装在 WSL/Ubuntu 中)。Byobu 正确打开。但是当我按 F2 时,什么也没有发生。预计将在 Byobu 内打开一个新窗口。终端中甚至没有打印任何内容。
现在,我不确定这是否是 ConEmu 问题。与常规的 Windows cmd.exe 完全相同。不同之处在于 - 如果我左键单击 cmd 终端屏幕上的任意位置(激活选择模式),然后按 F2,它将通过打开一个新的 byobu 窗口来工作。
如果我直接运行 tmux,那么Ctrl-B+%和Ctrl-B+"快捷方式就可以工作。
无法使用 byobu 使得整个 Windows Bash 体验对我来说毫无用处(尤其是在通过 SSH 连接到远程机器时)。我非常感谢一个解决方案。谢谢!
当发出如下命令时,bind Left select-pane -L \; display-panetmux 将在每个窗格上显示数字。活动窗格上显示的数字将具有与其他窗格不同的颜色。
是否可以更改这些数字的颜色?
作为一个附带问题,是否可以更改数字显示的持续时间?
我使用 alacritty,目前,我有这些键绑定
key_bindings:
# (macOS only)
- { key: N, mods: Command, action: SpawnNewInstance }
- { key: F, mods: Command, command:
{ program: "osascript",
args: ["/Users/sand/.dotfiles/alacritty-fullscreen.applescript"] } }
# ...
- { key: Delete, chars: "\x1b[3~" }
Run Code Online (Sandbox Code Playgroud)
我也使用 tmux
# Needed for CTRL-Left/Right to work.
setw -g xterm-keys on
# Use vi key bindings in copy mode.
setw -g mode-keys vi
# Search mode vi
set-window-option -g mode-keys vi
Run Code Online (Sandbox Code Playgroud)
我想要为 zsh 绑定 vi,但我最怀念的是 option+delete 会在 INSERT 模式下向后删除 1 个单词,就像我在 …
如何根据客户端是否处于复制模式(或不处于复制模式)将 tmux 栏的背景颜色更改为不同的颜色?
目标是让 tmux 客户端何时处于复制模式变得非常清楚。
我找到了#{?#{!=:#{selection_present},},COPY-MODE,NORMAL-MODE}作品。
status-left或status-right这只会改变栏的一部分的样式。例子:
set -g status-left '#{?#{!=:#{selection_present},},#[bg=yellow],#[bg=green]}#{=10:session_name}@#{=10:host_short}
这将显示session@hostname在左下角,并且会更改背景,但不会更改整个状态栏的颜色。
status-style使用格式字符串设置set -F -g status-style 'bg=#{?#{!=:#{selection_present},},yellow,green},fg=black
这似乎只评估格式字符串一次。注意:如果我删除-Fbg 不会改变。
我的 tmux 偶尔会进入一种奇怪的状态,其中一半边框(无论方向或(tmux)窗口焦点)是粗体、突出显示的?
请参阅下面的屏幕截图:
奇怪的是,即使完全杀死 tmux 之后我也可以从这种状态中恢复,但是一半边框是彩色的,请参见第二个屏幕截图:
在第二个屏幕截图中,尽管边框的一半是白色的,但另一半是绿色的。
注意:橙色/绿色的差异在这里无关紧要,我尝试了“修复”奇怪的边框,迫使它们变成橙色,这影响了我制作的屏幕截图。
我不相信我有任何不寻常的配置:
new-session -n $HOST
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'nhdaly/tmux-scroll-copy-mode'
set -g @plugin 'tmux-plugins/tmux-yank'
set-window-option -g mode-keys vi
set-window-option -g allow-rename off
set-window-option -g automatic-rename off
set-option -g mouse on
set -g @shell_mode 'vi'
set -g @yank_selection 'clipboard'
set -g @yank_selection_mouse 'clipboard'
set -g default-terminal "screen-256color"
Run Code Online (Sandbox Code Playgroud)
这是一个错误功能吗?为什么只有一半颜色/粗体,为什么粗体只有时发生,为什么它不受缩放或鼠标在窗口内或窗口周围单击的影响?
事实上,我无法可靠地重现,也无法在发生这种情况时忽略它,这让我认为这是一个错误,但我只是不确定。
tmux 版本是 2.9x,终端是 alacritty 0.4.0,操作系统是 Feroda,我的$TERM变量似乎是screen
理想情况下,我喜欢它,这样我就可以通过按下前缀+箭头键来调整窗格的大小我想要的,然后观察面板调整到我满意的程度,我只是抬起我的手停止调整大小。