Up: 目次   [Index]


Ruby インターフェイス

*if_ruby.txt*   For Vim バージョン 8.1.  Last change: 2019 Jul 21


                 VIM リファレンスマニュアル    by Shugo Maeda

Ruby インターフェイス

1. コマンド|ruby-commands|
2. Vim モジュール|ruby-vim|
3. Vim::Buffer オブジェクト|ruby-buffer|
4. Vim::Window オブジェクト|ruby-window|
5. グローバル變數|ruby-globals|
6. rubyeval() Vim 函數|ruby-rubyeval|
7. 動的ローディング|ruby-dynamic|

{Vim が |+ruby| 機能付きでコンパイルされてゐる場合にのみ利用できる}

Ruby のホームページは http://www.ruby-lang.org/ である。ここで Ruby をダウンロードできる。

1. コマンド

:rub[y] {cmd}

Ruby のコマンド {cmd} を實行する。次のやうにして使ふ:

:ruby print "Hello"
:rub[y] << [endmarker]
{script}
{endmarker}

Ruby スクリプト {script} を實行する。

{script} 後の {endmarker} の行では直前に空白文字を先行させてはいけない。

[endmarker] が省略された場合、|:append| や |:insert| コマンド同樣に ’.’ (ドット) がデフォルトである。

この形式の |:ruby| コマンドは主に Vim script に Ruby コードを埋め込むのに便利。

Note:
このコマンドは Ruby 機能をコンパイル時に指定しなかつた時には動作しない。エラーを避けるには |script-here| を參照。

Vim script の例:

function! RedGem()
ruby << EOF
class Garnet
        def initialize(s)
                @buffer = Vim::Buffer.current
                vimputs(s)
        end
        def vimputs(s)
                @buffer.append(@buffer.count,s)
        end
end
gem = Garnet.new("pretty")
EOF
endfunction

使つてゐる Ruby のバージョンを見るには:

:ruby print RUBY_VERSION
:[range]rubyd[o] {cmd}

[range] の範圍の各行に對し、行末の <EOL> を削除して $_ へ代入しつつ、Ruby コマンド {cmd} を實行評價する。$_ を變更するとバッファのテキストを變更できるが、このコマンドを使つて行を追加したり削除したりはできないことに注意。

[range] を省略した場合ファイル全體が對象: "1,$"

:rubyf[ile] {file}

ファイル {file} の Ruby スクリプトを實行する。ファイル名の補完が利用できる以外は、‘:ruby load 'file'‘ と同じ。

|sandbox| 環境內では Ruby コマンドを實行できない。

2. Vim モジュール

Ruby のコードは全ての Vim へのアクセスを Vim モジュール經由で行ふ。

槪要

print "Hello"メッセージを表示する
Vim.command(cmd)Ex コマンドを實行する
num = Vim::Window.countウィンドウ數を取得する
w = Vim::Window[n]ウィンドウ n を取得する
cw = Vim::Window.current現在のウィンドウを取得する
num = Vim::Buffer.countバッファ數を取得する
b = Vim::Buffer[n]バッファ n を取得する
cb = Vim::Buffer.current現在のバッファを取得する
w.height = linesウィンドウの高さ (行數) を設定する
w.cursor = [row, col]ウィンドウのカーソル位置を設定する
pos = w.cursorカーソルの位置を排列で受け取る
name = b.nameバッファのファイル名を取得する
line = b[n]バッファから行の內容を取得する
num = b.countバッファの行數を取得する
b[n] = strバッファの行の內容を變更する
b.delete(n)行を削除する
b.append(n, str)n 行目の直後に行を追加する
line = Vim::Buffer.current.lineカレント行を取得する
num = Vim::Buffer.current.line_numberカレント行の行番號を取得する
Vim::Buffer.current.line = "test"カレント行を設定する

モジュール函數:

Vim::message({msg})

メッセージ {msg} を表示する。

