首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >泛音和Vim (Repl似乎没有连接)

泛音和Vim (Repl似乎没有连接)
EN

Stack Overflow用户
提问于 2013-09-19 17:42:05
回答 2查看 1.4K关注 0票数 1

我试着在ubuntu上玩泛音,但我不能在Vim中验证一些泛音的代码。

:Eval适用于clojure代码;我在vim ( lein项目目录中的一个clj文件)中尝试过,ex:(+ 12 3) => :Eval =>出现在vim窗口=> 6的底部,所以没有问题。

但是,例如,我试过:

代码语言:javascript
复制
(demo(sin-osc)) => :Eval ;(:Require don't change nothing)

它返回:

代码语言:javascript
复制
java.lang.RuntimeException: Unable to resolve symbol: demo in this context, comp
iling:(NO_SOURCE_PATH:1:1)

所以我要做的是:

  • 杰克开始了
  • lein repl是在lein项目中启动的(deps可以)
  • 在有lein的第一个终端中,我启动了泛音(使用'overtone.live),这是日志;我有两个错误: 启动内部'/home/axxon/workspace/overtone/tutorial/native/linux/x86_64/libscsynth.so:服务器. *错误: dlsym load err user=>未定义符号: load‘查找10个LADSPA插件*错误:打开目录失败的overtone.live JackDriver:客户端名称为' SuperCollider’SC_AudioDriver:采样率=4410万,驱动程序块大小= 1024 ->连接到内部SuperCollider服务器.->建立JackDriver连接:最大输出延迟23,2ms
  • 在这里,在这个窗口中,我尝试了(演示(Sin))。它起作用了,我能听见。
  • 很好,但是现在我想用Vim编写脚本,所以我在lein项目目录(/overtone/教程)中创建了一个新文件(mytest.clj),我用Vim打开了它(在另一个窗口中)
  • 在这个空白文件中,我编写了与我之前说过的相同的东西(演示(sin-osc)),并尝试使用“第一步”(第一步,要求,它返回如下内容): (clojure.core/require 'user :reload) java.io.FileNotFoundException:无法在类路径上找到user__init.class或user.clj:
  • 对于Eval,它也不起作用。

谢谢你的帮助,因为我真的很想用泛音!

Ps:我的维姆包:

捆绑“枪支/vim-clojure-静态”

包‘tpope/vim-壁炉’

包‘tpope/vim-类路径’

编辑:我忘了使用正确的命名空间,在overtone的google组中,我看到mytest.clj必须位于项目的src目录中。我尝试了以下代码:Require (我在启动lein的第一个窗口中停止了泛音):

代码语言:javascript
复制
(ns tutorial.foo
  (:use [overtone.live]))
(definst saw-wave [freq 440 attack 0.01 sustain 0.4 release 0.1 vol 0.4]
      (* (env-gen (lin-env attack sustain release) 1 1 0 1 FREE) (saw freq) vol))
(saw-wave)

,但它回来了:

代码语言:javascript
复制
(clojure.core/require 'tutorial.foo :reload)
Erreur détectée en traitant function <SNR>17_Require..fireplace#session_eval..<S
NR>17_eval..7 :
ligne   38 :
E605: Exception non interceptée : Error running Clojure: *** ERROR: open directo
ry failed '/usr/java/packages/lib/amd64'^@*** ERROR: dlsym load err '/usr/lib/jn
i/libswt-gtk-3836.so: undefined symbol: load'^@*** ERROR: dlsym load err '/usr/l
ib/jni/libswt-glx-gtk-3836.so: undefined symbol: load'^@*** ERROR: dlsym load er
r '/usr/lib/jni/libswt-webkit-gtk-3836.so: undefined symbol: load'^@*** ERROR: d
lsym load err '/usr/lib/jni/libswt-atk-gtk-3836.so: undefined symbol: load'^@***
 ERROR: dlsym load err '/usr/lib/jni/libswt-pi-gtk-3836.so: undefined symbol: lo
ad'^@*** ERROR: dlsym load err '/usr/lib/jni/libswt-cairo-gtk-3836.so: undefined
 symbol: load'^@*** ERROR: dlsym load err '/usr/lib/jni/libswt-awt-gtk-3836.so: 
undefined symbol: load'^@*** ERROR: dlsym load err '/usr/lib/jni/libswt-gnome-gt
k-3836.so: undefined symbol: load'^@#^@# A fatal error has been detected by the 
Java Runtime Environment:^@#^@#  SIGSEGV (0xb) at pc=0x00007f5d261db671, pid=693
1, tid=140036632291072^@#^@# JRE version: 7.0_25-b30^@# Java VM: OpenJDK 64-Bi
EN

回答 2

Stack Overflow用户

发布于 2013-11-11 16:03:30

我也有同样的问题。原来,vim壁炉插件并没有连接到我的bash会话。我手动建立了连接,之后一切都很正常。

在lein会话的顶部,您应该看到有关repl会话在哪个端口上运行的详细信息。

nREPL server started on port 35182 on host 127.0.0.1

因此,您可以通过以下方法将vim-壁炉连接到该repl会话

:Connect nrepl://localhost:35182

即使没有连接到远程repl会话,仍然可以计算像(+ 1 2 3)这样的代码的原因是,vim-classpath将使其返回到生成一个新的clojure运行时实例来计算该代码。一旦壁炉- repl连接正常工作,您应该注意到,评估代码变得更快了,因为它不需要从零开始加载clojure。

票数 1
EN

Stack Overflow用户

发布于 2013-09-22 05:37:11

确保在vim中编辑的文件的命名空间声明中使用了overtone.live,并且REPL运行在一个单独的终端实例中。从vim中,保存文件(:w),并将光标移动到ns声明中。然后点击gf打开名称空间的文件。输入cpR或:要求!然后是cpp或:Eval您试图运行的函数。希望这对你有用!祝你好运。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18901518

复制
相关文章

相似问题

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