Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从Windows上的Emacs中评估javascript缓冲区(通过node.js)_Javascript_Node.js_Emacs - Fatal编程技术网

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

如何从Windows上的Emacs中评估javascript缓冲区(通过node.js),javascript,node.js,emacs,Javascript,Node.js,Emacs,我正在看Jim Weirich的一篇关于Y combinator在Emacs中使用JavaScript的演讲,在 (我认为,这次演示与他在RubyConf 2012上使用Ruby而不是javascript所做的演示非常相似。) 有一件事我注意到,他通过“C-cv”快捷方式从Emacs内部(通过node.JS,如一些错误MSG所示)评估缓冲区中的JS,并将输出返回到另一个缓冲区 我想知道(在深入了解漫画/通话过程细节之前)是否有一个简单的说明,说明如何在windows上的最新Emacs上进行设置。

我正在看Jim Weirich的一篇关于Y combinator在Emacs中使用JavaScript的演讲,在

(我认为,这次演示与他在RubyConf 2012上使用Ruby而不是javascript所做的演示非常相似。)

有一件事我注意到,他通过“C-cv”快捷方式从Emacs内部(通过node.JS,如一些错误MSG所示)评估缓冲区中的JS,并将输出返回到另一个缓冲区

我想知道(在深入了解漫画/通话过程细节之前)是否有一个简单的说明,说明如何在windows上的最新Emacs上进行设置。…我搜索了一下,但到目前为止没有成功。顺便说一句,我已经安装了node.exe,并且可以通过“M-x run js”在Emacs中以REPL的形式交互运行node,这是按照“setting-up-Emacs-as-a-javascript-editing-environment-for-fun-and-profice”一文中的说明进行的(抱歉,不能发布超过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 "C-c v") 'node-js-eval-region-or-buffer)
我还有一件事要挖掘:如何自动分割屏幕以显示输出缓冲区?我想这应该不会太难

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

安装js3模式

然后:


我不知道有什么好方法可以在Windows下将Node.js与Emacs一起使用。在没有Cygwin的Windows中使用Emacs是一种非常不愉快的体验,但是Node.js在Cygwin下不起作用,所以你必须选择哪一方。我不是在使用Cygwin,而是使用Git Windows版本,它带有一个shell和一系列实用程序。今天我看一下elisp手册,特别是“37个进程”,我现在有了一些进展…从技术上来说,
js模式
有一个功能
js发送缓冲区和go
,我想这就是你想要的,它会将代码发送到
运行js
启动的进程。它通常绑定到
C-C-b
。我之前提到过这些问题,因为在Cygwin上无法让Node.js以这种方式运行。我在“js模式”(Win7)中尝试了“js发送缓冲区并执行”,它只是开箱即用(尽管在我的设置中没有启用密钥映射)!我认为这将是一个好主意,让我看看“js发送缓冲区和去”的实现,以了解更多的东西…再次感谢!
(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 "\C-x\C-e" 
                       'js-send-last-sexp)
                (local-set-key "\C-\M-x" 
                       'js-send-last-sexp-and-go)
                (local-set-key "\C-cb" 
                       'js-send-buffer)
                (local-set-key "\C-c\C-b" 
                       'js-send-buffer-and-go)
                (local-set-key "\C-cl" 
                       'js-load-file-and-go)
                ))