Mac中利用R、emacs、ess搭建R运行环境

一、安装软件

1、 首先在R官网,下载最新版本的R软件,注意选择相对应的系统版本(mac、linux、windows),安装过程一路next。 2、 在emacsformac官网中下载emacs。安装过程一路next。

二、配置R软件

R启动时会调用R_HOME/etc/Renviron中的配置信息来配置R运行环境,R_HOME在R终端使用Sys.getenv("R_HOME")命令可以得到。一般我们不直接修改Renviron,为了便于以后升级,我们在用户的家目录下新建.Rprofile文件,将我们自定义的启动环境放在里面。我的.Rprofile很简单,就以下几条命令

  • 设置包的安装路径,以后R升级,不用重新一一安装所有包,使用update.packages()就能更新包了。注意“~/.R/lib”这个文件夹一定要是存在的,不存在要新建一个。 .libPaths("~/.R/lib")
  • 设置包下载链接的站点,不用每次都去选择,这两个是国内较快的。
            
    options(repos = c(CRAN = "http://mirrors.ustc.edu.cn/CRAN/",       
                      CRAN2 = "http://ftp.ctex.org/mirrors/CRAN/"))        
  • 自动加载常用包,这里是ggpolt2包。
           
    if (interactive()) {        
    suppressMessages(require(ggpolt2))       
    options(warn = 1)      
    }       

三、配置emacs软件

在家目录“~/”下找到.emacs文件和.emacs.d文件夹,没有就新建。再在.emacs.d中新建plugins文件夹,放手工下载安装的插件。以下就是我的.emacs的内容。
* 设置用户细节

            
    (setq user-full-name "zysw")             
    (setq user-mail-address "zysw01@gmail.com")                
  • 设置环境
        
    (setenv "PATH" (concat "/usr/local/bin:" (getenv "PATH")))      
    (require 'cl)       
  • 设置包管理工具
           
    (load "package")             
    (package-initialize)    
    (add-to-list 'package-archives       
                '("marmalade" . "http://marmalade-repo.org/packages/"))       
        (add-to-list 'package-archives         
                '("melpa" . "http://melpa.milkbox.net/packages/") t)       
        (setq package-archive-enable-alist '(("melpa" deft magit)))        
  • 设置默认包列表
          
    (defvar zysw/packages '(ac-slime     
                          auto-complete     
                          smartparens    
                          magit     
                          markdown-mode       
                          org       
                          puppet-mode      
                          smex         
                          yaml-mode       
              ess);;注意,ess是能够自动安装。      
        "Default packages")         
  • emacs启动时检测默认包是否安装,未安装则使用elpa安装
        
    (defun zysw/packages-installed-p ()          
        (loop for pkg in zysw/packages       
            when (not (package-installed-p pkg)) do (return nil)        
            finally (return t)))            

    (unless (zysw/packages-installed-p)      
            (message "%s" "Refreshing package database...")        
                   (package-refresh-contents)        
        (dolist (pkg zysw/packages)       
           (when (not (package-installed-p pkg))       
             (package-install pkg))))          

       设置启动操作

  • 去掉启动画面(Splash Screen)
        
    (setq inhibit-splash-screen t        
        initial-scratch-message nil)       
  • 去掉工具栏、滚动条
           
    (scroll-bar-mode -1)     
    (tool-bar-mode -1)       
    (menu-bar-mode 1)       
  • 设置显示括号的样式
        
    (setq show-paren-style 'mixed)    
  • 光标与鼠标重合时,移开鼠标
       
    (mouse-avoidance-mode 'animate)    
  • 设置其他的插件位置,这里设置在.emacs.d中新建的plugins文件夹中。
    
    (defvar zysw/plugins  (expand-file-name "plugins" "~/.emacs.d/"))   
    (add-to-list 'load-path  zysw/plugins)   
    (dolist (project (directory-files   zysw/plugins t "\\w+"))     
        (when (file-directory-p project)    
        (add-to-list 'load-path project)))   
  • 加载主题,Amelie-theme.el要下载放入plugins文件夹中。
    
    (add-to-list 'custom-theme-load-path zysw/plugins)      
    (load-theme 'Amelie t)       
  • 显示列号
      
    (column-number-mode 1)    
  • 启动 Emacs 服务,下次打开文件时使用同一个 Emacs
    
    (server-start)      
  • 设置自动补全
       
    (require 'smartparens-config)    
    (smartparens-global-mode t)      
    (show-smartparens-global-mode t)      
    (add-hook 'ess-R-post-run-hook 'smartparens-mode) ;;R专用   
  • 设置自动匹配
    
    (require `auto-complete-config)   
    (ac-config-default)   
  • 配置Smex,Smex非常必要,他可以提供历史和搜索当你M-X时。
   
    (require 'smex) ; Not needed if you use package.el   
    (smex-initialize) ; Can be omitted. This might cause a (minimal) delay   
    (global-set-key (kbd "M-x") 'smex)   
    (global-set-key (kbd "M-X") 'smex-major-mode-commands)    
  • 设置ido
    
    (ido-mode t)    
    (setq ido-enable-flex-matching t   
        ido-use-virtual-buffers t)    

                   ESS配置

  • 加载ESS
   
    (require 'ess-site)   
    (org-babel-do-load-languages  
    'org-babel-load-languages    
        '((R . t)))    
  • ESS的代码缩进设置
    
    (add-hook 'ess-mode-hook    
        (lambda ()    
            (ess-set-style 'C++ 'quiet)    
            (setq comment-column 4) ; 把以#开始的行缩进4空格,免得难看    
            (show-paren-mode t)     ; 自动加亮跟踪括号    
            ess-indent-level 2    
            ess-continued-statement-offset 2    
            ess-brace-offset 0    
            ess-arg-function-offset 4    
            ess-expression-offset 2   
            ess-else-offset 0   
            ess-close-brace-offset 0   
        ))   
  • 运算符书写规范,smart-operator要先下载,放入plugins文件夹中。
   
    (require 'smart-operator)    
        (add-hook 'ess-mode-hook 'smart-operator-mode)   
            (add-hook 'inferior-ess-mode-hook 'smart-operator-mode)   

本记录是从网上众多的朋友分享的点滴中,选择我需要的汇集而成,在此,我谢谢这些朋友。

根据需要,还会继续添加。有需要的朋友。可以自由copy。

作者:zysw

时间:2013.9.16


下一篇: Mac系统AppStore不能更新之解决方案 →

blog comments powered by Disqus

Copyright © zysw01 | Themed from Mceiba | Deployed on Jekyll Bootstrap,Twitter Bootstrap,Github,Jekyll