2015-05-30 22 views
6

Sto seguendo l'esempio ispiratore here per impostare Vim per lo sviluppo R. Una differenza è che sto eseguendo Vim e R su un server remoto tramite la sessione ssh. E questo ssh inizia byobu, che ha tmux avviato automaticamente ogni volta che accedo. Quello che voglio è fare un Vim-R-Dev comando/alias in modo che: Dopo il login con il ssh e tmux è già in esecuzione, posso digitare Vim-R-Dev per aprire una finestra con vetri assomigliano nell'immagine allegata:Integrazione del plug-in Vim-R con la sessione remota ssh-byobu?

Illustrazione di invio di codice R da diverse finestre vim (al centro) a una sessione R (in alto a destra). La sessione vim può essere eseguita su un computer locale , mentre la sessione R può essere eseguita sullo stesso o su un sistema remoto. L'istantanea illustra anche l'utilità di completamento omni del plug-in vim-r (casella viola), la visualizzazione di un documento di guida della funzione R in un riquadro tmux separato (in basso a destra) e il file browser NERDTree (a sinistra).

Vim-R, tmux

risposta

1

Dopo un po 'di armeggiare con Vim e R, ho deciso di uscire da questo approccio. La mia sensazione era che la combinazione non fosse abbastanza matura per la produzione. Così ho provato a trovare e trovare EMACS + ESS. Sì, emacs è il rivale di Vim come programmatore/editor di geek. E sembra che io sia un traditore di Vim che salta ad Emacs quando i due sono in guerra :-) Non deve essere così.

Inizialmente ho installato emacs ed ess plugin/package e ho cercato di imparare le basi. Sono stato molto contento di come ESS sia molto più maturo di vimR. E il modo in cui emacs funziona con i pacchetti e la configurazione mi rende molto più felice di quando ho usato Vim. Ciò è in parte dovuto al fatto che ho un background di base ed ero disposto a trattare con ELISP, la variante del linguaggio di programmazione LISP realizzata per Emacs. Un consiglio per qualcuno di avere abilità Vim però: è meglio installare il pacchetto Evil sin dall'inizio in modo da avere la possibilità di modificare rapidamente in Vim, ma l'intero pacchetto di altre cose meravigliose, cioè robustezza, personalizzazione fine, documentazione sul posto . Ho discusso molte cose su Emacs ed ESS qui su stackoverflow.com e anche su emacs.stackexchange.com. La configurazione essenziale per programmatore R è:

Emacs, ESS, Evil, Helm*, auto-complete, auctex, polymode, r-autoyas. Di seguito sono riportati l'elenco completo dei pacchetti aggiuntivi che ho installato. Quello che mi consente di modificare ed eseguire il codice sul server remoto è chiamato tramp con l'inoltro X. Pubblicherò di più su questo se ci sono richieste.

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)