我试图在 ubuntu 上玩泛音,但我无法在 Vim 中评估一些泛音的代码。
:Eval 适用于 clojure 代码;我在vim中试了一下(lein项目目录下的一个clj文件),ex: (+ 1 2 3) => :Eval => 出现在vim窗口底部=> 6,所以没问题。
但是,例如,我尝试过:
(demo(sin-osc)) => :Eval ;(:Require don't change nothing)
它返回:
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),这是日志;我有两个错误:
user=> (use 'overtone.live) --> Loading Overtone... --> Booting internal SuperCollider server... * ERROR: dlsym load err '/home/axxon/workspace/overtone/tutorial/native/linux/ x86_64/libscsynth.so: undefined symbol: load' 找到 10 个 LADSPA 插件 *错误: 打开目录失败 '/home/axxon/.local/share/SuperCollider/synthdefs' JackDriver: 客户端名称是 'SuperCollider' SC_AudioDriver: 采样率 = 44100 ,000000, 驱动程序块大小 = 1024 --> 正在连接到内部 SuperCollider 服务器... --> 已建立连接 JackDriver:最大输出延迟 23.2 毫秒
在这里,在这个窗口中我尝试了(演示(sin-osc))。有用; 我能听到。
- 很好,但现在我想用 Vim 编写脚本,所以我在 lein 项目目录(/overtone/tutorial)中创建了一个新文件(mytest.clj),我用 Vim 打开它(在另一个窗口中)
在这个空白文件中,我写了和我之前说的一样的东西,(demo(sin-osc)) 并尝试先评估,:Require,它返回了这个:
(clojure.core/require '用户:重新加载)
java.io.FileNotFoundException: Could not locate user__init.class or user.clj on classpath:
使用 Eval,它也不起作用。
感谢您的帮助,因为我真的很想使用泛音!
ps:我的 vim 包:
捆绑 'guns/vim-clojure-static'
捆绑 'tpope/vim-fireplace'
捆绑 'tpope/vim-classpath'
编辑:我忘记使用正确的命名空间,在 overtone 的 google 组中,我看到 mytest.clj 必须在项目的 src 目录中。我用 :Require 尝试了这段代码(我在开始 lein 的第一个窗口中停止了泛音):
(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)
,但它返回:
(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