Vim::blob({arg})

{arg}から |Blob| リテラル文字列を返す。

Vim::set_option({arg})

Vim のオプションを設定する。{arg} は ":set" コマンドが受け付けるものであれば何でも良い。

Note”
引數の中では空白文字が使へないことに注意。

|:set| を參照。

Vim::command({cmd})

Ex コマンド {cmd} を實行する。

Vim::evaluate({expr})

Vim 內部の實行エンジンを使つてスクリプト {expr} を實行評價する (|expression| 參照)。實行結果は次のやうに返される:

辭書とリストは再歸的に展開される。

3. Vim::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 オブジェクト

Vim::Window オブジェクトは Vim のウィンドウを表現してゐる。

クラスメソッド:

current現在のウィンドウオブジェクトを返す。
countウィンドウの數を返す。
self[{n}]番號 {n} のウィンドウオブジェクトを返す。番號は 0 から數え始める。

メソッド:

bufferウィンドウに表示されてゐるバッファを返す。
heightウィンドウの高さを返す。
height = {n}ウィンドウの高さを {n} に設定する。
widthウィンドウの幅を返す。
width = {n}ウィンドウの幅を {n} に設定する。
cursorカーソルの位置を [行數, カラム] の形で排列にして返す。最初の行番號は 1 で、最初の列番號は 0。
cursor = [{row}, {col}]カーソルの位置を {row} 行の {col} カラムに設定する。

5. グローバル變數

2 つのグローバル變數がある。

$curwin現在のウィンドウオブジェクト
$curbuf現在のバッファオブジェクト

6. rubyeval() Vim 函數

雙方向インターフェイスを促進するため、|rubyeval()| 函數を使用して Ruby 式を評價しそれらの値を Vim script に渡すことができる。

Ruby の値 "true", "false" および "nil" は、それぞれ v:true, v:false および v:null に變換される。

6. 動的ローディング

MS-Windows と Unix では Ruby ライブラリを動的に讀み込むことが可能である。これを行ふと |:version| の出力に |+ruby/dyn| が含まれるやうになる。

この場合、Vim は必要になつたときだけ Ruby の DLL ファイル及び共有ライブラリを檢索する。Ruby インターフェイスを使はないのであればそれらは必要ではないので、ライブラリファイルがシステムに無くても Vim を使ふことができる。

MS-Windows

これが動作するためには Ruby の適切なバージョンがインストールされてゐる必要がある。次の場所からパッケージをダウンロードできる:

http://rubyinstaller.org/downloads/

現在のパッケージは rubyinstaller-2.2.5.exe である。

Ruby インターフェイスを使ふには Ruby の DLL が檢索パス內に存在しなければならない。コンソールウィンドウで "path" とタイプすると、どのディレクトリが檢索パスとなるか表示することができる。また ’rubydll’ オプションを Ruby の DLL を指定するのに使ふこともできる。

DLL の名前は Vim をコンパイルした時の Ruby のバージョンに一致しなければならない。現在その名前は "msvcrt-ruby220.dll" である。これは Ruby 2.2.X 用である。これを確かめるには、"gvim.exe" を開き、"ruby\d*.dll\c" を檢索する。

自分で RubyInstaller 1.9 または 2.X 對應の Vim を MSVC でビルドするには、ちよつとしたこつが必要である。詳細は src/INSTALLpc.txt を參照。

Vim が RubyInstaller 2.4 以降でビルドされてゐるなら、環境變數 PATH に "C:\Ruby<version>\bin\ruby_builtin_dlls" を追加する必要があるかもしれない。

Unix

コンパイル時に DYNAMIC_RUBY_DLL で指定されたファイルの代はりに、’rubydll’ オプションを使つて Ruby の共有ライブラリファイルを指定するのに使へる。共有ライブラリのバージョンは Vim をコンパイルする時に用いた Ruby のバージョンと一致してゐなければならない。


Up: 目次   [Index]