2013-03-21 88 views
1

我想要做什么:如何在插入模式下通过首先按住'w'然后按'2'在Vim中创建自定义键绑定来编写“hello world”?由两个键调用的Vim键绑定

注意,我不希望我的命令,按W,则调用2 - w键必须向下保持,则按下2。另请注意,如果先按住2键然后按下,则不应调用该命令。

之所以想要w至先按住然后按2的是,如果我想输入“W2”的字面我能做到这一点按+按下W,则按下2

+1

为什么必须按下'w'?这听起来像一个Emacs用户试图出去:) – 2013-03-21 01:11:47

+0

Ew Emacs!其实是一个autohotkey用户! – georg 2013-03-21 01:15:17

+0

如果是我,我会忘记压制的部分,并使用Vim,因为它主要是打算(也就是说通过按键序列)也许看到Snipmate与一些自定义片段,你可以通过按指定序列后按Tab触发http://www.vim.org/scripts/script.php?script_id = 2540 – 2013-03-21 01:17:07

回答

2

你试过TextExpander或更好的TypeIt4Me

无论如何,你所描述的确切机制在Vim中是不可能的。由于w不是修饰键,因此无法保持按下状态,并期望Vim注册第二个按键。

我能想到的越接近arpeggio它可以让你把东西映射到同时按下键

+0

是的,它看起来像琶音是最接近vim的东西。谢谢! – georg 2013-03-21 18:11:48

1

:inoreab w2 hello world或写inoreab w2 hello world在你的.vimrc

然后当你处于INSERT模式时,输入w2<space>,这两个字就会在那里。

领导密钥(<leader>)可以是任意键,用户可以自己映射它。默认为\。顺便说一句,我不认为这是一个好主意,以w作为领导钥匙。它与正常模式下的w(字向前)冲突。

我将,(逗号)映射为主键。

详细请查看:h <leader>

编辑为OP的评论

我可以以某种方式做到这一点,而不必按<space>

是的,你可以(但是我不推荐这种方式。)

你可以去映射方式跳过的空间。

:inoremap w2 hello world 

请注意,如果你有一个映射,在插入模式下,任何时候按下w2的“Hello World”将立即出现。我不确定它对你是否方便,对我而言不是。

+0

@MrBanana请参阅Edit – Kent 2013-03-21 01:10:54