V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
isaaczeng
V2EX  ›  问与答

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

  •  
  •   isaaczeng · Aug 26, 2015 · 3763 views
    This topic created in 3908 days ago, the information mentioned may be changed or developed.

    我有几个 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 replies    2021-03-31 19:21:56 +08:00
    johnnyb
        1
    johnnyb  
       Aug 26, 2015
    你需要 evil + evil-leader 或者直接用 spacemacs
    isaaczeng
        2
    isaaczeng  
    OP
       Aug 27, 2015
    @johnnyb
    我用的就是 evil + evli-leader , 怎么设置?
    johnnyb
        3
    johnnyb  
       Aug 27, 2015
    (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
       Aug 27, 2015
    @johnnyb
    我有很多个 key binding
    我想通过简单的步骤就把前缀 alias 一下, 这样就不需要去设置
    "fm" "mm" ...
    我吧 <SPC> 映射成 "C-c c" 之后
    "<SPC> f m" 就自动扩展成 "C-c c f m"
    johnnyb
        5
    johnnyb  
       Aug 27, 2015   ❤️ 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  
       Mar 31, 2021
    虽然说现在回答已经为时已晚,不管能不能帮到楼主,我就写个回答给自己备忘吧。哈哈~
    (define-key key-translation-map (kbd "SPC") (kbd "C-c c"))
    其实这就是 vim 中的 map 的功能,将一个快捷键进行重映射
    参考链接: https://zhuanlan.zhihu.com/p/26068894
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3056 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 80ms · UTC 14:10 · PVG 22:10 · LAX 07:10 · JFK 10:10
    ♥ Do have faith in what you're doing.