IDL-EREP

Gem Version

An enhanced interactive environment for IDL (Interactive Data Language).

It provides stronger command history, tab-completion, and key shortcuts.

idl_erep

This is the IDL Enhanced REPl which gives an enhanced interactive environment.

Installation

Just execute

$ gem install idl_erep

Then, you can execute idl_erep.

Usage

Just execute idl_erep like following:

$ idl_erep

Key mappings

Key mappings depends on rb-readline.

key mappings description
Tab Auto-complete files and folder names
Ctrl + A Go to the beginning of the line you are currently typing on
Ctrl + E Go to the end of the line you are currently typing on
Ctrl + U Clears the line before the cursor position. If you are at the end of the line, clears the entire line.
Ctrl + H Same as backspace
Ctrl + R Let's you search through previously used commands
Ctrl + W Delete the word before the cursor
Ctrl + K Clear the line after the cursor
Ctrl + T Swap the last two characters before the cursor
Esc + T Swap the last two words before the cursor
Alt + F Move cursor forward one word on the current line
Alt + B Move cursor backward one word on the current line

Command History

When start this program, if there's a .idl_history file in current directory, it will be loaded and ~/.idl_history won't be loaded. If there's no .idl_history, ~/.idl_hisoty will be loaded.

It will allow you to keep command history only inside the project.

Configurations

In ~/.idl_profile, you can set some configurations of this environment.

variable default description
idlbin 'idl' PATH of IDL executable file
prompt 'IDL-EREP> ' prompt string of this environment
idlhist '~/.idl/idl/rbuf/history' PATH of default IDL history file (used only reading)
homehist '~/.idl_history' PATH of IDL-EREP history file in home directory
currhist './.idl_history' PATH of IDL-EREP history file in current directory
histlim 10000 limit number of IDL-EREP history file elements
defcomplist ['help', 'plot', etc..] default completion keywords list
compfuncs ['defcomplist', etc...] completion functions

There are some regex patterns for colorize stdout and stderr outputs.
If you want to customize these patterns, please see the source code.

variable description
stderr_blink_prtn blink patterns for stderr
stdout_blue_ptrn blue patterns for stdout
stdout_green_ptrn green patterns for stdout
stdout_yellow_ptrn yellow patterns for stdout

About Completion Functions

You can add completion functions in ~/.idl_profile. The functions must return array of completion keywords like following:

compfuncs = ["defcomplist", "get_dir_elems", "get_dir_pros"]

def get_dir_elems()
  Dir::entries(Dir::pwd)
end

def get_dir_pros()
  pros = Dir::entries(Dir::pwd).select do |i|
    i =~ /\.pro$/
  end
  pros.map! do |i|
    i.gsub(/\.pro$/, '')
  end
  pros
end