更改特定映射的超时?

时间:2015-01-22 20:10:12

标签: vim

我有一些hackish便捷映射来编写常见的unicode字符。这些总是以非常快的顺序完成,我希望它们的超时比我的正常映射要短很多。

有没有办法让每次重映射超时? timeout和朋友的帮助并没有给我很高的信心,但我知道那里有很多技巧。

例如

" should have normal timeout
inoremap <leader>f somecommand
" should have a short timeout
inoremap oe ø

2 个答案:

答案 0 :(得分:0)

插入模式映射(其中也键入了子集)确实很糟糕,因为插入(不完整的映射)字符之前会有明显的延迟。最好避免这些。

有一种插入Unicode字符的内置方式,请参阅:help digraph。对于您的示例字符,可以通过 Ctrl + K O / 输入。如果您想保留快捷方式,请重新定义:

:digraph oe 248

答案 1 :(得分:0)

要解决同样的问题 - 通过快捷方式添加Unicode字符 - 我使用vim keymap文件。在〜/ .vim / keymap / aaaaa_utf-8.vim和〜/ .vim / keymap_aaaaa.vim我有:

    " short keymap name for statusline  (I did't really write 'aaaaa')
    let b:keymap_name = "aaaaa"

    scriptencoding utf8

    loadkeymap

    ;c <char-0xe7>
    ;C <char-0xc7>
    ;g <char-0x11f>
    ;G <char-0x11e>
    ;i <char-0x131>
    ;I <char-0x130>
    ;o <char-0xf6>
    ;O <char-0xd6>
    ;s <char-0x15f>
    ;S <char-0x15e>
    ;u <char-0xfc>
    ;U <char-0xdc>

然后在我的vimrc中我有

set keymap=aaaaa

我现在,习惯性地,没有思考,键入; C和Ç出现。我输入的速度很快,我从未注意到延迟:输入时没有延迟。

作为额外的奖励,我通过

在bash命令行上使用这些相同的快捷方式
    ";c": "\xc3\xa7"
    ";C": "\xc3\xb7"    
    ";g": "\xc4\x9f"
    ";G": "\xc4\x93"
    ";i": "\xc4\xb1"
    ";I": "\xc4\xb0"
    ";o": "\xc3\xb6"
    ";O": "\xc3\x96"
    ";s": "\xC5\x9F"
    ";S": "\xC5\x9E"
    ";u": "\xc3\xbc"
    ";U": "\xc3\x9c"

添加到我的.inputrc

供参考:

      Ç     ç     Ğ     ğ     İ     ı     Ö     ö     Ş     ş     Ü     ü
Code: 00c7  00e7  011e  011f  0130  0131  00d6  00f6  015e  015f  00dc  00fc
UTF8: c3 87 c3 a7 c4 9e c4 9f c4 b0 c4 b1 c3 96 c3 b6 c5 9e c5 9f c3 9c c3 bc
相关问题