当我使用 与我的机器建立 SSH 连接时PuTTY
,我发现Control + Arrow keys
在使用vim
或nvim
在 bash 终端中工作时行为异常。
例如,在 Vim 中,转义Ctrl + Left Arrow
和仅Left Arrow
输出^[OD
。
而在 Nvim 的情况下,它们都输出<left>
。
但是,当我打开vim
或nvim
内部时tmux
,按键功能正常。在这种情况下,转义的Control + Left Arrow
生成^[[1;5D
,而Left Arrow
输出^[OD
。
在 中nvim
,对应的输出分别为<C-Left>
和<Left>
。
我找到了一个小解决方法,即勾选 旁边的框。这样可以在 和 中,甚至在 之外Terminal > Features > Disable application cursor keys mode
启用 的正常功能。Control + Arrow keys
vim
nvim
tmux
现在转义的Control + Left Arrow
结果为^[[1;5D
,而 则Left Arrow
产生^[OD
。 (同样,分别nvim
返回<C-left>
和<left
)
top
然而,这一变化带来了一个新问题。在、htop
、ranger
或等命令中导航时,箭头键将停止工作man
(在 内bash
)。但在 内它们仍可继续工作tmux
。
因此,为了解决这个问题,我尝试将以下内容添加到~/.inputrc
"\eOD": backward-word
"\eOC": forward-word
"\eOA": previous-history
"\eOB": next-history
遗憾的是,这并不能解决问题;
因此,我希望找到一种解决方案,使其能够在标准环境中Ctrl + Arrow keys
运行,而不会损害滚动功能。或者,反过来;要么……vim
neovim
bash
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