annotate runtime/doc/if_perl.txt @ 2784:930b171ce3fc v7.3.168

updated for version 7.3.168 Problem: When the second argument of input() contains a CR the text up to that is used without asking the user. (Yasuhiro Matsumoto) Solution: Change CR, NL and ESC in the text to a space.
author Bram Moolenaar <bram@vim.org>
date Thu, 28 Apr 2011 17:30:09 +0200
parents 073ff46fe397
children 536aa8b0c934
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2572
ee53a39d5896 Last changes for the 7.3 release!
Bram Moolenaar <bram@vim.org>
parents: 2561
diff changeset
1 *if_perl.txt* For Vim version 7.3. Last change: 2010 Jul 21
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 Sven Verdoolaege
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5 and Matt Gerassimof
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7 Perl and Vim *perl* *Perl*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9 1. Editing Perl files |perl-editing|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10 2. Compiling VIM with Perl interface |perl-compiling|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11 3. Using the Perl interface |perl-using|
557
862863033fdd updated for version 7.0158
vimboss
parents: 236
diff changeset
12 4. Dynamic loading |perl-dynamic|
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
13
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
14 {Vi does not have any of these commands}
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
15
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
16 The Perl interface only works when Vim was compiled with the |+perl| feature.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
17
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
18 ==============================================================================
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
19 1. Editing Perl files *perl-editing*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
20
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
21 Vim syntax highlighting supports Perl and POD files. Vim assumes a file is
236
4707450c2b33 updated for version 7.0066
vimboss
parents: 22
diff changeset
22 Perl code if the filename has a .pl or .pm suffix. Vim also examines the first
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
23 line of a file, regardless of the filename suffix, to check if a file is a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
24 Perl script (see scripts.vim in Vim's syntax directory). Vim assumes a file
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
25 is POD text if the filename has a .POD suffix.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
26
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
27 To use tags with Perl, you need a recent version of Exuberant ctags. Look
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
28 here:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
29 http://ctags.sourceforge.net
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
30
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
31 Alternatively, you can use the Perl script pltags.pl, which is shipped with
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
32 Vim in the $VIMRUNTIME/tools directory. This script has currently more
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
33 features than Exuberant ctags' Perl support.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
34
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
35 ==============================================================================
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
36 2. Compiling VIM with Perl interface *perl-compiling*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
37
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
38 To compile Vim with Perl interface, you need Perl 5.004 (or later). Perl must
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
39 be installed before you compile Vim. Vim's Perl interface does NOT work with
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
40 the 5.003 version that has been officially released! It will probably work
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
41 with Perl 5.003_05 and later.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
42
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
43 The Perl patches for Vim were made by:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
44 Sven Verdoolaege <skimo@breughel.ufsia.ac.be>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
45 Matt Gerassimof
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
46
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
47 Perl for MS-Windows can be found at:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
48 http://www.perl.com/CPAN/ports/nt/Standard/x86/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
49
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
50 ==============================================================================
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
51 3. Using the Perl interface *perl-using*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
52
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
53 *:perl* *:pe*
236
4707450c2b33 updated for version 7.0066
vimboss
parents: 22
diff changeset
54 :pe[rl] {cmd} Execute Perl command {cmd}. The current package
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
55 is "main".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
56
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
57 :pe[rl] << {endpattern}
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
58 {script}
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
59 {endpattern}
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
60 Execute Perl script {script}.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
61 {endpattern} must NOT be preceded by any white space.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
62 If {endpattern} is omitted, it defaults to a dot '.'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
63 like for the |:append| and |:insert| commands. Using
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
64 '.' helps when inside a function, because "$i;" looks
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
65 like the start of an |:insert| command to Vim.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
66 This form of the |:perl| command is mainly useful for
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
67 including perl code in vim scripts.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
68 Note: This command doesn't work when the Perl feature
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
69 wasn't compiled in. To avoid errors, see
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
70 |script-here|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
71
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
72
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
73 Example vim script: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
74
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
75 function! WhitePearl()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
76 perl << EOF
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
77 VIM::Msg("pearls are nice for necklaces");
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
78 VIM::Msg("rubys for rings");
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
79 VIM::Msg("pythons for bags");
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
80 VIM::Msg("tcls????");
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
81 EOF
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
82 endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
83 <
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
84
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
85 *:perldo* *:perld*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
86 :[range]perld[o] {cmd} Execute Perl command {cmd} for each line in the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
87 [range], with $_ being set to the text of each line in
236
4707450c2b33 updated for version 7.0066
vimboss
parents: 22
diff changeset
88 turn, without a trailing <EOL>. Setting $_ will change
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
89 the text, but note that it is not possible to add or
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
90 delete lines using this command.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
91 The default for [range] is the whole file: "1,$".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
92
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
93 Here are some things you can try: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
94
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
95 :perl $a=1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
96 :perldo $_ = reverse($_);1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
97 :perl VIM::Msg("hello")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
98 :perl $line = $curbuf->Get(42)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
99 <
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
100 *E299*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
101 Executing Perl commands in the |sandbox| is limited. ":perldo" will not be
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
102 possible at all. ":perl" will be evaluated in the Safe environment, if
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
103 possible.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
104
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
105
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
106 *perl-overview*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
107 Here is an overview of the functions that are available to Perl: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
108
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
109 :perl VIM::Msg("Text") # displays a message
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
110 :perl VIM::Msg("Error", "ErrorMsg") # displays an error message
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
111 :perl VIM::Msg("remark", "Comment") # displays a highlighted message
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
112 :perl VIM::SetOption("ai") # sets a vim option
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
113 :perl $nbuf = VIM::Buffers() # returns the number of buffers
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
114 :perl @buflist = VIM::Buffers() # returns array of all buffers
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
115 :perl $mybuf = (VIM::Buffers('qq.c'))[0] # returns buffer object for 'qq.c'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
116 :perl @winlist = VIM::Windows() # returns array of all windows
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
117 :perl $nwin = VIM::Windows() # returns the number of windows
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
118 :perl ($success, $v) = VIM::Eval('&path') # $v: option 'path', $success: 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
119 :perl ($success, $v) = VIM::Eval('&xyz') # $v: '' and $success: 0
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
120 :perl $v = VIM::Eval('expand("<cfile>")') # expands <cfile>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
121 :perl $curwin->SetHeight(10) # sets the window height
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
122 :perl @pos = $curwin->Cursor() # returns (row, col) array
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
123 :perl @pos = (10, 10)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
124 :perl $curwin->Cursor(@pos) # sets cursor to @pos
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
125 :perl $curwin->Cursor(10,10) # sets cursor to row 10 col 10
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
126 :perl $mybuf = $curwin->Buffer() # returns the buffer object for window
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
127 :perl $curbuf->Name() # returns buffer name
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
128 :perl $curbuf->Number() # returns buffer number
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
129 :perl $curbuf->Count() # returns the number of lines
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
130 :perl $l = $curbuf->Get(10) # returns line 10
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
131 :perl @l = $curbuf->Get(1 .. 5) # returns lines 1 through 5
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
132 :perl $curbuf->Delete(10) # deletes line 10
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
133 :perl $curbuf->Delete(10, 20) # delete lines 10 through 20
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
134 :perl $curbuf->Append(10, "Line") # appends a line
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
135 :perl $curbuf->Append(10, "Line1", "Line2", "Line3") # appends 3 lines
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
136 :perl @l = ("L1", "L2", "L3")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
137 :perl $curbuf->Append(10, @l) # appends L1, L2 and L3
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
138 :perl $curbuf->Set(10, "Line") # replaces line 10
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
139 :perl $curbuf->Set(10, "Line1", "Line2") # replaces lines 10 and 11
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
140 :perl $curbuf->Set(10, @l) # replaces 3 lines
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
141 <
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
142 *perl-Msg*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
143 VIM::Msg({msg}, {group}?)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
144 Displays the message {msg}. The optional {group}
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
145 argument specifies a highlight group for Vim to use
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
146 for the message.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
147
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
148 *perl-SetOption*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
149 VIM::SetOption({arg}) Sets a vim option. {arg} can be any argument that the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
150 ":set" command accepts. Note that this means that no
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
151 spaces are allowed in the argument! See |:set|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
152
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
153 *perl-Buffers*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
154 VIM::Buffers([{bn}...]) With no arguments, returns a list of all the buffers
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
155 in an array context or returns the number of buffers
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
156 in a scalar context. For a list of buffer names or
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
157 numbers {bn}, returns a list of the buffers matching
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
158 {bn}, using the same rules as Vim's internal
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
159 |bufname()| function.
22
cc049b00ee70 updated for version 7.0014
vimboss
parents: 7
diff changeset
160 WARNING: the list becomes invalid when |:bwipe| is
cc049b00ee70 updated for version 7.0014
vimboss
parents: 7
diff changeset
161 used. Using it anyway may crash Vim.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
162
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
163 *perl-Windows*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
164 VIM::Windows([{wn}...]) With no arguments, returns a list of all the windows
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
165 in an array context or returns the number of windows
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
166 in a scalar context. For a list of window numbers
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
167 {wn}, returns a list of the windows with those
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
168 numbers.
22
cc049b00ee70 updated for version 7.0014
vimboss
parents: 7
diff changeset
169 WARNING: the list becomes invalid when a window is
cc049b00ee70 updated for version 7.0014
vimboss
parents: 7
diff changeset
170 closed. Using it anyway may crash Vim.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
171
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
172 *perl-DoCommand*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
173 VIM::DoCommand({cmd}) Executes Ex command {cmd}.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
174
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
175 *perl-Eval*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
176 VIM::Eval({expr}) Evaluates {expr} and returns (success, val).
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
177 success=1 indicates that val contains the value of
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
178 {expr}; success=0 indicates a failure to evaluate
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
179 the expression. '@x' returns the contents of register
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
180 x, '&x' returns the value of option x, 'x' returns the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
181 value of internal |variables| x, and '$x' is equivalent
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
182 to perl's $ENV{x}. All |functions| accessible from
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
183 the command-line are valid for {expr}.
714
0f9f4761ad9c updated for version 7.0216
vimboss
parents: 557
diff changeset
184 A |List| is turned into a string by joining the items
0f9f4761ad9c updated for version 7.0216
vimboss
parents: 557
diff changeset
185 and inserting line breaks.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
186
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
187 *perl-SetHeight*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
188 Window->SetHeight({height})
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
189 Sets the Window height to {height}, within screen
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
190 limits.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
191
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
192 *perl-GetCursor*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
193 Window->Cursor({row}?, {col}?)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
194 With no arguments, returns a (row, col) array for the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
195 current cursor position in the Window. With {row} and
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
196 {col} arguments, sets the Window's cursor position to
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
197 {row} and {col}. Note that {col} is numbered from 0,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
198 Perl-fashion, and thus is one less than the value in
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
199 Vim's ruler.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
200
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
201 Window->Buffer() *perl-Buffer*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
202 Returns the Buffer object corresponding to the given
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
203 Window.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
204
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
205 *perl-Name*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
206 Buffer->Name() Returns the filename for the Buffer.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
207
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
208 *perl-Number*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
209 Buffer->Number() Returns the number of the Buffer.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
210
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
211 *perl-Count*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
212 Buffer->Count() Returns the number of lines in the Buffer.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
213
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
214 *perl-Get*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
215 Buffer->Get({lnum}, {lnum}?, ...)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
216 Returns a text string of line {lnum} in the Buffer
236
4707450c2b33 updated for version 7.0066
vimboss
parents: 22
diff changeset
217 for each {lnum} specified. An array can be passed
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
218 with a list of {lnum}'s specified.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
219
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
220 *perl-Delete*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
221 Buffer->Delete({lnum}, {lnum}?)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
222 Deletes line {lnum} in the Buffer. With the second
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
223 {lnum}, deletes the range of lines from the first
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
224 {lnum} to the second {lnum}.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
225
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
226 *perl-Append*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
227 Buffer->Append({lnum}, {line}, {line}?, ...)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
228 Appends each {line} string after Buffer line {lnum}.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
229 The list of {line}s can be an array.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
230
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
231 *perl-Set*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
232 Buffer->Set({lnum}, {line}, {line}?, ...)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
233 Replaces one or more Buffer lines with specified
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
234 {lines}s, starting at Buffer line {lnum}. The list of
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
235 {line}s can be an array. If the arguments are
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
236 invalid, replacement does not occur.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
237
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
238 $main::curwin
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
239 The current window object.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
240
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
241 $main::curbuf
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
242 The current buffer object.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
243
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
244
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
245 *script-here*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
246 When using a script language in-line, you might want to skip this when the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
247 language isn't supported. But this mechanism doesn't work: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
248 if has('perl')
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
249 perl << EOF
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
250 this will NOT work!
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
251 EOF
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
252 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
253 Instead, put the Perl/Python/Ruby/etc. command in a function and call that
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
254 function: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
255 if has('perl')
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
256 function DefPerl()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
257 perl << EOF
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
258 this works
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
259 EOF
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
260 endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
261 call DefPerl()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
262 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
263 Note that "EOF" must be at the start of the line.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
264
557
862863033fdd updated for version 7.0158
vimboss
parents: 236
diff changeset
265 ==============================================================================
862863033fdd updated for version 7.0158
vimboss
parents: 236
diff changeset
266 4. Dynamic loading *perl-dynamic*
862863033fdd updated for version 7.0158
vimboss
parents: 236
diff changeset
267
2370
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2365
diff changeset
268 On MS-Windows and Unix the Perl library can be loaded dynamically. The
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2365
diff changeset
269 |:version| output then includes |+perl/dyn|.
557
862863033fdd updated for version 7.0158
vimboss
parents: 236
diff changeset
270
2370
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2365
diff changeset
271 This means that Vim will search for the Perl DLL or shared library file only
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2365
diff changeset
272 when needed. When you don't use the Perl interface you don't need it, thus
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2365
diff changeset
273 you can use Vim without this file.
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2365
diff changeset
274
557
862863033fdd updated for version 7.0158
vimboss
parents: 236
diff changeset
275
2370
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2365
diff changeset
276 MS-Windows ~
557
862863033fdd updated for version 7.0158
vimboss
parents: 236
diff changeset
277
2342
f6540762173d Fixes and improvements for MS-Windows build.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
278 You can download Perl from http://www.perl.org. The one from ActiveState was
f6540762173d Fixes and improvements for MS-Windows build.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
279 used for building Vim.
557
862863033fdd updated for version 7.0158
vimboss
parents: 236
diff changeset
280
2342
f6540762173d Fixes and improvements for MS-Windows build.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
281 To use the Perl interface the Perl DLL must be in your search path.
f6540762173d Fixes and improvements for MS-Windows build.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
282 If Vim reports it cannot find the perl512.dll, make sure your $PATH includes
2355
84c7eeeb09e2 Fix typos in documentation. (Dominique Pelle)
Bram Moolenaar <bram@vim.org>
parents: 2345
diff changeset
283 the directory where it is located. The Perl installer normally does that.
2342
f6540762173d Fixes and improvements for MS-Windows build.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
284 In a console window type "path" to see what directories are used.
557
862863033fdd updated for version 7.0158
vimboss
parents: 236
diff changeset
285
862863033fdd updated for version 7.0158
vimboss
parents: 236
diff changeset
286 The name of the DLL must match the Perl version Vim was compiled with.
2342
f6540762173d Fixes and improvements for MS-Windows build.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
287 Currently the name is "perl512.dll". That is for Perl 5.12. To know for
557
862863033fdd updated for version 7.0158
vimboss
parents: 236
diff changeset
288 sure edit "gvim.exe" and search for "perl\d*.dll\c".
862863033fdd updated for version 7.0158
vimboss
parents: 236
diff changeset
289
862863033fdd updated for version 7.0158
vimboss
parents: 236
diff changeset
290 ==============================================================================
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
291 vim:tw=78:ts=8:ft=help:norl: