comparison runtime/doc/if_ruby.txt @ 7:3fc0f57ecb91 v7.0001

updated for version 7.0001
author vimboss
date Sun, 13 Jun 2004 20:20:40 +0000
parents
children 4707450c2b33
comparison
equal deleted inserted replaced
6:c2daee826b8f 7:3fc0f57ecb91
1 *if_ruby.txt* For Vim version 7.0aa. Last change: 2004 Mar 14
2
3
4 VIM REFERENCE MANUAL by Shugo Maeda
5
6 The Ruby Interface to Vim *ruby* *Ruby*
7
8
9 1. Commands |ruby-commands|
10 2. The VIM module |ruby-vim|
11 3. VIM::Buffer objects |ruby-buffer|
12 4. VIM::Window objects |ruby-window|
13 5. Global variables |ruby-globals|
14
15 {Vi does not have any of these commands}
16 *E266* *E267* *E268* *E269* *E270* *E271* *E272* *E273*
17
18 The Ruby interface only works when Vim was compiled with the |+ruby| feature.
19
20 The home page for ruby is http://www.ruby-lang.org/. You can find links for
21 downloading Ruby there.
22
23 ==============================================================================
24 1. Commands *ruby-commands*
25
26 *:ruby* *:rub*
27 :rub[y] {cmd} Execute Ruby command {cmd}.
28
29 :rub[y] << {endpattern}
30 {script}
31 {endpattern}
32 Execute Ruby script {script}.
33 {endpattern} must NOT be preceded by any white space.
34 If {endpattern} is omitted, it defaults to a dot '.'
35 like for the |:append| and |:insert| commands. This
36 form of the |:ruby| command is mainly useful for
37 including ruby code in vim scripts.
38 Note: This command doesn't work when the Ruby feature
39 wasn't compiled in. To avoid errors, see
40 |script-here|.
41
42 Example Vim script: >
43
44 function! RedGem()
45 ruby << EOF
46 class Garnet
47 def initialize(s)
48 @buffer = VIM::Buffer.current
49 vimputs(s)
50 end
51 def vimputs(s)
52 @buffer.append(@buffer.count,s)
53 end
54 end
55 gem = Garnet.new("pretty")
56 EOF
57 endfunction
58 <
59
60 *:rubydo* *:rubyd* *E265*
61 :[range]rubyd[o] {cmd} Evaluate Ruby command {cmd} for each line in the
62 [range], with $_ being set to the text of each line in
63 turn, without a trailing <EOL>. Setting $_ will change
64 the text, but note that it is not possible to add or
65 delete lines using this command.
66 The default for [range] is the whole file: "1,$".
67
68 *:rubyfile* *:rubyf*
69 :rubyf[ile] {file} Execute the Ruby script in {file}. This is the same as
70 ":ruby load 'file'", but allows file name completion.
71
72 Executing Ruby commands is not possible in the |sandbox|.
73
74 ==============================================================================
75 2. The VIM module *ruby-vim*
76
77 Ruby code gets all of its access to vim via the "VIM" module.
78
79 Overview >
80 print "Hello" # displays a message
81 VIM.command(cmd) # execute an ex command
82 num = VIM::Window.count # gets the number of windows
83 w = VIM::Window[n] # gets window "n"
84 cw = VIM::Window.current # gets the current window
85 num = VIM::Buffer.count # gets the number of buffers
86 b = VIM::Buffer[n] # gets buffer "n"
87 cb = VIM::Buffer.current # gets the current buffer
88 w.height = lines # sets the window height
89 w.cursor = [row, col] # sets the window cursor position
90 pos = w.cursor # gets an array [row, col]
91 name = b.name # gets the buffer file name
92 line = b[n] # gets a line from the buffer
93 num = b.count # gets the number of lines
94 b[n] = str # sets a line in the buffer
95 b.delete(n) # deletes a line
96 b.append(n, str) # appends a line after n
97 <
98
99 Module Functions:
100
101 *ruby-message*
102 VIM::message({msg})
103 Displays the message {msg}.
104
105 *ruby-set_option*
106 VIM::set_option({arg})
107 Sets a vim option. {arg} can be any argument that the ":set" command
108 accepts. Note that this means that no spaces are allowed in the
109 argument! See |:set|.
110
111 *ruby-command*
112 VIM::command({cmd})
113 Executes Ex command {cmd}.
114
115 *ruby-evaluate*
116 VIM::evaluate({expr})
117 Evaluates {expr} using the vim internal expression evaluator (see
118 |expression|). Returns the expression result as a string.
119
120 ==============================================================================
121 3. VIM::Buffer objects *ruby-buffer*
122
123 VIM::Buffer objects represent vim buffers.
124
125 Class Methods:
126
127 current Returns the current buffer object.
128 count Returns the number of buffers.
129 self[{n}] Returns the buffer object for the number {n}. The first number
130 is 0.
131
132 Methods:
133
134 name Returns the name of the buffer.
135 number Returns the number of the buffer.
136 count Returns the number of lines.
137 length Returns the number of lines.
138 self[{n}] Returns a line from the buffer. {n} is the line number.
139 self[{n}] = {str}
140 Sets a line in the buffer. {n} is the line number.
141 delete({n}) Deletes a line from the buffer. {n} is the line number.
142 append({n}, {str})
143 Appends a line after the line {n}.
144
145 ==============================================================================
146 4. VIM::Window objects *ruby-window*
147
148 VIM::Window objects represent vim windows.
149
150 Class Methods:
151
152 current Returns the current window object.
153 count Returns the number of windows.
154 self[{n}] Returns the window object for the number {n}. The first number
155 is 0.
156
157 Methods:
158
159 buffer Returns the buffer displayed in the window.
160 height Returns the height of the window.
161 height = {n} Sets the window height to {n}.
162 cursor Returns a [row, col] array for the cursor position.
163 cursor = [{row}, {col}]
164 Sets the cursor position to {row} and {col}.
165
166 ==============================================================================
167 4. Global variables *ruby-globals*
168
169 There are two global variables.
170
171 $curwin The current window object.
172 $curbuf The current buffer object.
173
174 ==============================================================================
175 vim:tw=78:ts=8:ft=help:norl: