使用 PuTTY 时在 (Neo)vim 中使用 Ctrl + 箭头键的问题

使用 PuTTY 时在 (Neo)vim 中使用 Ctrl + 箭头键的问题

当我使用 与我的机器建立 SSH 连接时PuTTY,我发现Control + Arrow keys在使用vimnvim在 bash 终端中工作时行为异常。

例如,在 Vim 中,转义Ctrl + Left Arrow和仅Left Arrow输出^[OD

而在 Nvim 的情况下,它们都输出<left>

但是,当我打开vimnvim内部时tmux,按键功能正常。在这种情况下,转义的Control + Left Arrow生成^[[1;5D,而Left Arrow输出^[OD

在 中nvim,对应的输出分别为<C-Left><Left>


我找到了一个小解决方法,即勾选 旁边的框。这样可以在 和 中,甚至在 之外Terminal > Features > Disable application cursor keys mode启用 的正常功能。Control + Arrow keysvimnvimtmux

现在转义的Control + Left Arrow结果为^[[1;5D,而 则Left Arrow产生^[OD。 (同样,分别nvim返回<C-left><left

top然而,这一变化带来了一个新问题。在、htopranger或等命令中导航时,箭头键将停止工作man(在 内bash)。但在 内它们仍可继续工作tmux

因此,为了解决这个问题,我尝试将以下内容添加到~/.inputrc

"\eOD": backward-word
"\eOC": forward-word
"\eOA": previous-history
"\eOB": next-history

遗憾的是,这并不能解决问题;

因此,我希望找到一种解决方案,使其能够在标准环境中Ctrl + Arrow keys运行,而不会损害滚动功能。或者,反过来;要么……vimneovimbash

Tmux 配置:

$ echo $TERM
screen
$ cat /usr/share/docs/tmux/example_tmux.conf

# Enable RGB colour if running in xterm(1)
set -ag terminal-overrides ",screen-256color:Tc"

# Change the default $TERM to tmux-256color
set -g default-terminal "screen-256color"

# Turn the mouse on, but without copy mode dragging
set -g mouse on
unbind -n MouseDrag1Pane
unbind -Tcopy-mode MouseDrag1Pane

相关内容