我试着安装el4r,这是一种EmacsRuby。
基本上,我把所有的东西都安装成了取消密码的这里
我的设置
我在rbenv中默认使用Ubuntu12.10提供的emacs 24,我的默认红宝石版本是ruby1.9.3p286 (2012-10-12版本37165) x86_64-linux。
在测试所有内容时,我有一个包含以下文本的极简.emacs文件
;; Source: http://marc-bowes.com/2012/03/10/rbenv-with-emacs.html
;; Setting rbenv path
(setenv "PATH" (concat (getenv "HOME") "/.rbenv/shims:"
(getenv "HOME") "/.rbenv/bin:"
(getenv "PATH")))
(setq exec-path (cons (concat (getenv "HOME") "/.rbenv/shims")
(cons (concat (getenv "HOME") "/.rbenv/bin")
exec-path)))
;; Beginning of the el4r block:
;; RCtool generated this block automatically. DO NOT MODIFY this block!
(add-to-list 'load-path "/home/mars/.rbenv/versions/1.9.3-p286/share/emacs/site-lisp")
(require 'el4r)
(el4r-boot)
;; End of the el4r block.
;; User-setting area is below this line.当我用--调试-init启动emacs时,我会得到以下错误:
Debugger entered--Lisp error: (el4r-ruby-error)
signal(el4r-ruby-error nil)
(condition-case err (eval (setq expr (read result))) (el4r-ruby-error (signal (quote el4r-ruby-error) nil)) (error (setq el4r-error-lisp-expression expr) (signal (car err) (cdr err))))
(let ((result (el4r-recv)) expr) (while (eq (length result) 0) (el4r-wait-expr) (setq result (el4r-recv))) (condition-case err (eval (setq expr (read result))) (el4r-ruby-error (signal (quote el4r-ruby-error) nil)) (error (setq el4r-error-lisp-expression expr) (signal (car err) (cdr err)))))
el4r-get()
(let ((result (el4r-get))) (el4r-leave-call) result)
el4r-ruby-eval("el4r_boot")
el4r-boot()
eval-buffer(#<buffer *load*> nil "/home/mars/.emacs" nil t) ; Reading at buffer position 567
load-with-code-conversion("/home/mars/.emacs" "/home/mars/.emacs" t t)
load("~/.emacs" t t)
#[0 "\205\262日志文件/tmp/el4r-mars.13757.log如下所示:
2012-11-09 18:00:58 +0100:Starting, waiting for expression.
2012-11-09 18:00:58 +0100:Error: cannot load such file -- test/unit/ui/console/testrunner (LoadError)
from /home/mars/.rbenv/versions/1.9.3-p286/bin/el4r-instance:846:in `instance_eval'
from /home/mars/.rbenv/versions/1.9.3-p286/bin/el4r-instance:491:in `require'
from /home/mars/.rbenv/versions/1.9.3-p286/bin/el4r-instance:889:in `el4r_install_test_unit_testrunner'
from /home/mars/.rbenv/versions/1.9.3-p286/bin/el4r-instance:882:in `el4r_install_unittest_stuff'
from /home/mars/.rbenv/versions/1.9.3-p286/bin/el4r-instance:877:in `el4r_install_builtin_functions'
from /home/mars/.rbenv/versions/1.9.3-p286/bin/el4r-instance:723:in `el4r_boot__noinit'
from /home/mars/.rbenv/versions/1.9.3-p286/bin/el4r-instance:735:in `el4r_boot'
from (eval):1:in `el4r_ruby_eval'
from /home/mars/.rbenv/versions/1.9.3-p286/bin/el4r-instance:846:in `instance_eval'
from /home/mars/.rbenv/versions/1.9.3-p286/bin/el4r-instance:846:in `el4r_ruby_eval'
from /home/mars/.rbenv/versions/1.9.3-p286/bin/el4r-instance:791:in `el4r_get'
from /home/mars/.rbenv/versions/1.9.3-p286/bin/el4r-instance:768:in `block in el4r_wait_expr'
from /home/mars/.rbenv/versions/1.9.3-p286/bin/el4r-instance:835:in `el4r_with_call'
from /home/mars/.rbenv/versions/1.9.3-p286/bin/el4r-instance:765:in `el4r_wait_expr'
from /home/mars/.rbenv/versions/1.9.3-p286/bin/el4r-instance:760:in `el4r_wait_expr_loop'
from /home/mars/.rbenv/versions/1.9.3-p286/bin/el4r-instance:1094:in `<main>'
2012-11-09 18:01:03 +0100:wrong number of arguments (1 for 0) (ArgumentError)
from /home/mars/.rbenv/versions/1.9.3-p286/bin/el4r-instance:1084:in `block in <main>'
from /home/mars/.rbenv/versions/1.9.3-p286/bin/el4r-instance:760:in `call'
from /home/mars/.rbenv/versions/1.9.3-p286/bin/el4r-instance:760:in `eof?'
from /home/mars/.rbenv/versions/1.9.3-p286/bin/el4r-instance:760:in `el4r_wait_expr_loop'
from /home/mars/.rbenv/versions/1.9.3-p286/bin/el4r-instance:1094:in `<main>'
2012-11-09 18:01:03 +0100:Exiting.我不明白这个问题,也不明白如何解决这个问题。下面是类似的问题,但它是针对西基的。尽管如此,我还是尝试了答案,但没有成功。
发布于 2012-11-09 17:59:15
我让它正常工作了。
塔斯基本上是对的。最初的el4r项目似乎已经死了,但是有一些新的叉子似乎可以工作。这非常令人困惑,因为文档非常奇怪。新项目安装例程使用旧脚本,但您不能完全遵循它们。
安装
以下是你必须遵循的步骤,才能让它发挥作用。
# Install http://rubygems.org/gems/trogdoro-el4r, but do not follow instructions on page
# Do not download the original el4r sources and files.
gem install trogdoro-el4r
# Go to the gem directory. For me it is:
cd /home/mars/.rbenv/versions/1.9.3-p286/lib/ruby/gems/1.9.1/gems/trogdoro-el4r-1.0.7
# Run the "original" setup commands
ruby setup.rb
cd bin
ruby -S el4r-rctool -p
ruby -S el4r-rctool -i
# Add `el4r_load "el4r-mode.rb"` to ~/.el4r/init.rb or execute this command
echo 'el4r_load "el4r-mode.rb"' >> ~/.el4r/init.rb
# Fix your .emacs.el or .emacs.d by adding the code from the newly generated ~/.emacs file
# Use the ruby you have installed the gem with. In my case rbenv ruby 1.9.3-p286
# You need to re-install el4r if you change your ruby version配置
对于rbenv,您必须从问题中添加代码片段:
;; Source: http://marc-bowes.com/2012/03/10/rbenv-with-emacs.html
;; Setting rbenv path
(setenv "PATH" (concat (getenv "HOME") "/.rbenv/shims:"
(getenv "HOME") "/.rbenv/bin:"
(getenv "PATH")))
(setq exec-path (cons (concat (getenv "HOME") "/.rbenv/shims")
(cons (concat (getenv "HOME") "/.rbenv/bin")
exec-path)))
;; Beginning of the el4r block:
;; RCtool generated this block automatically. DO NOT MODIFY this block!
(add-to-list 'load-path "/home/mars/.rbenv/versions/1.9.3-p286/share/emacs/site-lisp")
(require 'el4r)
(el4r-boot)
;; End of the el4r block.
;; User-setting area is below this line.测试,如果一切正常,
将以下行添加到~/el4r/init.rb文件中
defun(:stackoverflow_ruby_func) { |a|
insert_string("It works!: '#{a}'"); newline
}启动emacs和到您的划痕缓冲区。
插入(stackoverflow-ruby-func 42)并进行评估。您的缓冲区应该如下所示:
(stackoverflow-ruby-func 42)It works!: '42'有关更多信息,请参见doc/ and test/下的gem目录。
https://stackoverflow.com/questions/13312698
复制相似问题