Emacs 的快捷键和 Vim 的快捷键是编辑器中的两坐高山,其中 Emacs 的快捷键主要有四类。
(global-set-key (kdb "a") 'command)
(define-key key-translation-map (kbd "a") (kdb "b"))
(local-set-key (kdb "a") 'command)
(define-key your-minor-mode-map (kbd "a") 'command)
(global/local-unset-key (kbd "a"))
(global/local-set-key (kbd "a") 'ignore/nil)
最方便的解决方案是找一个空置的 prefix 键,先映射到这个键上,再全局或者局部设置它。
(define-key key-translation-map (kbd "a") (kbd "M-g A"))
(global/local-set-key (kbd "M-g A") 'command)
key-translation-map
: 最高级,就是把这个键的意义改变了,想使用原来的快捷键,要重新进行绑定
minor-mode-map
: 二级,只在 minor mode 激活时启作用,其它时候会被其它的快捷键覆盖掉
local-set-key
: 三级,在 major mode 中启作用
global-set-key
: 最弱的级别,但是也是最简单的键绑定方式
(defun f-python-mode ()
(local-set-key (kbd "C-x C-e")'f-python-shell-send-line)
(local-set-key (kbd "M-g C-y") 'f-python-shell-send-line))
(add-hook 'python-mode-hook 'f-python-mode)
注意 当键进行重新绑定后,还应该将之前的功能重新绑定到另一个键上。
(define-minor-mode visual-mode
:init-value nil
:global t
:keymap (make-sparse-keymap)
(if (not visual-mode) (setq cursor-type 'bar)
(setq cursor-type 'box)))
(define-key visual-mode-map (kbd "h") 'mark-paragraph)
定义之后,可以利用 define-key
来设置当前快捷键。然后在需要启用 Visual mode 的时候可以启用这个 minor mode 的相关快捷键。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有