annotate runtime/doc/if_ruby.txt @ 698:e402b0af6083

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