VIM有没有办法绑定 (Ctrl + 数字键)快捷键?

作者:半瓶墨水   链接:http://www.2maomao.com/blog/vim-map-ctrl-and-numbers/

最近安装了几个不错的插件以后,感觉vim的快捷键开始不够用了

于是想把Ctrl和逗号、句号两键做成快捷键,但是试了好几次发现不行

后来又尝试绑定Ctrl+数字键,还是失败

不得已,在vim-cn邮件组发了一封邮件有没有办法map Ctrl+,./;0-9

发完以后一两天没有回音,差点都忘了,后来tocer给出一个链接:
how to bind CTRL- to something else?

过去看了看,发现老同志 Tony Mechelynck 指出:

For portability, the only “Ctrl+printable key” combinations recognized
by Vim are those where the “printable key” corresponds to a character in
the range 0x3F-0x5F, or a lowercase letter, as follows:
? 0x3F Ctrl-? 0x7F (DEL)
@ 0x40 Ctrl-@ 0x00
A 0x41 a 0x61 Ctrl-a or Ctrl-A 0x01
B 0x42 b 0x62 Ctrl-b or Ctrl-B 0x02

Y 0x59 y 0x79 Ctrl-y or Ctrl-Y 0x19
Z 0x5A z 0x7A Ctrl-z or Ctrl-Z 0x1A
[ 0x5B Ctrl-[ 0x1B (ESC)
\ 0x5C Ctrl-\ 0x1D
] 0x5D Ctrl-] 0x1D
^ 0x5E Ctrl-^ 0x1E
_ 0x5F Ctrl-_ 0x1F

就是说,为了平台之间的可移植性,只允许0x3F-0x5F之间的字符和Ctrl绑定快捷键
也就是这些字符:
? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _

于是乎,我决定卸载几个基本不用的插件,把快捷键再省点儿出来算了

5 条评论 发表在“VIM有没有办法绑定 (Ctrl + 数字键)快捷键?”上

  1. Ai.Freedom说道:

    我来消灭零回复~

    好在 Emacs 的快捷键绑定比 vi 爽很多啊, 不然 Emacs 也就囧了..

  2. 半瓶墨水说道:

    @Ai.Freedom

    嗯,呵呵,没有快捷键的Emacs就不是Emacs了

  3. flying说道:

    LZ太有才了,表示感谢………………

  4. 红华软件说道:

    linux中可以啊,windows里我不清楚。很简单的,但要在 xresource 中设置键值映射。
    edit ~/.Xresources 添加
    XTerm*VT100.translations: #override \n\
    Ctrl 3: string(0x1b) string(“[27;5;9~”) \n \
    Ctrl 4: string(0x1b) string(“[27;6;9~”) \n \
    Ctrl 9: string(0x1b) string(“[27;9;9~”) \n \
    Ctrl 0: string(0x1b) string(“[27;0;9~”) \n
    $ xrdb -merge ~/.Xresources
    edit vimrc 添加
    map [27;9;9~ h
    map [27;0;9~ l

  5. 红华软件说道:

    2 ~/.Xresources + [No Name] X
    edit ~/.Xresources 添加
    XTerm*VT100.translations: #override \n\
    Ctrl 3: string(0x1b) string(“[27;5;9~”) \n \
    Ctrl 4: string(0x1b) string(“[27;6;9~”) \n \
    Ctrl 9: string(0x1b) string(“[27;9;9~”) \n \
    Ctrl 0: string(0x1b) string(“[27;0;9~”) \n
    $ xrdb -merge ~/.Xresources
    edit vimrc 添加
    map [27;9;9~ h
    map [27;0;9~ l
    ~

留下回复