楼主: bfdddp
3506 0

[学习分享] Ubuntu16.04,下安装设置emacs和ess,R统计软件心得 [推广有奖]

  • 0关注
  • 0粉丝

初中生

33%

还不是VIP/贵宾

-

威望
0
论坛币
8 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
217 点
帖子
12
精华
0
在线时间
13 小时
注册时间
2016-6-15
最后登录
2017-6-14

楼主
bfdddp 发表于 2017-3-26 13:12:47 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
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包,都没有完美解决此问题。希望高手指点一二。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:package require

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-31 05:40