gnu-screen 下的 vim 无法正确采用 shift-left/shift-right 键映射

gnu-screen 下的 vim 无法正确采用 shift-left/shift-right 键映射

我最近开始使用 gnu-screen。在 vimrc 中,我有 2 个如下所示的键盘映射,以帮助在 vim 分割窗口之间轻松导航

nmap <S-Left> <C-w><Left>
nmap <S-Right> <C-w><Right>

从普通 shell 运行 vim,上述导航键映射按预期工作。

从 gnu-screen 会话运行 vim,这些键映射失败,它们反而删除了这些行!!

我尝试了以下方法:

  1. 在 vimrc 中设置 term=xterm
  2. 设置 t_kr=^[[1;2C (我错误地认为 t_kr 将有助于正确地进行“右移”)

但未能修复。这里有人可以帮忙吗?

答案1

找到解决办法!

使用bindkey/东西来自 gnu-screen 和命令行从 vim,我更新了我的 screenrc:

# Shift + Up-arrow
bindkey ^[[1;2A stuff ":wincmd k^M"
# Shift + Down-arrow
bindkey ^[[1;2B stuff ":wincmd j^M"
# Shift + Right-arrow
bindkey ^[[1;2C stuff ":wincmd l^M"
# Shift + Left-arrow
bindkey ^[[1;2D stuff ":wincmd h^M"

注意:要在 vim-insert 模式下添加“^M”,请使用:Ctrl+v,然后按 ENTER

相关内容