2014-09-12 83 views
7

我想学习Common Lisp并通过emacs包管理器安装了emacs(24.3)和slime。如何在SLIME的REPL中获得常用lisp的语法高亮显示?

在粘液REPL语法高亮不起作用。另一方面,当我启动Lisp-Mode(同时在粘液REPL中)时,表达式的值不再被打印(当我键入时,说“Hello World”并敲回车,我得到一个新行,而不是。表达式的值

(如果我打开口齿不清文件语法高亮工程)

+1

究竟哪里语法高亮没有工作你在说什么? * .lisp缓冲区或REPL或两者兼而有之?您可能还想为您的问题添加常见的lisp标记以提高可视性。 – schaueho 2014-09-12 13:52:56

+0

我正在谈论REPL。 – user3691571 2014-09-13 19:18:07

+1

添加标签并编辑问题,希望现在更清楚。 – user3691571 2014-09-13 19:20:12

回答

3

这对我的作品 (http://compgroups.net/comp.emacs/tweaking-slime/95455):

(defvar slime-repl-font-lock-keywords lisp-font-lock-keywords-2) 
(defun slime-repl-font-lock-setup() 
    (setq font-lock-defaults 
     '(slime-repl-font-lock-keywords 
     ;; From lisp-mode.el 
     nil nil (("+-*/.<>=!?$%_&~^:@" . "w")) nil 
     (font-lock-syntactic-face-function 
     . lisp-font-lock-syntactic-face-function)))) 

(add-hook 'slime-repl-mode-hook 'slime-repl-font-lock-setup) 

(defadvice slime-repl-insert-prompt (after font-lock-face activate) 
    (let ((inhibit-read-only t)) 
    (add-text-properties 
    slime-repl-prompt-start-mark (point) 
    '(font-lock-face 
     slime-repl-prompt-face 
     rear-nonsticky 
     (slime-repl-prompt read-only font-lock-face intangible))))))