我试图使用slime-connect函数来访问使用sbcl的远程服务器.我按照Marco Baringer的slime.mov电影中的所有步骤进行操作,但是在为slime创建ssh连接时我遇到了困难.这是在已经启动远程计算机上的swank服务器之后.我是这样做的:
ssh -L 4005:127.0.0.1:4005 user@server.com
我在本地SLIME上遇到了这个错误:
Lisp连接意外关闭:远程对等连接断开连接
...并在远程服务器上:
通道3:打开失败:连接失败:连接被拒绝
什么可能是错的?
我正在对SLIME进行小修改,这样我就可以从Lisp获取所有当前加载的符号,分析它们并使字体锁定为它们.
我设法完成了所有这些步骤,但是我遇到了一个小问题 - 当字体锁中的关键字列表发生更改时,缓冲区不会更新,除非您重新启动主要的lisp-mode.每次更新关键字时我都不想重新启动lisp-mode,因为我在lisp-mode上有几个挂钩,我想在第一次加载文件时运行它.
有没有其他方法来更新font-lock所以它会读取所有新关键字并相应地为缓冲区提供信息?关闭字体锁定和使用font-lock-fontify-buffer不起作用.
UPD:增加赏金 - 问题依然存在.我需要一种方法来重新加载font-lock关键字而无需重新加载主模式.
正如我在这里问的那样,我无法让它运行Aquamacs/slime/clojure,但我可以使用Auqamacs/clojure和'Mx conjure-mode',然后是Cc Cz(运行clojure)和Cc Ce(运行表达式).
我没有SLIME的经验,但我觉得Cc Cz和Cc Ce对于lisp/conjure REPL或调试来说已经足够了.
SLIME的功能不仅仅是这些功能?人们使用SLIME的原因是什么?
当我在dos/linux中键入错误并且它对我大喊大叫时,我可以按向上箭头然后修改我的行 - 也许它错过了' - '或者什么.我刚刚安装了lispbox,向上箭头将光标向上移动到REPL历史记录中.如何在我输入的最后一行输入当前行.
就像我打字一样
+ 3 2
Run Code Online (Sandbox Code Playgroud)
但显然我的意思是
(+ 3 2)
Run Code Online (Sandbox Code Playgroud)
如何让它说"+ 3 2"所以我可以按"Home","(","End",")"?
或者是否有一些更简单的Mx waaahFIXIT命令呢?
我有一个问题.我用橘子酱安装了clojure,slime,slime-repl和elein.现在我打开我的项目并打电话给elein-swank.我明白了:
Starting swank..
error in process filter: slime-presentation-init-keymaps: Symbol's function definition is void: slime-define-both-key-bindings
error in process filter: Symbol's function definition is void: slime-define-both-key-bindings
Run Code Online (Sandbox Code Playgroud)
如果我尝试clojure-jack-in,我会得到
Debugger entered--Lisp error: (error "Could not start swank server: That's not a task. Use \"lein help\" to list all tasks.
signal(error ("Could not start swank server: That's not a task. Use \"lein help\" to list all tasks.\n"))
error("Could not start swank server: %s" "That's not a task. Use \"lein help\" to list all tasks.\n")
clojure-jack-in-sentinel(#<process …Run Code Online (Sandbox Code Playgroud) 开始学习常见的lisp.安装在我的debian 5.03 clisp,emacs-23.1和slime中.
用.emacs写:
(setq inferior-lisp-program "/usr/bin/clisp") ; your Lisp system
(add-to-list 'load-path "/home/slime/") ; your SLIME directory
(require 'slime)
(slime-setup '(slime-scratch slime-editing-commands slime-repl))
(global-font-lock-mode t)
(show-paren-mode 1)
(add-hook 'lisp-mode-hook '(lambda ()
(local-set-key (kbd "RET") 'newline-and-indent)))
Run Code Online (Sandbox Code Playgroud)
然后在emacs中创建新的lisp文件:test.lisp写简单的lisp表达式:
(defun square(x)
(* x x))
Run Code Online (Sandbox Code Playgroud)
然后尝试编译此代码C-c C-k并在迷你缓冲区中查看:未连接
ps现在我尝试在emacs主菜单中单击eval defun:并在迷你缓冲区中看到:进程lisp不存在
怎么了?
谢谢.
我是一位经验丰富的C++/.NET/Java Windows/Web程序员,正在尝试学习(Common)Lisp.我正在阅读Practical Common Lisp并使用SLIME.
我很容易获得Lisp语言,但是我很难理解开发的机制.我的一个问题是处理Emacs.我没有经验,发现它一般令人困惑,很难找到/弄清楚命令.
具体问题:
(defun ...).直到我尝试使用它,我发现它无效.有没有办法尽快得到错误(即编译代码)?任何提示将非常感谢!
虽然我在任何地方都设置了UTF-8(在我的lein项目中,slime-lisp组自定义,Emacs缓冲区本身......),我在尝试运行代码时不断收到此错误(def beta "?"):
Coding system iso-latin-1-unix not suitable [...]
Run Code Online (Sandbox Code Playgroud)
例如,仅在Emacs中发生,而不是在lein repl从命令行运行时发生.
可能是什么原因造成的?我正在使用Ubuntu,如果这有任何区别.
我在emacs中使用js2-mode中的swank-js.我可以用它来完成的node.js内置的或第三方API,如fs.readFile,fs.writeFile,express.use,async.forEach等在JS2模式?如果是的话,最好的设置是什么?
任何帮助表示赞赏:)
我一直在玩保存运行Common Lisp映像以节省重启时间,使开发更有效率.但是,当我在Emacs/SLIME中运行以下命令时,我遇到了一些问题:
(sb-ext:save-lisp-and-die "rest-api-image" :purify t)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误.显然,它抱怨看到多个线程.据我所知,这些不是我以编程方式创建的线程.相反,这些是Lisp-和Emacs创建的.这里有解决方法吗?图像是否仍然可以保存?
Cannot save core with multiple threads running.
Interactive thread (of current session):
#<THREAD "main thread" RUNNING {1000550853}>
Other threads:
#<THREAD "Swank Sentinel" #1=waiting on:
#<WAITQUEUE {1004AB8003}>
{1004AB4753}>,
#<THREAD "control-thread" #1#
#<WAITQUEUE {1005BC54D3}>
{1004D87F03}>,
#<THREAD "reader-thread" RUNNING {1004D88063}>,
#<THREAD "swank-indentation-cache-thread" #1#
#<WAITQUEUE {1004D980E3}>
{1004D88183}>,
#<THREAD "auto-flush-thread" RUNNING {10022FFDA3}>,
#<THREAD "repl-thread" RUNNING {1002300003}>
[Condition of type SB-IMPL::SAVE-WITH-MULTIPLE-THREADS-ERROR]
See also:
SBCL Manual, Saving a Core Image [:node]
Run Code Online (Sandbox Code Playgroud)