首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >slime emacs中的键绑定

slime emacs中的键绑定
EN

Stack Overflow用户
提问于 2016-06-30 18:29:25
回答 2查看 582关注 0票数 1

我想在slime-mode和slime-repl中将键绑定M-x slime-fuzzy-complete-symbol更改为M-TAB。我查阅了常用的lisp手册,并尝试了以下句子:

代码语言:javascript
复制
(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)

它们都没有用处。第三句话甚至有一个错误:Symbol变量的值是void: slime-repl-mode-map

作为参考,下面是与粘液相关的init.el:

代码语言:javascript
复制
(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)
EN

回答 2

Stack Overflow用户

发布于 2018-07-27 13:04:16

我知道这是一个古老的问题,但几周前我一直在寻找类似问题的答案,我希望更多的信息可能对某些人有用……这是我发现的:

在你的.emacs (点-emacs)文件中使用

  • using (eval-after-load 'slime)并不是一个好主意,除非你已经有了(eval-after-load "...") --这是可以的--如果没有它,(eval-after-load "...")可能会等到加载全局键绑定的时间结束之前的答案是OK如果全局键绑定适合你
  • 如果你需要或者更喜欢本地绑定,你可以定义自己的函数并在本地绑定它,例如:

(defun my-slime mode-keybindings ()“,用于‘slime mode-hook’和‘slime-repl-mode-hook’。”(local-set-key (kbd "")‘slime symbol) (local-set-key (kbd "") 'slime-apropos-all) (local-set-key (kbd "C-c C-p") nil);当需要移除一个key/sequence (local-set-key (kbd "C-") 'ace-window) (local-set-key (kbd "M-")’slime complete-symbol) ;;your case :) ) ;;end of defun my-slime-mode-keybindings() ;;告诉emacs仅在必需的模式下使用您的函数(add-hook 'slime-mode-hook #'my-slime-mode-keybindings) (add- #'my-slime-mode-keybindings)‘slime repl-mode-hook emacs

诚挚的问候

票数 1
EN

Stack Overflow用户

发布于 2016-07-03 16:13:16

对于这种情况,最好遵循emacs文档:

Key binding commands

在您使用全局键绑定的情况下,应该可以:

代码语言:javascript
复制
(global-set-key (kbd "M-TAB") 'slime-fuzzy-complete-symbol)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38120498

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档