我正在尝试设置 iTerm2 + mosh + tmux 来完成我的远程工作。我可以连接所有东西,但由于某种原因,鼠标响应很奇怪。如果我拆分我的 tmux 窗口,因此我有两个窗格并单击以在它们之间切换,当我第一次这样做时,一切都已找到。第二次及以后,它根本不起作用。我也无法滚动或执行与鼠标相关的任何其他操作。这只会在我点击后发生。如果我所做的只是在两个窗口中滚动,没问题。
如果我使用 SSH 而不是 mosh,问题就不会出现,但这次尝试的重点是全职切换到 mosh。如果我不使用 tmux 而只有一个 vim 窗口,这个问题也不会发生。我可以整天在那里点击。
有谁知道什么设置可能是错误的,甚至从哪里开始?它显然与 tmux 有关,但我一直无法找到可能导致问题的设置。
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D
set -g mode-mouse on
set -g mouse-resize-pane on
set -g mouse-select-pane on
set -g mouse-select-window on
Run Code Online (Sandbox Code Playgroud) 我为我的 github 帐户设置了一个私钥,我相信它的密码存储在 OS X 的钥匙串中。当我打开终端窗口并输入ssh git@github.com.
但是,当我在 ssh 会话上或本地在 tmux 会话中运行 bash 时,每次尝试 ssh 到 github 时,我都必须输入密码。
这个问题表明 screen 存在类似的问题,但我不太了解这个问题,无法在 tmux 中修复它。还有这个页面,其中包含一个相当复杂的解决方案,但用于 zsh。
编辑:
为了回应@Mikel 的回答,我从本地终端得到以下输出:
[~]
$ echo $SSH_AUTH_SOCK
/tmp/launch-S4HBD6/Listeners
[~]
$ ssh-add -l
2048 [my key fingerprint] /Users/richie/.ssh/id_rsa (RSA)
[~]
$ typeset -p SSH_AUTH_SOCK
declare -x SSH_AUTH_SOCK="/tmp/launch-S4HBD6/Listeners"
Run Code Online (Sandbox Code Playgroud)
而通过 ssh 或 tmux 我得到:
[~]
$ echo $SSH_AUTH_SOCK
[~]
$ ssh-add -l
Could not open a connection to your authentication agent. …Run Code Online (Sandbox Code Playgroud) 作为 Stack Exchange 的长期潜伏者,我已经找到了大部分问题的答案,而无需注册帐户。但是今天我完全被这个问题难住了,所以我寻求帮助。
我最近发现了 Byobu,它是 Tmux 的前端,它使用 Fn 键执行常见任务。通过 SSH 从我必须在工作中使用的 Windows PC 到远程 linux 服务器进行多任务处理,这是一个真正的祝福。
目前,我正在通过 SSH 隧道使用 gnome-terminal,因为 PuTTY 和 MinTTY(Cygwin 的默认终端)似乎都为功能键发送了错误的键码。
我想知道是否有办法重新映射某些转义码,以便至少我的一个基于 Windows 的终端可以与 Tmux 正常工作。(我想我可以只学习 Ctrl+b/Ctrl+a 组合键,但是执行组合键后跟另一个键并没有真正让我觉得符合人体工程学。)
在 PuTTY 中,将 Terminal>Keyboard>"The Function keys and keypad" 设置为 "XtermR6" 似乎可以正常为 Fn 键推送正确的转义序列,但 Shift 和 Ctrl 修饰符已损坏。我可以使用 vim 找出每个终端发送的代码。同时,我想我可能已经在其源代码中查找了 tmux 正在寻找的组合,但我不确定:
Key Tmux Expects Gnome-Terminal PuTTY MinTTY
Normal F3: ^[0R ^[0R ^[0R
Ctrl+F3 "\033[13^" ^[01;5R ^[0R ^[[1;5R
Shift+F3 "\033[13$" ^[01;2R ^[[25~ ^[[1;2R
Ctrl+Shift+F3 "\033[13@" ^[01;6R ^[[25~ …Run Code Online (Sandbox Code Playgroud) 我希望能够使用与 xterm 相同的键绑定向上/向下滚动到给定的窗格,即 SHIFT + Page Up/Down。
例如,如果 tmux 窗口分为 2 个垂直窗格,我可以使用键盘在两个窗格中的一个上滚动,而另一个不滚动。
是否可以 ?
这是我的 tmux.conf :
set -g status off
set -g prefix C-o
unbind C-b
bind C-o send-prefix
# settings -------------------------------------------------------------
setw -g utf8 on
setw -g xterm-keys on
set -g default-terminal "screen-256color"
set-option -g set-titles on
set-option -g set-titles-string '[#S:#I #H] #W'
# auto-set window title
setw -g automatic-rename
setw -g aggressive-resize on
# vim keybinds
set-option -g status-keys vi
set-window-option -g mode-keys vi
# scroll inside …Run Code Online (Sandbox Code Playgroud) 尝试tmux从命令行(Terminal.app),内部(通过 MacPorts 安装,版本 1.9a)打开应用程序,并得到以下结果:
$ open /Applications/Adobe\ Reader.app/
LSOpenURLsWithRole() failed with error -10810 for the file /Applications/Adobe Reader.app.
Run Code Online (Sandbox Code Playgroud)
如果在 tmux 之外执行,则相同的命令在同一个终端中可以正常工作。
应从主机读取环境;以下是 tmux.conf :set -g update-environment -r
当重新启动或terminal.app TMUX,它有时错误出与不同的消息,首先,(见下文),并试图再次时,上述错误-10810中给出代替。
$ open /Applications/Adobe\ Reader.app/
The window server could not be contacted. open must be run with a user logged in at the console, either as that user or as root.
Run Code Online (Sandbox Code Playgroud)
我已经尝试过 Apple 自己的应用程序(预览、字体簿、联系人)和第三方(Adobe、Evernote 等)。没有不同。一个似乎有效的应用程序是 finder。(open [dirname]例如。)
自从我开始使用urxvt + tmux作为主终端以来,我想念控制台上的突出显示(反向模式)。突出显示被替换为斜体字体- 一开始看起来很酷 -但是当我尝试在less.
这在终端类型设置为xterm*配置文件时正常工作(例如set -g default-terminal "xterm-color"在.tmux.conf 中)。但是,某些快捷方式不起作用,应用程序无法获得正确的终端几何形状,……在这种情况下。
tmux 的最佳默认键绑定是什么?为什么有时使用 emacs 有时使用 vim(在 Linux Mint 12 上)?Ctrl-b 没问题,但这与 bash shell 和 emacs 有点冲突。
我可以使用以下函数重命名 iterm2 选项卡,效果很好。
function rename_tab {
echo -ne "\033]0;"$@"\007"
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我在 tmux 会话中运行此函数,则什么也不会发生。
知道如何在 tmux 中完成这项工作吗?谢谢!
我正在使用一个名为“计时”的程序来跟踪我的时间。计时使用 iTerm 中当前窗口的名称进行分类。
我想设置 iTerm 的当前标题以匹配当前活动的 tmux 窗口的名称。
我已经在以下位置设置了一个文件~/.config/fish/functions/fish_title.fish:
function fish_title
tmux display-message -p '#W'
end
Run Code Online (Sandbox Code Playgroud)
每当我打开一个新的终端窗口时,这都会成功地将当前的 Tmux 窗口标题输出到终端窗口。但是,如果我重命名 tmux 窗口或切换到新窗口,则终端不会更新。
它更新,如果我使用类似pwd的fish_title:
function fish_title
pwd
end
Run Code Online (Sandbox Code Playgroud)
关于如何fish_title动态获取 tmux 窗口名称的任何想法?