VIM自定义箭头键映射不适用于窗口切换?

时间:2014-01-30 15:25:17

标签: vim shortcuts arrow-keys

我一直在尝试创建一个在vim中打开窗口分割之间切换的快捷方式,而不是必须使用ctrl + w + [arrowkey]我宁愿只能使用ctrl + [箭头键]。

这是我目前在vimrc中的内容:

map <silent> <C-v> <c-w>v
map <silent> <C-Left> <c-w>h
map <silent> <C-Down> <c-w>j
map <silent> <C-Up> <c-w>k
map <silent> <C-Right> <c-w>l

执行vsplit的第一个快捷方式可以正常工作,但其他任何工作都没有。我已经尝试了几种变体,但它们都没有做任何事情。

我正在使用标准的debian wheezy和KDE,vim是从konsole运行的,我安装的唯一插件是NERDTree和Airline。

我希望有人可以帮助提供解决方案,因为我已经在线搜索了几个小时并尝试了数百个选项,似乎没有任何差别。

EDIT 快捷方式的逐字插入根本不输出任何内容,无论是shell还是vim。

2 个答案:

答案 0 :(得分:1)

首先,确保<C-Left>未处理konsole。重新开始并使用cat

$ cat
^[[1;5D

它应该如何适用于<C-Left>。与其他箭头相似。如果<C-Left>无法以这种方式运作,请在"\e[1;5D": .../etc/inputrc中搜索~/.inputrc并对其进行评论。您可能必须注销并登录才能实现这些更改。

接下来,使用

:verbose map
vim中的

显示所有映射的快捷方式及其来源。您应该在此列表中看到您的绑定。您的绑定是正确的,并且都适用于我的情况。

答案 1 :(得分:0)

试试这个:

nnoremap <C-DOWN> <C-W><C-J>
nnoremap <C-UP> <C-W><C-K>
nnoremap <C-RIGHT> <C-W><C-L>
nnoremap <C-LEFT> <C-W><C-H>