[英]key binding in slime emacs
我想在slime-mode和slime-repl中将密钥绑定Mx slime-fuzzy-complete-symbol更改为M-TAB。 我查阅了常见的lisp手册,并尝试了以下句子:
(eval-after-load 'slime
`(define-key slime-prefix-map (kbd "M-TAB") 'slime-fuzzy-complete-symbol))
(add-hook 'slime-load-hook
#'(lambda ()
(define-key slime-prefix-map (kbd "M-TAB") 'slime-fuzzy-complete-symbol)))
(define-key slime-repl-mode-map (kbd "M-TAB")
'slime-fuzzy-complete-symbol)
它们都没有用。 第三句甚至有一个错误:符号的变量值为void:slime-repl-mode-map
作为参考,以下是我的init.el与粘液有关:
(let ((default-directory "/usr/local/share/emacs/site-lisp/"))
(normal-top-level-add-subdirs-to-load-path))
;; Setup load-path, autoloads and your lisp system
;; Not needed if you install SLIME via MELPA
(add-to-list 'load-path "~/default-directory/slime")
(require 'slime-autoloads)
(setq inferior-lisp-program "/usr/local/opt/clozure-cl/bin/ccl64")
;; Setup slime-repl
(setq slime-contribs '(slime-scratch slime-editing-commands))
;;(setq slime-contribs '(slime-repl)) ; repl only
(setq slime-contribs '(slime-fancy)) ; almost everything
;;Setup suto-complete
(add-to-list 'load-path "~/default-directory/auto-complete/")
(require 'auto-complete-config)
;;(add-to-list 'ac-dictionary-directories "~/default-directory/auto-complete/ac-dict")
(ac-config-default)
对于这种情况,最好遵循emacs文档:
在你的情况下,使用全局键绑定应该工作:
(global-set-key (kbd "M-TAB") 'slime-fuzzy-complete-symbol)
我知道这是一个老问题,但几周前我一直在寻找类似的答案,我希望其他信息对某些人有用......这就是我发现的:
在你的.emacs
(dot-emacs)文件中using (eval-after-load 'slime)
load'smime)不是一个好主意,直到你有(autoload 'slime)
- 这没关系 - 没有它(eval-after-load "...")
可能要等到装载slime
的时间结束
如果全局密钥绑定适合您,则上一个答案是可以的
如果您需要或优先使用本地绑定,您可以定义自己的函数并在本地绑定它,例如:
(defun my-slime-mode-keybindings () "For use in `slime-mode-hook' and 'slime-repl-mode-hook." (local-set-key (kbd "<C-f1>") 'slime-describe-symbol) (local-set-key (kbd "<M-f1>") 'slime-apropos-all) (local-set-key (kbd "Cc Cp") nil) ;; when you want to remove a key/sequence (local-set-key (kbd "C-<tab>") 'ace-window) (local-set-key (kbd "M-<tab>") 'slime-fuzzy-complete-symbol) ;; your case :) ) ;; end of defun my-slime-mode-keybindings() ;; tell emacs to use your function only in required mode(s) (add-hook 'slime-mode-hook #'my-slime-mode-keybindings) (add-hook 'slime-repl-mode-hook #'my-slime-mode-keybindings)
最好的祝福
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.