vimrc中使用Alt的任何映射都不起作用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vimrc中使用Alt的任何映射都不起作用相关的知识,希望对你有一定的参考价值。
我在.vimrc中使用ALT进行了一些映射。他们是:
nnoremap <A-J> :m .+1<CR>==
nnoremap <A-K> :m .-2<CR>==
预期的行为:这两个映射应该上下移动一行。但他们没有工作。我甚至没有收到任何错误或警告。但是当我使用shift时,它们工作正常。下面给出了工作映射。
nnoremap <A-J> :m .+1<CR>==
nnoremap <A-K> :m .-2<CR>==
ALT为什么不工作?
答案
首先查看终端发送给vim的密钥代码:
$ sed -n l
我在Ubuntu,Alt+j
导致
^[j
这基本上打印出从终端发送到vim的密钥代码组合。
如果您在使用<A+j>
组合键时遇到困难,您可以获取发送到vim的内容然后在.vimrc
中使用它。
如下:
nnoremap ^[j :m .+1<CR>==
这将把<Alt + J>
映射到一个阵容。
注意:请勿将nnoremap ^[j :m .+1<CR>==
复制并粘贴到.vimrc中。您将不得不在终端中找到正在发送的密钥代码,并且它可能与^[j
非常不同,因为每个终端可能会向vim发送不同的密钥代码。我正在使用在VM上运行的Putty + Ubuntu。
另一答案
要映射Alt,您必须使用M而不是A.
nnoremap <M-J> :m .+1<CR>==
nnoremap <J-K> :m .-2<CR>==
以上是关于vimrc中使用Alt的任何映射都不起作用的主要内容,如果未能解决你的问题,请参考以下文章