一点上下文:我正在使用 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/