/emacs-common/在Windows上配置CapsLock使之对Emacs友好.org

https://github.com/lujun9972/emacs-document · Org · 44 lines · 35 code · 9 blank · 0 comment · 0 complexity · bddf41a8d55fff9bfcf9976ca3b7ea3b MD5 · raw file

  1. #+TITLE: 在Windows上配置CapsLock使之对Emacs友好
  2. #+URL: http://www.blogbyben.com/2016/08/an-emacs-friendly-caps-lock.html
  3. #+AUTHOR: lujun9972
  4. #+CATEGORY: emacs-common
  5. #+DATE: [2016-09-07 周三 14:34]
  6. #+OPTIONS: ^:{}
  7. 也许这种方法大家早就知道了, 我发现在我的Windows10电脑上将 =Caps Lock= 按键修改成对Emacs友好的 =Hyper= 键后,Emacs好用多了.
  8. 具体来说,我是怎么做的:
  9. 第一步. 使用[[http://www.blogbyben.com/2011/03/tool-of-day-autohotkey.html][AutoHotKey]] 来[[https://autohotkey.com/docs/misc/Remap.htm][映射]] =Caps Lock= 键为 =Windows Menu= 键(AutoHotKey将之称为AppsKey).
  10. #+BEGIN_SRC ahk
  11. ;; Add this to your standard AutoHotKey configuration
  12. CapsLock::AppsKey
  13. #+END_SRC
  14. 第二步. 使用[[http://ergoemacs.org/emacs/emacs_hyper_super_keys.html][下面这段elisp代码]] 来捕获传递给emacs的Menu键,并将之映射成 =Hyper modifier=:
  15. #+BEGIN_SRC emacs-lisp
  16. ;; http://ergoemacs.org/emacs/emacs_hyper_super_keys.html
  17. (setq w32-pass-apps-to-system nil)
  18. (setq w32-apps-modifier 'hyper) ; Menu/App key
  19. #+END_SRC
  20. 第三步. 完成了! 我现在可以设置带 =H- modifier= 的快捷键了. 例如下面这段代码摘自我的[[http://www.blogbyben.com/2016/08/emacs-php-modern-and-far-more-complete.html][PHP配置]]:
  21. #+BEGIN_SRC emacs-lisp
  22. (defun bs-php-mode-hook ()
  23. (local-set-key '[backtab] 'indent-relative)
  24. (local-set-key (kbd "<H-left>") 'beginning-of-defun)
  25. (local-set-key (kbd "<H-right>") 'end-of-defun)
  26. (auto-complete-mode t)
  27. (require 'ac-php)
  28. (setq ac-sources '(ac-source-php ))
  29. (yas-global-mode 1)
  30. (setq indent-tabs-mode nil)
  31. (setq php-template-compatibility nil)
  32. (setq c-basic-offset 2))
  33. #+END_SRC
  34. 这段配置让我打开PHP文件后,再按下 =Caps Lock= ,就可以通过左右按键在函数定义见跳转了.
  35. 这个键盘及快捷键的设定让我好像中了奖了一样,太爽了.