From J Wiki
Jump to: navigation, search

J definitions are in text files and can be edited with any editor. Jconsole has no native editor and you use the editor of your choice: a simple editor such as Windows notepad (or Unix equivalent), or a more powerful editor such as emacs.

A J project typically consists of a small number of small files and a simple editor is quite adequate and emacs is overkill. However, if you already know and love emacs, you may sorely miss it when in J.

Alexander Schmolck's emacs j-mode.el allows you to integrate emacs with Jconsole.


Emacs j-mode.el gives an emacs window to J. All J session input and output is through the emacs window with all the features that are programmed in the open source j-mode.el. Alexander's j-mode.el provides editing and interactive evaluation support and has features such as syntax-highlighting, syntax-aware code indentation, execution of code regions (current function, line etc.), help browsing, and vocabulary look up of the word at the caret.

Learn more about j-mode.el and get the latest version from

j-mode.el installation

The j-mode.el installation instructions say:

1. Copy j-mode.el to a directory in your emacs load-path.

2. Add the following to your .emacs file or site-init.el:

    (autoload 'j-mode "j-mode.el"  "Major mode for J." t)
    (autoload 'j-shell "j-mode.el" "Run J from emacs." t)

One possible problem is that you don't have a .emacs file. Run

emacs ~/.emacs

to automatically create a new .emacs with lots of defaults.

Another problem is knowing where to put j-mode.el (emacs load-path?). A brute force approach is to put j-mode.el in your home directory and then edit the .emacs file to give a full path. That is:

    (autoload 'j-mode "~/j-mode.el"  "Major mode for J." t)
    (autoload 'j-shell "~/j-mode.el" "Run J from emacs." t)

other editors

It is possible that other editors with a shell command facility similar to emacs that allows connecting an editor window to the stdin/stdout of another program could provide a similar level of integration with J.