linux - 通过 ssh 重新连接到 tmux session 后 vim 键映射不起作用

标签 linux vim ssh tmux

一点上下文:我正在使用 vimx(这是 RedHat 终端 vim 的 X 显示兼容版本,它使我能够在 vim 中使用 + 和 * X 剪贴板寄存器)。我对我的服务器执行 ssh(使用 -Y 选项进行 X 转发)并在 tmux 中运行 vim(即 vimx)。如果我分离 tmux session 并在同一个 ssh session 中再次附加到它,则一切正常。但是,如果我注销 ssh session 并重新登录,然后附加到我的 tmux session (正在运行 vim),则 vim 键绑定(bind)和键映射(如新选项卡的 ctrl+n)和 vim 命令(如 ":buffers "用于显示 vim 缓冲区或 ":reg"用于显示寄存器)将不再工作,直到我关闭 vim 并再次打开它。我怀疑这是 vim 和 tmux 中的 X11 显示问题,但是我无法找到 vim 或 tmux 中出了什么问题。

问题总结及重现方法:

1) ssh 到服务器:ssh -Y user@server

2) 打开一个新的 tmux session :tmux -2

3) 打开 vimx: vimx myfile.cc

4) 与 tmux 分离:ctrl+b d

5) 注销 ssh session :在终端输入 exit 或按 ctrl+d

6) 重新连接到服务器:ssh -Y user@server

7) 重新连接到 tmux session :tmux -2 attach

在第 7 步中,我将重新连接到 vimx session ,但是,我的 vim 键映射或 vim 命令现在都不起作用。 (如果我关闭并重新打开 vim,它们确实会得到修复,但在那种情况下,tmux 对远程使用 vim 有什么好处?!:))

最佳答案

无需重新启动 vim,只需使用 :source 命令重新加载 vimrc。

: 所以 ~/.vimrc

这比重新启动更容易,甚至在编辑文件的过程中也能正常工作。

关于linux - 通过 ssh 重新连接到 tmux session 后 vim 键映射不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24463304/

相关文章:

linux - 如何获取 Linux 命令的完整路径名

java - Linux 上的自定义 TG2480H USB

vim - 如何在vim中的选项卡标签中显示选项卡中的拆分数量?

objective-c - 在 Cocoa 应用程序中运行 ssh-askpass

ssh - 使用Expect通过SSH进行两步登录

c++ - Linux 中是否可以检测 USB 扩展卡的存在?

linux - 我在哪里可以找到 CentOS 中的 envvars 配置文件(如果有的话)?

vim - 禁用所有文件类型的自动评论

vim - 更改 Vim 中的默认搜索条件

python - 从python通过SSH连接Gitlab部署公钥