• R语言
  • Windows平台完美实现Xemacs+ESS

以前在Windows上配置过Emacs+ESS,但没有成功,最近一次偶然的机会,碰到下面这个页面,于是尝试配置一下Xemacs+ESS,居然很快就搞定了,拿过来给大家分享一下:

主要参考这个:http://socserv.mcmaster.ca/jfox/Books/Companion/ESS/

1.下载:

Xemacs: http://ftp.xemacs.org/xemacs/binaries/win32/InnoSetup/XEmacs_Setup_21.4.21.exe

ess: http://lib.stat.cmu.edu/general/ESS/ess-5.4.zip

ess的配置文件:http://socserv.mcmaster.ca/jfox/Books/Companion/ESS/init.el (这个直接保存就行了,文件名还是init.el)

2.安装

解压然后双击就行了:Xemacs

解压ess-5.4.zip 到path\to\your\XEmacs\site-packages目录下

然后把init.el文件拷贝到这个目录下C:\Documents and Settings\Administrator\.xemacs,注意,.xemacs是以“."起始的,如果没有可以通过DOS终端mkdir .xemacs来创建。

如果你的R的bin目录在path路径里,那么什么也不用做,直接启动xemacs试试。

是不是惊奇的发现已经可以使用了?!



另外,在安装Xemacs的时候,有一个步骤是选择所要安装的附加的扩展包,这个我建议,如果你的硬盘不是很小的话就全安装吧。毕竟才100M大。



