*if_ruby.txt* For Vim version 6.1. Last change: 2001 Oct 25
VIM REFERENCE MANUAL by Shugo Maeda
The Ruby Interface to Vim*ruby* *Ruby*
1. Commands|ruby-commands|
2. The VIM module|ruby-vim|
3. VIM::Buffer objects|ruby-buffer|
4. VIM::Window objects|ruby-window|
5. Global variables|ruby-globals|
{Vi does not have any of these commands}
*E266* *E267* *E268* *E269* *E270* *E271* *E272* *E273*
The Ruby interface only works when Vim was compiled with the |+ruby| feature.
For MS-Windows you might find a Ruby library here:
http://www.dm4lab.to/~usa/ruby_en.html
1. Commands*ruby-commands* *:ruby* *:rub* :rub[y]{cmd}Execute Ruby command{cmd}. :rub[y] <<{endpattern}{script}{endpattern}Execute Ruby script{script}.{endpattern}must NOT be preceded by any white space. If{endpattern}is omitted, it defaults to a dot '.' like for the |:append| and |:insert| commands. This form of the |:ruby| command is mainly useful for including ruby code in vim scripts.Note:This command doesn't work when the Ruby feature wasn't compiled in. To avoid errors, see |script-here|. Example Vim script:function! RedGem()ruby << EOFclass Garnetdef initialize(s)@buffer = VIM::Buffer.currentvimputs(s)enddef vimputs(s)@buffer.append(@buffer.count,s)endendgem = Garnet.new("pretty")EOFendfunction*:rubydo* *:rubyd* *E265* :[range]rubyd[o]{cmd}Evaluate Ruby command{cmd}for each line in the[range], with $_ being set to the text of each line in turn, without a trailing<EOL>. Setting $_ will change the text, butnotethat it is not possible to add or delete lines using this command. The default for[range]is the whole file: "1,$". *:rubyfile* *:rubyf* :rubyf[ile]{file}Execute the Ruby script in{file}. This is the same as ":ruby load 'file'", but allows file name completion. Executing Ruby commands is not possible in the |sandbox|.
2. The VIM module*ruby-vim* Ruby code gets all of its access to vim via the "VIM" module. Overviewprint "Hello"# displays a messageVIM.command(cmd)# execute an ex commandnum = VIM::Window.count# gets the number of windowsw = VIM::Window[n]# gets window "n"cw = VIM::Window.current# gets the current windownum = VIM::Buffer.count# gets the number of buffersb = VIM::Buffer[n]# gets buffer "n"cb = VIM::Buffer.current# gets the current bufferw.height = lines# sets the window heightw.cursor = [row, col]# sets the window cursor positionpos = w.cursor# gets an array [row, col]name = b.name# gets the buffer file nameline = b[n]# gets a line from the buffernum = b.count# gets the number of linesb[n] = str# sets a line in the bufferb.delete(n)# deletes a lineb.append(n, str)# appends a line after nModule Functions: *ruby-message* VIM::message({msg}) Displays the message{msg}. *ruby-set_option* VIM::set_option({arg}) Sets a vim option.{arg}can be any argument that the ":set" command accepts.Notethat this means that no spaces are allowed in the argument! See |:set|. *ruby-command* VIM::command({cmd}) Executes Ex command{cmd}. *ruby-evaluate* VIM::evaluate({expr}) Evaluates{expr}using the vim internal expression evaluator (see |expression|). Returns the expression result as a string.
3. VIM::Buffer objects*ruby-buffer* VIM::Buffer objects represent vim buffers. Class Methods: currentReturns the current buffer object. countReturns the number of buffers. self[{n}]Returns the buffer object for the number{n}. The first number is 0. Methods: nameReturns the name of the buffer. numberReturns the number of the buffer. countReturns the number of lines. lengthReturns the number of lines. self[{n}]Returns a line from the buffer.{n}is the line number. self[{n}] ={str}Sets a line in the buffer.{n}is the line number. delete({n})Deletes a line from the buffer.{n}is the line number. append({n},{str}) Appends a line after the line{n}.
4. VIM::Window objects*ruby-window* VIM::Window objects represent vim windows. Class Methods: currentReturns the current window object. countReturns the number of windows. self[{n}]Returns the window object for the number{n}. The first number is 0. Methods: bufferReturns the buffer displayed in the window. heightReturns the height of the window. height ={n}Sets the window height to{n}. cursorReturns a [row, col] array for the cursor position. cursor = [{row},{col}] Sets the cursor position to{row}and{col}.
4. Global variables*ruby-globals* There are two global variables. $curwinThe current window object. $curbufThe current buffer object.
vim:tw=78:ts=8:ft=help:norl:
Generated by vim2html on Sat May 4 18:38:43 CEST 2002