I am following the inspiring example here to setup Vim
for R
development. One difference is that I am running Vim and R on a remote server via ssh
session. And this ssh
starts byobu
, which has tmux
started automatically whenever I login. What I want is to make an Vim-R-Dev
command/alias so that:
After logging in with the ssh
and tmux
is already running, I can type Vim-R-Dev
to open up a window with panes look like in the attached image:
Illustration of sending R code from several vim viewports (in middle) to an R session (on top right). The vim session can run on a local computer, while the R session can run on the same or a remote system. The snapshot also illustrates the omni completion utility of the vim-r-plugin (purple box), viewing of an R function help document in a separate tmux pane (bottom right) and the NERDTree file browser (left).
After a while of fumbling with Vim and R, I decided to quit this approach. My feeling was that the combination is not mature enough for production. So I tried to find and found EMACS + ESS. Yes, emacs is the rival to Vim as a programmer/geek editor. And it seems I am a traitor of Vim jump to Emacs when the two are at war :-) It doesn't have to be that way.
At first I installed emacs and ess plugin/package and tried to learn the basics. I was very happy about how ESS is much more mature than vimR. And the way emacs works with packages and configuration make me much more happy than when I used Vim. This is partly because I have some basic background and was willing to deal with ELISP, the LISP programming language variant that is made for Emacs. An advice for some one have Vim skills though: You'd better off install Evil
package from the beginning so you have the power of quick editing in Vim but the whole pack of other wonderful things, i.e. robustness, fine customization, in-place documentation. I have discussed many things about Emacs and ESS here on stackoverflow.com and at emacs.stackexchange.com too. The essential setup for R programmer is:
Emacs, ESS, Evil, Helm*, auto-complete, auctex, polymode, r-autoyas
. Following are full list of additional packages that I installed. The one that allows me to edit and run code on remote server is called tramp
with X forwarding. I will post more on this if there are requests.
ac-ispell 0.7 installed ispell completion source for auto-complete
async 1.3 installed Asynchronous processing in Emacs
auctex 11.88.6 installed Integrated environment for *TeX*
auto-complete 1.5.0 installed Auto Completion for GNU Emacs
auto-complete-e... 0.0.7 installed Exuberant ctags auto-complete.el source
auto-complete-pcmp 0.0.2 installed Provide auto-complete sources using pcomplete results
auto-dictionary 1.1 installed automatic dictionary switcher for flyspell
auto-package-up... 1.4 installed Automatically update Emacs packages.
auto-yasnippet 0.3.0 installed Quickly create disposable yasnippets
bash-completion 2.0.0 installed BASH completion for the shell buffer
bind-key 20140601 installed A simple way to manage personal keybindings
bog 1.0.0 installed Extensions for research notes in Org mode
bongo 1.0 installed play music with Emacs
boon 0.1 installed Ergonomic Command Mode for Emacs.
bug-hunter 0.5 installed Hunt down errors in elisp files
calfw 1.4 installed Calendar view framework on Emacs
column-enforce-... 20140902.949 installed Highlight text that extends beyond a column
column-marker 20121128.843 installed Highlight certain character columns
company 0.8.12 installed Modular text completion framework
ctable 20140304.1659 installed Table component for Emacs Lisp
ctags 1.1.1 installed No description available.
ctags-update 0.2.0 installed (auto) update TAGS in parent directory using exuberant-ctags
cython-mode 0.23.2.2 installed Major mode for editing Cython files
d-mode 2.0.6 installed D Programming Language mode for (X)Emacs
dash 2.11.0 installed A modern list library for Emacs
diminish 0.44 installed Diminished modes are minor modes with no modeline display
discover 0.3 installed discover more of Emacs
el-autoyas 0.5 installed Automatically create Emacs-Lisp Yasnippets
elpy 1.8.1 installed Emacs Python Development Environment
epl 71.4.8098 installed Emacs Package Library
ess 20150810.826 installed Emacs Speaks Statistics
ess-R-data-view 20130509.458 installed Data viewer for GNU R
ess-R-object-popup 20130302.336 installed popup description of R object
ess-smart-equals 20150201.2201 installed better smart-assignment with =-key in R and S
ess-smart-under... 20131229.1851 installed Ess Smart Underscore
evil 20150810.426 installed Extensible Vi layer for Emacs.
evil-leader 20140606.543 installed let there be <leader>
evil-org 20150513.1610 installed evil keybindings for org-mode
expand-region 20150804.2210 installed Increase selected region by semantic units.
f 20150605.927 installed Modern API for working with files and directories
find-file-in-pr... 20150722.2347 installed Find files in a project quickly.
flx 20140921.739 installed fuzzy matching with good sorting
flx-ido 20140821.2033 installed flx integration for ido
ggtags 20150718.2227 installed emacs frontend to GNU Global source code tagging system
gh 20150126.1125 installed A GitHub library for Emacs
git 20140128.241 installed An Elisp API for programmatically using Git
git-auto-commit... 20150404.751 installed Emacs Minor mode to automatically commit and push
git-commit 20150805.2024 installed Edit Git commit messages
git-commit-mode 1.0.0 installed Major mode for editing git commit messages
git-messenger 20150314.602 installed Pop up last commit information of current line
goto-chg 20131228.1459 installed goto last change
helm 20150805.54 installed Helm is an Emacs incremental and narrowing framework
helm-ack 20141030.526 installed Ack command with helm interface
helm-core 20150805.206 installed Development files for Helm
helm-github-stars 20150625.1523 installed Helm integration for your starred repositories on github
helm-mode-manager 20140224.1504 installed Select and toggle major and minor modes with helm
highlight-inden... 20150307.208 installed Minor modes for highlighting indentation
hippie-expand-s... 20130907.132 installed Hook slime's completion into hippie-expand
imenu-list 20150804.705 installed Show imenu entries in a seperate buffer
key-chord 20150808.1705 installed map pairs of simultaneously pressed keys to commands
latex-extra 20150806.1521 installed Adds several useful functionalities to LaTeX-mode.
latex-pretty-sy... 20150409.240 installed Display many latex symbols as their unicode counterparts
latex-preview-pane 20150519.1244 installed Makes LaTeX editing less painful by providing a updatable preview pane
let-alist 1.0.4 installed Easily let-bind values of an assoc-list by their names
log4e 20150105.505 installed provide logging framework for elisp
logito 20120225.1255 installed logging library for Emacs
magit 20150807.401 installed A Git porcelain inside Emacs
magit-gh-pulls 20150723.1144 installed GitHub pull requests extension for Magit
magit-popup 20150730.1344 installed Define prefix-infix-suffix command combos
makey 20131231.630 installed interactive commandline mode
markdown-mode 20150727.855 installed Emacs Major mode for Markdown-formatted text files
markdown-toc 20150715.914 installed A simple TOC generator for markdown file
monokai-theme 20150521.2257 installed A fruity color theme for Emacs.
org-ac 20140302.413 installed Some auto-complete sources for org-mode
org-autolist 20150118.1837 installed Improved list management in org-mode
pcache 20150125.1653 installed persistent caching for Emacs
php-auto-yasnip... 20141128.1411 installed Creates snippets for PHP functions
php-mode 20150729.213 installed Major mode for editing PHP code
pkg-info 20150517.443 installed Information about packages
polymode 20150729.734 installed Versatile multiple modes with extensive literate programming support
popup 20150626.711 installed Visual Popup User Interface
popup-complete 20141108.1908 installed completion with popup
popwin 20150315.600 installed Popup Window Manager.
powerline 20150628.1957 installed Rewrite of Powerline
powerline-evil 20140517.1 installed Utilities for better Evil support for Powerline
projectile 20150807.620 installed Manage and navigate projects in Emacs easily
pyvenv 20150503.941 installed Python virtual environment interface
r-autoyas 20140101.710 installed Provides automatically created yasnippets for R function argument lists.
real-auto-save 20150701.815 installed Automatically save your all your buffers/files at regular intervals.
rtags 20150804.2337 installed No description available.
s 20140910.334 installed The long lost Emacs string manipulation library.
scala-mode2 20150617.2350 installed Major mode for editing Scala >= 2.9
scala-outline-p... 20150702.937 installed scala file summary popup
seq 20150709.1040 installed Sequence manipulation functions
session 20120510.1700 installed use variables, registers and buffer places across sessions
skeletor 20150228.1557 installed Provides project skeletons for Emacs
sx 20150718.625 installed StackExchange client. Ask and answer questions on Stack Overflow, Super User, and the likes
twilight-anti-b... 20140810.34 installed A soothing Emacs 24 light-on-dark theme
undo-tree 20140509.522 installed Treat undo history as a tree
use-package 20150731.2330 installed A use-package declaration for simplifying your .emacs
which-key 20150803.1211 installed Display available keybindings in popup
window-purpose 20150715.439 installed Purpose-based window management for Emacs
with-editor 20150710.252 installed Use the Emacsclient as $EDITOR
yaml-mode 20141125.37 installed Major mode for editing YAML files
yasnippet 20150804.1120 installed Yet another snippet extension for Emacs.
yatemplate 20150305.1526 installed File templates with yasnippet
yaxception 20150105.652 installed Provide framework about exception like Java for Elisp
zygospore 20140703.152 installed reversible C-x 1 (delete-other-windows)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With