# Irbsh-1.0.1

**URL:** <https://www.ruby-forum.com/t/irbsh-1-0-1/186491>\
**Category:** Ruby\
**Created:** [April 7, 2010, 11:08pm UTC](https://www.ruby-forum.com/t/irbsh-1-0-1/186491 "2010-04-07T23:08:40Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [April 7, 2010, 11:08pm UTC](https://www.ruby-forum.com/t/irbsh-1-0-1/186491/1 "2010-04-07T23:08:40Z")

</div>

Hi,

== About irbsh  
Irbsh is an extension of irb/inf-ruby.el.  
You can easily execute shell commands and Ruby codes by using irbsh.

Eval list feature makes irbsh be an development environment of Ruby.

While irbsh has many features, you can use easily.

== How is irbsh better than inferior-ruby

- Irbsh interprets command-line beginning from ’ ’ as shell command.
  - You can use Ruby’s #{…} expansion.
  - It displays what command is executing.
  - It displays return status.

- Like shell-mode irbsh follows current-directory.
- You can insert ‘system’ method by two strokes.
- You can change the context (shell-command/Ruby-statement) by one  
stroke.
- If (command-line =~ /;$/) then irbsh disables output.
- If (command-line =~ /|$/) then irbsh redirects output to another  
buffer.
- If (command-line =~ /&$/) then irbsh uses background shell or GNU  
screen.
- Intelligent completion.
  - buffer-name, shell-commands, file/directory-names,  
method/variable-names.

- Zsh-like command-line stack.
- Zsh-like wildcard expansion.
- You can load any Ruby scripts.
- You can call irbsh from any buffers.
- You can handle Emacs-region and Emacs-buffer as File object.
- Keybind is like shell at terminal.
- You can (()) and prompt when you execute wrong  
command-line.
- (()) enables you to write multi-line input.
- (()) executes pre-registered expressions.
- ((\<_ruby scratch_ buffer\>)) is a scratch buffer for Ruby.
- (()) enables you to execute a Ruby expression any time.
- You can ((\<edit objects with YAML|Editing objects with YAML\>)).
- You can eval any EmacsLisp expressions.
- (())

It is available at  
[http://www.rubyist.net/~rubikitch/computer/irbsh/index.en.html](http://www.rubyist.net/~rubikitch/computer/irbsh/index.en.html)

== What’s new

: [2010/04/08] Ver 1.0.1  
\* Fix a display bug in irbsh.el  
\* Ruby 1.9 compliant

: [2006/01/16] Ver 1.0.0  
\* EmacsLisp sexp evaluation  
\* Edit objects  
\* English document  
\* irbsh-toggle.el  
\* many bugfixes  
\* Easy Method Definition

: [2001/11/15] Ver 0.1  
Initial release

== Download  
You can download irbsh from ((RAA:irbsh)).

== Install  
(0) Install Ruby and inf-ruby.el.  
(1) Install by setup.rb.  
$ ruby setup.rb config  
$ ruby setup.rb setup  
# ruby setup.rb install

(2) Append the following to .irbrc  
load “irbsh-lib.rb” if IRB.conf[:PROMPT\_MODE] == :INF\_RUBY

(3) Append the following to .emacs  
(load “irbsh”)  
(load “irbsh-toggle”)

or  
(when (locate-library “irbsh”)  
(autoload 'irbsh “irbsh” “irbsh - IRB.extend ShellUtilities” t)  
(autoload 'irbsh-oneliner-with-completion “irbsh” “irbsh  
oneliner” t))  
(when (locate-library “irbsh-toggle”)  
(autoload 'irbsh-toggle “irbsh-toggle”  
“Toggles between the _irbsh_1 buffer and whatever buffer you  
are editing.”  
t)  
(autoload 'irbsh-toggle-cd “irbsh-toggle”  
“Pops up a irbsh-buffer and insert a “cd ” command.”  
t))

```
If you see
  (file-error "Cannot open load file" "irbsh")
error message, you append
  (add-to-list 'load-path "/usr/local/share/emacs/site-lisp/")

```
