emacs和ess,R统计软件:
sudo apt-get install emacs ess
系统会安装emacs和ess,同时安装R统计。ess可以让emacs中运行R,提供增加功能,是一个不错的组合。emacs自己可以auto-complete,自动完成输入的函数,增加录入指令速度,网上找了很多大神的设置折腾2天都没成功,主要是都是4-5年前的解决办法,新版不能用。我把百度搜索年限改为1年内,反复折腾对照失败n次这样终于找到解决方案。
首先安装成功后emacs和R已经合体,只要在emacs中 alt+x 输入R 回车,就能启动R,只是没有插件。现在安装最重要的auto-complete。
emacs在启动时会调用~/.emacs 设置文件,然后调用~/.emacs.d/init.el文件,为了插件可移植性,我删除了.emacs 文件用init.el 。init.el内容是:
;;emacs插件源
(require 'package)
(add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/") t)
(when (< emacs-major-version 24) (add-to-list 'package-archives '("gnu" . "http://elpa.gnu.org/packages/")))
(package-initialize)
;;自动完成
(add-to-list 'load-path "~/.emacs.d/elpa/auto-complete-20160827.649")
(require 'auto-complete-config)
(add-to-list 'ac-dictionary-directories "~/.emacs.d/elpa/auto-complete-20160827.649/dict")
(ac-config-default)
;;自动补全各种括弧
;; enable skeleton-pair insert globally
(setq skeleton-pair t)
;;(setq skeleton-pair-on-word t)
;; Uncomment if curly braces won't close in .R files
;; https://github.com/emacs-ess/ESS/issues/296#issuecomment-189614821[/url]
;;(define-key ess-mode-map (kbd "{") nil)
;;(define-key ess-mode-map (kbd "}") nil)
(global-set-key (kbd "(") 'skeleton-pair-insert-maybe)
(global-set-key (kbd "[") 'skeleton-pair-insert-maybe)
(global-set-key (kbd "{") 'skeleton-pair-insert-maybe)
(global-set-key (kbd "\"") 'skeleton-pair-insert-maybe)
(global-set-key (kbd "\'") 'skeleton-pair-insert-maybe)
(global-set-key (kbd "\`") 'skeleton-pair-insert-maybe)
;;(global-set-key (kbd "<") 'skeleton-pair-insert-maybe)
;;shift+enter不同颜色显示括弧
(require 'highlight-parentheses)
(define-globalized-minor-mode global-highlight-parentheses-mode
highlight-parentheses-mode
(lambda ()
(highlight-parentheses-mode t)))
(global-highlight-parentheses-mode t)
;;自动缩进啊
(global-set-key (kbd "RET") 'newline-and-indent)
emacs24版本已经支持自动下载安装插件,不用到处下载了,记录各种安装命令。插件安装分2步:
1 设置好更新源,像上面那个~/emacs.d/init.el中第一部分一样。
;; 上面的melpa是科学网,如果是普通用户网速极低,不易登录,可以用这个源来替代
;;emacs插件源
(require 'package) ;; You might already have this line
(add-to-list 'package-archives
'("popkit" . "http://elpa.popkit.org/packages/"))
(when (< emacs-major-version 24)
;; For important compatibility libraries like cl-lib
(add-to-list 'package-archives '("gnu" . "http://elpa.gnu.org/packages/")))
(package-initialize)
用上面这一部分替代原文中的那段即可。
重新启动emacs,
alt+x 输入指令 list-package; 系统会自动安装elp插件管理器,并列出可用的插件列表,找到auto-complete,左键点击, 在介绍里点击install,安装等一会就好。它的安装界面提示依赖2种插件,不用管系统自己装好。
插件装好后并没什么用你要启用它才行。 init.el中的:
;;自动完成
(add-to-list 'load-path "~/.emacs.d/elpa/auto-complete-20160827.649")
(require 'auto-complete-config)
(add-to-list 'ac-dictionary-directories "~/.emacs.d/elpa/auto-complete-20160827.649/dict")
(ac-config-default)
就是启用auto-complete ,注意auto-complete-20160827.649可能与插件目录 ~/.emasc.d/elpa/中的名字不一样。最好改过来,不改一般也行,系统会自动查找时间最新的文件夹使用,也就是你以后升级插件这的代码也可以不管,一般不会出错,但是建议改成一致,以便日后莫名其妙的出错。
重新启动emacs,alt+x 输入R启动,现在可以自动完成函数了!
后面的2段代码。
;;自动补全各种括弧
;; enable skeleton-pair insert globally
(setq skeleton-pair t)
;;(setq skeleton-pair-on-word t)
;; Uncomment if curly braces won't close in .R files
;; https://github.com/emacs-ess/ESS/issues/296#issuecomment-189614821
;;(define-key ess-mode-map (kbd "{") nil)
;;(define-key ess-mode-map (kbd "}") nil)
(global-set-key (kbd "(") 'skeleton-pair-insert-maybe)
(global-set-key (kbd "[") 'skeleton-pair-insert-maybe)
(global-set-key (kbd "{") 'skeleton-pair-insert-maybe)
(global-set-key (kbd "\"") 'skeleton-pair-insert-maybe)
(global-set-key (kbd "\'") 'skeleton-pair-insert-maybe)
(global-set-key (kbd "\`") 'skeleton-pair-insert-maybe)
;;(global-set-key (kbd "<") 'skeleton-pair-insert-maybe)
这个不需要插件 这些指令加入后就能生效。
highlight-parentheses 插件不同颜色显示你的指令和括弧,同样方法找到找到并安装它,下面代码可以启用它。
;;不同颜色显示括弧
(require 'highlight-parentheses)
(define-globalized-minor-mode global-highlight-parentheses-mode
highlight-parentheses-mode
(lambda ()
(highlight-parentheses-mode t)))
(global-highlight-parentheses-mode t)
;;自动缩进啊
(global-set-key (kbd "RET") 'newline-and-indent)
所以init.el内容:
;;emacs插件源
(require 'package)
(add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/") t)
(when (< emacs-major-version 24) (add-to-list 'package-archives '("gnu" . "http://elpa.gnu.org/packages/")))
(package-initialize)
;;自动完成
(add-to-list 'load-path "~/.emacs.d/elpa/auto-complete-20160827.649")
(require 'auto-complete-config)
(add-to-list 'ac-dictionary-directories "~/.emacs.d/elpa/auto-complete-20160827.649/dict")
(ac-config-default)
;;自动补全各种括弧
;; enable skeleton-pair insert globally
(setq skeleton-pair t)
;;(setq skeleton-pair-on-word t)
;; Uncomment if curly braces won't close in .R files
;; [url]https://github.com/emacs-ess/ESS/issues/296#issuecomment-189614821
;;(define-key ess-mode-map (kbd "{") nil)
;;(define-key ess-mode-map (kbd "}") nil)
(global-set-key (kbd "(") 'skeleton-pair-insert-maybe)
(global-set-key (kbd "[") 'skeleton-pair-insert-maybe)
(global-set-key (kbd "{") 'skeleton-pair-insert-maybe)
(global-set-key (kbd "\"") 'skeleton-pair-insert-maybe)
(global-set-key (kbd "\'") 'skeleton-pair-insert-maybe)
(global-set-key (kbd "\`") 'skeleton-pair-insert-maybe)
;;(global-set-key (kbd "<") 'skeleton-pair-insert-maybe)
;;shift+enter不同颜色显示括弧
(require 'highlight-parentheses)
(define-globalized-minor-mode global-highlight-parentheses-mode
highlight-parentheses-mode
(lambda ()
(highlight-parentheses-mode t)))
(global-highlight-parentheses-mode t)
;;自动缩进啊
(global-set-key (kbd "RET") 'newline-and-indent)
就能使用:自动完成,补齐括弧,高亮指令和括弧。
启动emacs后 alt + x, 输入R,选择R的工作目录就能启动R。
PS:2个bug :
第一,在emacs中 如果数据框中有中文,那么在终端显示时不能对齐。看起来十分不方便。最简单的方法时在 系统---通用辅助功能 里打开 大号文本 选项,完美对齐。通过设置其他字体和字体大小也能做到。但是这样最简单。
第二,edit()函数使用时需要 alt+x 输入 server-start 回车,才能使用,然而如果处理数据有中文他就会乱码。搜遍网上,升级最新R,安装showtext包,都没有完美解决此问题。希望高手指点一二。


雷达卡



京公网安备 11010802022788号







