*if_ruby.txt* For
Vim バージョン 7.3. Last change: 2010 Oct 27
VIM リファレンスマニュアル by Shugo Maeda
Rubyインターフェイス
*ruby* *Ruby*
1. コマンド
|ruby-commands|
2. VIMモジュール
|ruby-vim|
3. VIM::Buffer オブジェクト
|ruby-buffer|
4. VIM::Window オブジェクト
|ruby-window|
5. グローバル変数
|ruby-globals|
6. 動的ローディング
|ruby-dynamic|
{Viにはこれらのコマンドは無い}
*E266* *E267* *E268* *E269* *E270* *E271* *E272* *E273*
Rubyインターフェイスは
|+ruby|機能を有効化してVimをコンパイルした時にのみ動作す
る。
Rubyのホームページは
http://www.ruby-lang.org/ です。ここでRubyをダウンロード
できます。
==============================================================================
1. コマンド
*ruby-commands*
*:ruby* *:rub*
:rub[y]
{cmd} Rubyのコマンド
{cmd}を実行する。
:rub[y] <<
{endpattern}
{script}
{endpattern}
Rubyスクリプト
{script}を実行する。
{endpattern}の行では直前に空白文字を先行させてはいけな
い。
{endpattern}が省略された場合、
|:append|や
|:insert|
コマンド同様に'.'(ドット)がデフォルトである。この形式
の
|:ruby|コマンドは主にVimスクリプトにRubyコードを埋め
込むのに便利。
Note: このコマンドはRuby機能をコンパイル時に指定しな
かった時には動作しない。エラーを避けるには
|script-here|を参照。
次のようにして使います:
Vimスクリプトの例:
*:rubydo* *:rubyd* *E265*
:
[range]rubyd[o]
{cmd} [range]の範囲の各行に対し、行末の
<EOL>を削除して$_へ代
入しつつ、Rubyコマンド
{cmd}を実行評価する。$_を変更す
るとバッファのテキストを変更できるが、このコマンドを
使って行を追加したり削除したりはできないことに注意。
[range]を省略した場合ファイル全体が対象: "1,$"
*:rubyfile* *:rubyf*
:rubyf[ile]
{file} ファイル
{file}のRubyスクリプトを実行する。ファイル名の
補完が利用できる以外は、":ruby load
'file'"と同じ。
|sandbox|環境内ではRubyコマンドを実行できない。
==============================================================================
2. VIMモジュール
*ruby-vim*
Rubyのコードは全てのVimへのアクセスをVIMモジュール経由で行なう。
概要
モジュール関数:
*ruby-message*
VIM::message(
{msg})
メッセージ
{msg}を表示する。
*ruby-set_option*
VIM::set_option(
{arg})
Vimのオプションを設定する。
{arg}は":set"コマンドが受け付けるものであれ
ば何でも良い。引数の中では空白文字が使えないことに注意。
|:set|を参照。
*ruby-command*
VIM::command(
{cmd})
Exコマンド
{cmd}を実行する。
*ruby-evaluate*
VIM::evaluate(
{expr})
Vim内部の実行エンジンを使ってスクリプト
{expr}を実行評価する
(
|expression|参照)。実行結果は文字列で返される。
|List|は文字列に変換される。各要素が連結され、間に改行が挿入される。
==============================================================================
3. VIM::Buffer オブジェクト
*ruby-buffer*
オブジェクトVIM::BufferはVimのバッファを表す。
クラスメソッド:
current カレントバッファオブジェクトを返す。
count バッファの個数を返す。
self[
{n}] 番号
{n}のバッファオブジェクトを返す。最初の番号は0。
メソッド:
name バッファの名前を返す。
number バッファの番号を返す。
count 行数を返す。
length 行数を返す。
self[
{n}] バッファの行を返す。
{n}は行番号。
self[
{n}] =
{str}
バッファの行を設定する。
{n}は行番号。
delete(
{n}) バッファから行を削除する。
{n}は行番号。
append(
{n},
{str})
行
{n}の後ろに行を追加する。
line そのバッファがアクティブなら、カレント行を返す。
line =
{str} そのバッファがアクティブなら、カレント行を設定する。
line_number そのバッファがアクティブなら、カレント行の行番号を返す。
==============================================================================
4. VIM::Window オブジェクト
*ruby-window*
VIM::Window オブジェクトはVimのウィンドウを表現している。
クラスメソッド:
current 現在のウィンドウオブジェクトを返す。
count ウィンドウの数を返す。
self[
{n}] 番号
{n}のウィンドウオブジェクトを返す。番号は0から数え始める。
メソッド:
buffer ウィンドウに表示されているバッファを返す。
height ウィンドウの高さを返す。
height =
{n} ウィンドウの高さを
{n}に設定する。
width ウィンドウの幅を返す。
width =
{n} ウィンドウの幅を
{n}に設定する。
cursor カーソルの位置を[行数, カラム]の形で配列にして返す。
cursor = [
{row},
{col}]
カーソルの位置を
{row} 行の
{col}カラムに設定する。
==============================================================================
5. グローバル変数
*ruby-globals*
2つのグローバル変数がある。
$curwin 現在のウィンドウオブジェクト
$curbuf 現在のバッファオブジェクト
==============================================================================
6. 動的ローディング
*ruby-dynamic*
MS-WindowsとUnixではRubyライブラリを動的に読み込むことが可能である。これを行う
と
|:version|の出力に
|+ruby/dyn|が含まれるようになる。
この場合、Vimは必要になったときだけRubyのDLLファイル及び共有ライブラリを検索す
る。Rubyインターフェイスを使わないのであればそれらは必要ではないので、ライブラ
リファイルがシステムに無くてもVimを使うことができる。
これが動作するためには Ruby の適切なバージョンがインストールされている必要があ
ります。次の場所からパッケージをダウンロードできます:
http://www.garbagecollect.jp/ruby/mswin32/en/download/release.html
現在のパッケージは ruby-1.9.1-p429-i386-mswin32.zip です。
Rubyインターフェイスを使うにはRubyのDLLが検索パス内に存在しなければならな
い。コンソールウィンドウで"path"とタイプすると、どのディレクトリが検索パスとな
るか表示することができる。
DLLの名前はVimをコンパイルした時のRubyのバージョンに一致しなければならない。現
在その名前は"msvcrt-ruby191.dll"である。これはRuby1.9.1用である。これを確かめ
るには、"gvim.exe"を開き、"ruby\d*.dll\c"を検索する。
自分で Ruby 1.9.1 対応の Vim をビルドするには、config.h ファイルを編集して
_MSC_VER のチェックをコメントアウトする必要があるでしょう。
==============================================================================
vim:tw=78:ts=8:ft=help:norl: