vim urxvt ttymouse HOME 和 END

问题描述

我真的不喜欢 vim 中的鼠标集成,所以我最近在 .vimrc添加了两个指令来禁用 mousettymouse。这解决了我的鼠标问题,但引入了一个新问题。 HOMEEND 曾经在 vim 中工作,但在添加这两个指令后它们不再工作。现在不是移动光标,这两个键要么 (1) 对光标没有可见的影响,但在按下 ESC 之前阻止进一步的命令工作,(2) 用 ~ 替换光标下的文本,(3 ) 更改光标下任何内容的大小写。

我不知道为什么关闭与鼠标相关的集成会中断 HOME/END,但我想修复它们。一些研究表明,这可能与 TERM 变量的设置方式有关。我正在使用 rxvt-unicode。我已经安装了 rxvt-unicode-terminfoTERMrxvt-unicode-256color。我没有在我的 shell RC 中手动设置它,当 urxvt 派生它时,它被设置到我的 shell 环境中。

根据 the Arch wiki,我向 ~/.Xresources 添加了指令,但在通过 vim 重新加载后,它们在 xrdb ~/.Xresources 中没有明显影响。值得注意的是 HOME/END 都可以在 nano 中使用或不使用 ~/.Xresources` 中的指令。

如果我切换到 tty 并运行 showkey --scancodes,我会得到以下信息:

0xe0 0x47 0xe0 0xc7  # Home
0xe0 0x4f 0xe0 0xcf  # End
% cat /etc/vimrc 
runtime! archlinux.vim
set number
set paste
filetype indent off

% cat /usr/share/vim/vimfiles/archlinux.vim
if &compatible
  set nocompatible
endif

set backspace=indent,eol,start
set ruler
set suffixes+=.aux,.bbl,.blg,.brf,.cb,.dvi,.idx,.ilg,.ind,.inx,.jpg,.log,.out,.png,.toc
set suffixes-=.h
set suffixes-=.obj

" Move temporary files to a secure location to protect against CVE-2017-1000382
if exists('$XDG_CACHE_HOME')
  let &g:directory=$XDG_CACHE_HOME
else
  let &g:directory=$HOME . '/.cache'
endif
let &g:undodir=&g:directory . '/vim/undo//'
let &g:backupdir=&g:directory . '/vim/backup//'
let &g:directory.='/vim/swap//'
" Create directories if they doesn't exist
if ! isdirectory(expand(&g:directory))
  silent! call mkdir(expand(&g:directory),'p',0700)
endif
if ! isdirectory(expand(&g:backupdir))
  silent! call mkdir(expand(&g:backupdir),0700)
endif
if ! isdirectory(expand(&g:undodir))
  silent! call mkdir(expand(&g:undodir),0700)
endif

" Make shift-insert work like in Xterm
if has('gui_running')
  map <S-Insert> <MiddleMouse>
  map! <S-Insert> <MiddleMouse>
endif

% cat ~/.vimrc 
set ttymouse=
set mouse=
% cat ~/.Xresources 
URxvt.font: xft:Noto Sans Mono:size=12,xft:Font Awesome 5 Free,Font Awesome 5 Free Solid:style=Solid
URxvt.scrollBar: false
URxvt.scrollBar_right: true
URxvt.perl-ext-common: selection-to-clipboard
URxvt.keysym.Control-Shift-C: perl:keyboard-select:activate
URxvt.clipboard.autocopy: true
URxvt.background: black
URxvt.foreground: white
URxvt.visualBell: true
URxvt.keysym.Home: \033[1~
URxvt.keysym.End: \033[4~
URxvt.keysym.KP_Home: \033[1~
URxvt.keysym.KP_End:  \033[4~

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)