映射Alt + Key以移动到相同的缩进

时间:2015-04-26 19:21:47

标签: vim macvim

我在vimrc上映射以下键时遇到问题并不确定原因。我已经检查过它似乎没有其他映射使用相同的键,但由于某种原因,以下不起作用:

" Move to next/previous line with same indentation
nnoremap <A-k> :call search('^'. matchstr(getline('.'), '\(^\s*\)') .'\%<' . line('.') . 'l\S', 'be')<CR>
nnoremap <A-j> :call search('^'. matchstr(getline('.'), '\(^\s*\)') .'\%>' . line('.') . 'l\S', 'e')<CR>

这里有任何明显错误吗? 这些命令本身就像我测试过的那样工作。

3 个答案:

答案 0 :(得分:0)

在OSX中,也可能在其他操作系统中,alt +(某物)实际上会发送不同的密钥,

在我的键盘中,alt + j和alt + k实际上将分别发送¯和“。因此,您需要使用实际发送的密钥或不同的密钥组合。

答案 1 :(得分:0)

或者,您可以使用gnome tweak工具来映射键。它是一个gui界面。

安装:

sudo apt-get install gnome-tweak-tool

答案 2 :(得分:0)

按下ALT +键发送一个&#39; ESC&#39;之前&#39;关键&#39;。如果您处于插入模式,按下ALT +键后,您将返回正常模式,然后您的按键将在正常模式下操作。

试试吧!

如果(当然是插入模式),请输入&#39; abcde&#39;然后ALT + 0,你会发现自己在线路的开始处于正常模式。

所以,有两件事:

  1. ALT + k实际上是ESC + k,它只是&#39; k&#39; (排队)在正常模式下......但也会是&#39; k&#39;从插入模式执行时(在正常模式下排队)。这就是你所看到的。
  2. 作为一种习惯采用的这种方式可能有点用,如果你想做的话,那就是把我改成普通模式并做一个关键的“x&#39; x&#39; &#34;插入模式的操作。