如何在Windows上从Emacs中评估javascript缓冲区(通过node.js)

我正在观看Jim Weirich在Emacs中使用JavaScript的有关Y combinator的演示, http://v.youku.com/v_show/id_XNDQ4NDY0NjM2.html

(这个演示与我在RubyConf 2012上使用Ruby代替javascript所提供的内容非常相似.. http://confreaks.com/videos/1287-rubyconf2012-y-not-adventures-in-functional-programming )

有一件事我注意到他正在通过“Cc v”快捷方式从Emacs(通过node.js,如一些显示的错误信息)对缓冲区中的JS进行评估,并将输出返回到另一个缓冲区。

我想知道是否有一个简单的指令(在深入comint /调用过程的细节之前)如何获得最新的Emacs在Windows上的设置 …我search,但迄今没有成功。 顺便说一句,我alreay得到node.exe安装,并可以交互式地运行在Emacs的REPL作为“Mx的运行js”,按照文章“设置 – emacs-as-a-javascript-editing-环境为乐趣和盈利“(抱歉不能发布超过2个链接…)

谢谢,

/熊先生

我定义了下面的函数和它的关键映射。 到目前为止它的工作。

 (defun node-js-eval-region-or-buffer () "Evaluate the current buffer (or region if mark-active), and return the result into another buffer, which is to be shown in a window." (interactive) (let ((debug-on-error t) (start 1) (end 1)) (cond (mark-active (setq start (point)) (setq end (mark))) (t (setq start (point-min)) (setq end (point-max)))) (call-process-region start end ; seems the order does not matter "node" ; node.js nil ; don't delete region "node.js" ; output buffer nil) ; no redisply during output (message "Region or buffer evaluated!") (setq deactivate-mark t))) ; deactive the region, regardless (define-key global-map (kbd "Cc v") 'node-js-eval-region-or-buffer) 

我还有一件事要挖掘一下:如何自动分割屏幕来显示输出缓冲区? 我猜这应该不是太难

顺便说一句,我安装Git和Node.js for Windows,并将“node.exe”复制到Git的“/ bin”目录(在安装过程中已添加到PATH环境中)。

安装js3模式

然后:

 (require 'js-comint) (setq inferior-js-program-command "node --interactive") (setenv "NODE_NO_READLINE" "1") ;; Use your favorited js mode here: (add-hook 'js3-mode-hook '(lambda () (local-set-key "\Cx\Ce" 'js-send-last-sexp) (local-set-key "\C-\Mx" 'js-send-last-sexp-and-go) (local-set-key "\C-cb" 'js-send-buffer) (local-set-key "\Cc\Cb" 'js-send-buffer-and-go) (local-set-key "\C-cl" 'js-load-file-and-go) ))