使用之前在init.el文件中加入下面这句,告诉Xemacs加载的package的位置,如果你的Xemacs安装在d:/programfiles/目录下:
<br />
(add-to-list 'load-path "d:/programfiles/XEmacs/xemacs-packages/lisp")<br />




1.ECB的使用。

在init.el文件中加入下面这段:
<br />
(require 'ecb)    <br />
(require 'ecb-autoloads)<br />


重启Xemacs,等R也启动后,选中非R的Buffer文件,比如*scratch* Buffer,

M-x ecb-activate,就可以打开ECB了。将鼠标移动到最上面的区域(文件夹树状结构),点击一个文件夹,然后按ENTER,在其下面的框中就会出现这个文件夹下的所有文件(不包括子文件夹),然后点击文件名,按回车就打开文件了。

有一点需要说明的是,在ECB模式下,文件的自动换行模式失效,如果想用的话,可以使用C-x 5 b或者C-x 5 f在新的frame中打开文件,在新的frame中,自动换行模式是可以用的。



2.拼写检查:

首先安装Aspell,并把Aspell的可执行文件的路径添加近path路径中。

在init.el文件中添加下面这段:
<br />
;;Aspell<br />
(setq-default ispell-program-name "aspell")<br />
(setq-default ispell-local-dictionary "american")<br />
(global-set-key (kbd "") 'ispell-complete-word)<br />


重启Xemacs,然后打开一个待检查的文件,M-x ispell。后面的操作按照所提示的信息进行就可以了,或者按“?”看帮助。



3. 使Xemacs启动时不加载R

在init.el文件中找到:(start-R),把这一行注释掉就行了,也即前面加;;
;;(start-R)




还有一些使用时的技巧,欢迎跟帖讨论。



上传一张效果图(带ECB的):



[attachment=103]
虽然感觉UI比eclipse丑了点(我是界面党[s:11] ) ,但是看上去很不错~ [s:11]

Xemacs能不能当octave、gnuplot、scilab、maxima等软件的UI?
呵呵,这些软件都没用过。不过,Xemacs可以打开一个窗口执行shell命令,M-shell。
能不能研究一下用NTemacs这么和ESS 一起使用
NTemacs有什么特点吗?没有尝试过。
 这是NTemacs的界面  我装了ESS、cedet、ecb和color-theme.el



[attachment=104]
看上去不错啊,日期显示是中文的还是!Xemacs好像对中文支持的不是很好,捣鼓过一次,没成功,呵呵。而且加上颜色对眼睛也更好一些。
好像不行啊 我按照上边的方法安装了 但是不行
请把错误信息贴出来。哪一步出错了?你的机子有没有比较特殊的地方?
请教激活ecb的问题!

激活ecb时告知需要eieio和speedbar的支持。

在安转Xemacs时选择的是全部安装,eieio和speedbar就在Xemacs之中,具体地址为:D:\XEmacs\xemacs-packages之下lisp文件夹之下。

对emacs不熟,试了几次都不成功,不知道如何安装。

请赐教!

谢谢!
把这一句加到init.el文件中试试,作用是告诉xemacs运行时,加载package的路径。
(add-to-list 'load-path "D:/XEmacs/xemacs-packages/lisp")


注意,路径中用的是反斜杠。
谢谢回复!

还是没能解决问题!试了几次都没成功。

出现的问题如下,请帮助看一看能否解决。

重新启动Xemacs后提示:ecb requires  eieio [0.17,0.17.9]  and speedbar [0.14beta1, 0.15.9]  Download now? (yes or no)

如图1。  [attachment=110]

输入yes后又提示:Insert full path to wget: c: \windows\system32\

如图2。[upload=1]  

下一步无论是按回车键,还是修改路径都不成功,请明白的指教一下。
我安装的时候没有碰到这个问题呀,你再重新安装一次试试。

贴一下我的init.el,只是前几行,后面的还保持不变。
<br />
;;;------------------------------------------------------------*<br />
;;; sample init.el file for ess + XEmacs under MS Windows      *<br />
;;;        John Fox                                            *<br />
;;;        27 May 2008        Version 0.7.3                    *<br />
;;;------------------------------------------------------------*<br />
<br />
;; This file goes in the .xemacs subdirectory of your HOME directory<br />
;;   In Windows 9x, set the HOME environment variable, e.g., set HOME=c:\<br />
;;   In Windows NT, 2000, or XP, use location pointed to by HOMEDRIVE, HOMEPATH<br />
;;   or set the HOME environment variable<br />
<br />
;;;----------------------------------------------------------------------------------------------<br />
<br />
;; Add load path<br />
(add-to-list 'load-path (expand-file-name "~/.emacs.d"))<br />
(add-to-list 'load-path (expand-file-name "D:\programfiles\XEmacs\xemacs-packages\lisp\ispell"))<br />
(add-to-list 'load-path "d:/programfiles/XEmacs/xemacs-packages/lisp")<br />
<br />
(require 'ecb)    <br />
(require 'ecb-autoloads)<br />
<br />
;;TRAMP<br />
(require 'tramp)<br />
(setq tramp-default-method "plink")<br />
;;(setq tramp-default-method "ssh")<br />
<br />
;;Aspell<br />
(setq-default ispell-program-name "aspell")<br />
(setq-default ispell-local-dictionary "american")<br />
(global-set-key (kbd "") 'ispell-complete-word)<br />
<br />
;;silent the beep warn sound<br />
(setq bell-volume 0) <br />
(setq sound-alist nil) <br />
<br />
;; display day<br />
;;(setq display-time-day-and-date t)<br />
<br />
;; display time<br />
;;(display-time)<br />
<br />
;; display column number<br />
(column-number-mode t)<br />
<br />
(setq make-backup-files nil)<br />
(setq line-number-mode t)<br />
<br />
;;; --- AutoWrap<br />
(setq default-fill-column 80)          ;默认显示 80列就换行<br />
谢谢!

还是没有成功!探索中!~~~~~
在linux下,我一向喜欢vi胜过emacs。不过在windows下因为有其他更多更好用的编辑器可选(我现在用的notepad++),往往两者都很少用。



不过还是忍不住问一句,那个画出函数图形的窗口,是通过什么调用出来的?我在notepad++中尝试了Rscript、Rterm、R等命令,要么是将图形输出到了一个Rplots.pdf的文件,要么是干脆什么都不显示。
其实我也主要用notepad++  装了NpptoR以后  也不用其他设置

按F8就会把代码发送给R   启动的是Rgui  画图的窗口就出现了



[attachment=112]
20 天 后
问下,notepad++能够实现R命令的自动补全嘛?