如何在VIM中映射重新分配的序列?

时间:2015-03-23 17:59:21

标签: vim

我想将'space + u'映射为'Ctrl + u',我在配置中有这个:

nnoremap <space>u <C-u>

但它不能像Ctrl + u一样工作。当我按'空格+你'时,首先它工作正常,但是当我第二次按'你'时它会起作用'撤消'(我从第一次开始就拿着'空间')。我想让它起作用,当我按下'Ctrl'时,按住它并且可以随时点击'u'。

我该怎么办?

1 个答案:

答案 0 :(得分:0)

您所做的映射意味着“先占空间,然后连续”。那里不是同时动作,这解释了后续调用的行为。 Vim听取了关键的新闻事件;系统报告它键入了这个和那个键,使用那个和那个修饰符(ctrl,super)。 很少应用程序理解检查所持有的键的任意组合(在游戏之外)。

对于这种黑客攻击,有一个名为https://github.com/alols/xcape的Linux系统已建立的项目。结合使用xcape和xmodmap,您基本上可以将<space>映射为修饰键,就像使用较少的Hyper键一样(这是xmodmap的一部分)。然后,您将使用xcape确保隔离按空格将导致空格字符。人们使用xcape将return映射为右Ctrl键(而Caps Lock将作为左Ctrl)。