Skip to content
This repository

Overview

ESS support for julia language, among other things, includes font-lock, indentation, sending code to sub-process, interactive documentation, imenu, completion and eldoc.

Installation

Download ESS from git:

git clone git://github.com/emacs-ess/ESS.git

To update:

git pull

Optionally compile:

make all

Load ess-site.el in your .emacs and, unless your julia-release-basic is already in exec path, set ess-julia-program-name to point to julia-release-basic executable:

(load "path/to/ESS/git/lisp/ess-site")
(setq inferior-julia-program-name "/path/to/julia/julia-release-basic")

Usage

Start

To start julia type M-x julia RET. You can start multiple julia processes if you so desire.

To autostart or switch form script to julia subprocess use C-c C-z. To switch from process buffer to the most recent script buffer also use C-c C-z. To associate a buffer with a different julia process press C-c C-s.

Evaluation

To send chunks of code from your script use C-c C-c, C-M-x, C-RET etc. To load the whole file: C-c C-l. See evaluating code section in ESS manual. (tip: look up the documentation string of these commands with for example C-h k C-c C-c)

Help

To access documentation for any help topic or object use C-c C-d C-d. To call apropos: C-c C-d C-a. To look up for a topic in julia standard library reference: C-c C-d C-r. To look up a topic in the julia manual: C-c C-d m. To search julia website: C-c C-d C-w.

To see all help commands defined in ess-doc-map: C-c C-d C-h. See Help section in ESS documentation.

Error navigation

ESS-julia already implements a subset of ess-tracebug functionality.

Use usual emacs commands for error navigation C-x ` and M-g n, M-g p

Julia conveniently reports the location of its own source files. In order to make ESS to understand these links, add the julia’s source folders to ess-tracebug-search-path:

(add-to-list 'ess-tracebug-search-path "/path/to/julia/base/")

Imenu

You can use imenu directly, but better with some sort of ido or helm completion mechanism such as imenu-anywhere.

Completion

Completion is available with C-M-i. In process buffer TAB can also be used. By default, in script buffers, TAB only indents. If you want TAB to also complete, customize ess-tab-complete-in-script.

From ESS13.09, julia mode supports comprehensive tab and AC completion. Completions is available for all accessible objects including modules and composite objects fields.

See also this page.

Eldoc

Eldoc is emacs way to non-intrusively display information on object under cursor. ESS-julia recognizes function at point and displays all the arguments for all defined methods for this function:

See also

ESS ref-card might be also useful, though it covers quite some functionality for R and S which is not yet implemented for julia-mode as yet.

Something went wrong with that request. Please try again.