vim – 运行tmux时映射箭头键
发布时间:2020-12-15 18:24:42 所属栏目:安全 来源:网络整理
导读:这些键映射在tmux中停止工作.在我的. vimrc中,我有: nmap Space imap C-Down C-wjmap C-Up C-wkmap C-Left C-whmap C-Right C-wl 当我跑:地图时,我看到: C-Right C-Wl C-Left C-Wh C-Up C-Wk C-Down C-Wj 然而,当我同时按下控制键和箭头键时,它表现得好像
这些键映射在tmux中停止工作.在我的.
vimrc中,我有:
nmap <Space> i map <C-Down> <C-w>j map <C-Up> <C-w>k map <C-Left> <C-w>h map <C-Right> <C-w>l 当我跑:地图时,我看到: <C-Right> <C-W>l <C-Left> <C-W>h <C-Up> <C-W>k <C-Down> <C-W>j 然而,当我同时按下控制键和箭头键时,它表现得好像没有设置键绑定.
Vim知道类似xterm的终端(由TERM以xterm开头标识,或者对t_RV序列的特定响应,如果已定义)支持某些已修改密钥的扩展序列,但它并不假设这对于屏幕TERM(你应该这样做)在tmux下使用).
但是,如果存在TMUX,您可以告诉Vim这些序列并启用它们,并且TERM从屏幕开始(第一行在tmux下启用(更好)鼠标支持,您可能也喜欢): if &term =~ '^screen' && exists('$TMUX') set mouse+=a " tmux knows the extended mouse mode set ttymouse=xterm2 " tmux will send xterm-style keys when xterm-keys is on execute "set <xUp>=e[1;*A" execute "set <xDown>=e[1;*B" execute "set <xRight>=e[1;*C" execute "set <xLeft>=e[1;*D" execute "set <xHome>=e[1;*H" execute "set <xEnd>=e[1;*F" execute "set <Insert>=e[2;*~" execute "set <Delete>=e[3;*~" execute "set <PageUp>=e[5;*~" execute "set <PageDown>=e[6;*~" execute "set <xF1>=e[1;*P" execute "set <xF2>=e[1;*Q" execute "set <xF3>=e[1;*R" execute "set <xF4>=e[1;*S" execute "set <F5>=e[15;*~" execute "set <F6>=e[17;*~" execute "set <F7>=e[18;*~" execute "set <F8>=e[19;*~" execute "set <F9>=e[20;*~" execute "set <F10>=e[21;*~" execute "set <F11>=e[23;*~" execute "set <F12>=e[24;*~" endif 如注释所示,您还需要启用窗口的xterm-keys选项.您可以像这样在所有窗口中执行此操作(在?/ .tmux.conf中): set-option -gw xterm-keys on (请记住,对?/ .tmux.conf的更改不会自动加载.为了有效,您需要手动运行此命令(在tmux shell命令中,或在前缀:提示符下),或重新加载配置文件使用source~ / .tmux.conf(在tmux shell命令中,或在Prefix:提示符下),或重新启动服务器(退出所有会话并重新启动tmux)). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |