if_ruby.txt For Vim バージョン 9.1. Last change: 2019 Jul 21
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. rubyeval() Vim 関数 ruby-rubyeval
7. 動的ローディング ruby-dynamic
E266 E267 E268 E269 E270 E271 E272 E273
{Vim が +ruby 機能付きでコンパイルされている場合にのみ利用できる}
Rubyのホームページは http://www.ruby-lang.org/ である。ここでRubyをダウンロー
ドできる。
==============================================================================
1. コマンド ruby-commands
:ruby :rub
:rub[y] {cmd} Rubyのコマンド{cmd}を実行する。次のようにして使う: >
:rub[y] << [trim] [{endmarker}]
{script}
{endmarker}
Rubyスクリプト{script}を実行する。
[endmarker]が省略された場合、:appendや:insertコマ
ンド同様にドット '.' がデフォルトである。詳細について
は :let-heredoc を参照。
この形式の:rubyコマンドは主にVim scriptにRubyコード
を埋め込むのに便利である。
Note: Ruby のサポートを有効にしてコンパイルされていな
いとこのコマンドは機能しない。エラーを回避するには
script-here を参照。
Vim script の例: >
使っている Ruby のバージョンを見るには: >
: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-blob
Vim::blob({arg})
{arg}から Blob リテラル文字列を返す。
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参照)。実行結果は次のように返される:
- Vimの実行結果が number の場合は Integer
- Vimの実行結果が float の場合は Float
- Vimの実行結果が string の場合は String
- Vimの実行結果がVimの list の場合は Array
- Vimの実行結果がVimの dictionary の場合は Hash
辞書とリストは再帰的に展開される。
==============================================================================
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 カーソルの位置を[行数, カラム]の形で配列にして返す。
最初の行番号は 1 で、最初の桁番号は 0 である。
cursor = [{row}, {col}]
カーソルの位置を{row} 行の {col}カラムに設定する。
==============================================================================
5. グローバル変数 ruby-globals
2つのグローバル変数がある。
$curwin 現在のウィンドウオブジェクト
$curbuf 現在のバッファオブジェクト
==============================================================================
6. rubyeval() Vim 関数 ruby-rubyeval
双方向インターフェイスを促進するため、rubyeval() 関数を使用して Ruby 式を評
価しそれらの値を Vim script に渡すことができる。
Ruby の値 "true", "false" および "nil" は、それぞれ v:true, v:false および
v:null に変換される。
==============================================================================
7. 動的ローディング ruby-dynamic
MS-WindowsとUnixではRubyライブラリを動的に読み込むことが可能である。これを行う
と:versionの出力に+ruby/dynが含まれるようになる。
この場合、Vimは必要になったときだけRubyのDLLファイル及び共有ライブラリを検索す
る。Rubyインターフェイスを使わないのであればそれらは必要ではないので、ライブラ
リファイルがシステムに無くてもVimを使うことができる。
MS-Windows ~
これが動作するためには Ruby の適切なバージョンがインストールされている必要があ
る。次の場所からパッケージをダウンロードできる:
http://rubyinstaller.org/downloads/
現在のパッケージは rubyinstaller-2.2.5.exe である。
http://www.garbagecollect.jp/ruby/mswin32/en/download/release.html
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 のバージョンと一致してい
なければならない。
==============================================================================
vim:tw=78:ts=8:noet:ft=help:norl:
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. rubyeval() Vim 関数 ruby-rubyeval
7. 動的ローディング ruby-dynamic
E266 E267 E268 E269 E270 E271 E272 E273
{Vim が +ruby 機能付きでコンパイルされている場合にのみ利用できる}
Rubyのホームページは http://www.ruby-lang.org/ である。ここでRubyをダウンロー
ドできる。
==============================================================================
1. コマンド ruby-commands
:ruby :rub
:rub[y] {cmd} Rubyのコマンド{cmd}を実行する。次のようにして使う: >
:ruby print "Hello"
:rub[y] << [trim] [{endmarker}]
{script}
{endmarker}
Rubyスクリプト{script}を実行する。
[endmarker]が省略された場合、:appendや:insertコマ
ンド同様にドット '.' がデフォルトである。詳細について
は :let-heredoc を参照。
この形式の: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 << 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
<: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モジュール経由で行う。
概要 >
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.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" # カレント行を設定する
モジュール関数:
ruby-message
Vim::message({msg})
メッセージ{msg}を表示する。
ruby-blob
Vim::blob({arg})
{arg}から Blob リテラル文字列を返す。
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参照)。実行結果は次のように返される:
- Vimの実行結果が number の場合は Integer
- Vimの実行結果が float の場合は Float
- Vimの実行結果が string の場合は String
- Vimの実行結果がVimの list の場合は Array
- Vimの実行結果がVimの dictionary の場合は Hash
辞書とリストは再帰的に展開される。
==============================================================================
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 カーソルの位置を[行数, カラム]の形で配列にして返す。
最初の行番号は 1 で、最初の桁番号は 0 である。
cursor = [{row}, {col}]
カーソルの位置を{row} 行の {col}カラムに設定する。
==============================================================================
5. グローバル変数 ruby-globals
2つのグローバル変数がある。
$curwin 現在のウィンドウオブジェクト
$curbuf 現在のバッファオブジェクト
==============================================================================
6. rubyeval() Vim 関数 ruby-rubyeval
双方向インターフェイスを促進するため、rubyeval() 関数を使用して Ruby 式を評
価しそれらの値を Vim script に渡すことができる。
Ruby の値 "true", "false" および "nil" は、それぞれ v:true, v:false および
v:null に変換される。
==============================================================================
7. 動的ローディング ruby-dynamic
MS-WindowsとUnixではRubyライブラリを動的に読み込むことが可能である。これを行う
と:versionの出力に+ruby/dynが含まれるようになる。
この場合、Vimは必要になったときだけRubyのDLLファイル及び共有ライブラリを検索す
る。Rubyインターフェイスを使わないのであればそれらは必要ではないので、ライブラ
リファイルがシステムに無くてもVimを使うことができる。
MS-Windows ~
これが動作するためには Ruby の適切なバージョンがインストールされている必要があ
る。次の場所からパッケージをダウンロードできる:
http://rubyinstaller.org/downloads/
現在のパッケージは rubyinstaller-2.2.5.exe である。
http://www.garbagecollect.jp/ruby/mswin32/en/download/release.html
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 のバージョンと一致してい
なければならない。
==============================================================================
vim:tw=78:ts=8:noet:ft=help:norl: