V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
isaaczeng
V2EX  ›  问与答

Emacs 定义快捷键别名( key binding alias)

  •  
  •   isaaczeng · 2015-08-26 23:02:25 +08:00 · 3095 次点击
    这是一个创建于 3361 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我有几个 key bindings :
    C-c c f m
    C-c c m m
    C-c c ...

    上面几个 key binding 都有公共的前缀。
    我想定义一个 alias 就达到替换 ” C-c c “ 公共前缀的目的。
    把 <SPC> 映射成 C-c ,这样第一个 key binding 就变成
    <SPC> f m

    怎么做?

    6 条回复    2021-03-31 19:21:56 +08:00
    johnnyb
        1
    johnnyb  
       2015-08-26 23:59:03 +08:00
    你需要 evil + evil-leader 或者直接用 spacemacs
    isaaczeng
        2
    isaaczeng  
    OP
       2015-08-27 08:12:46 +08:00
    @johnnyb
    我用的就是 evil + evli-leader , 怎么设置?
    johnnyb
        3
    johnnyb  
       2015-08-27 13:24:43 +08:00
    (setq evil-leader/leader "<SPC>")
    (evil-leader/set-key
    "fm" 'functionX
    "mm" 'functionY
    )

    在 evil mode 下按 `SPC f m` 就相当于以前按 `C-c c f m` 了。还是建议试试 spacemacs ,它就是以 SPC 为 leader key 作为卖点的,相当完善,而且快捷键设置有条理。
    isaaczeng
        4
    isaaczeng  
    OP
       2015-08-27 14:59:10 +08:00
    @johnnyb
    我有很多个 key binding
    我想通过简单的步骤就把前缀 alias 一下, 这样就不需要去设置
    "fm" "mm" ...
    我吧 <SPC> 映射成 "C-c c" 之后
    "<SPC> f m" 就自动扩展成 "C-c c f m"
    johnnyb
        5
    johnnyb  
       2015-08-27 20:04:34 +08:00   ❤️ 1
    (define-prefix-command 'my-prefix )
    (global-set-key (kbd "C-c c") 'my-prefix )
    (global-set-key (kbd "C-c c m m") 'find-file ) ;; 换成你的 function
    (define-key evil-normal-state-map (kbd "SPC") ;; 只能绑定到 evil-normal
    (lookup-key (current-global-map ) (kbd "C-c c")))
    feiyongzhai
        6
    feiyongzhai  
       2021-03-31 19:21:56 +08:00
    虽然说现在回答已经为时已晚,不管能不能帮到楼主,我就写个回答给自己备忘吧。哈哈~
    (define-key key-translation-map (kbd "SPC") (kbd "C-c c"))
    其实这就是 vim 中的 map 的功能,将一个快捷键进行重映射
    参考链接: https://zhuanlan.zhihu.com/p/26068894
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2408 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 16:03 · PVG 00:03 · LAX 08:03 · JFK 11:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.