golden hour
/usr/share/vim/vim82/doc
⬆️ Go Up
Upload
File/Folder
Size
Actions
arabic.txt
11.62 KB
Del
OK
autocmd.txt
70.53 KB
Del
OK
change.txt
76.22 KB
Del
OK
channel.txt
49.13 KB
Del
OK
cmdline.txt
48.19 KB
Del
OK
debug.txt
6.73 KB
Del
OK
debugger.txt
5.32 KB
Del
OK
develop.txt
22.33 KB
Del
OK
diff.txt
16.63 KB
Del
OK
digraph.txt
60.53 KB
Del
OK
editing.txt
72.42 KB
Del
OK
eval.txt
528.52 KB
Del
OK
farsi.txt
523 B
Del
OK
filetype.txt
26.95 KB
Del
OK
fold.txt
23.13 KB
Del
OK
ft_ada.txt
17.82 KB
Del
OK
ft_rust.txt
9.37 KB
Del
OK
ft_sql.txt
29.98 KB
Del
OK
gui.txt
51.5 KB
Del
OK
gui_w32.txt
19 KB
Del
OK
gui_x11.txt
29.21 KB
Del
OK
hangulin.txt
598 B
Del
OK
hebrew.txt
5.53 KB
Del
OK
help.txt
8.69 KB
Del
OK
helphelp.txt
15.36 KB
Del
OK
howto.txt
2.85 KB
Del
OK
if_cscop.txt
18.87 KB
Del
OK
if_lua.txt
16.36 KB
Del
OK
if_mzsch.txt
11.66 KB
Del
OK
if_ole.txt
7.19 KB
Del
OK
if_perl.txt
11.02 KB
Del
OK
if_pyth.txt
37.53 KB
Del
OK
if_ruby.txt
8.32 KB
Del
OK
if_sniff.txt
271 B
Del
OK
if_tcl.txt
22.41 KB
Del
OK
indent.txt
41.29 KB
Del
OK
index.txt
78.75 KB
Del
OK
insert.txt
83.29 KB
Del
OK
intro.txt
38.06 KB
Del
OK
map.txt
69.14 KB
Del
OK
mbyte.txt
58.24 KB
Del
OK
message.txt
30.69 KB
Del
OK
mlang.txt
8 KB
Del
OK
motion.txt
50.14 KB
Del
OK
netbeans.txt
37.09 KB
Del
OK
options.txt
382.14 KB
Del
OK
os_390.txt
4.64 KB
Del
OK
os_amiga.txt
5.34 KB
Del
OK
os_beos.txt
293 B
Del
OK
os_dos.txt
12.09 KB
Del
OK
os_haiku.txt
8.39 KB
Del
OK
os_mac.txt
6.7 KB
Del
OK
os_mint.txt
391 B
Del
OK
os_msdos.txt
523 B
Del
OK
os_os2.txt
299 B
Del
OK
os_qnx.txt
3.98 KB
Del
OK
os_risc.txt
328 B
Del
OK
os_unix.txt
2.54 KB
Del
OK
os_vms.txt
32.13 KB
Del
OK
os_win32.txt
13.04 KB
Del
OK
pattern.txt
58.73 KB
Del
OK
pi_getscript.txt
20.59 KB
Del
OK
pi_gzip.txt
1.26 KB
Del
OK
pi_logipat.txt
4.1 KB
Del
OK
pi_netrw.txt
175.08 KB
Del
OK
pi_paren.txt
2.22 KB
Del
OK
pi_spec.txt
4.03 KB
Del
OK
pi_tar.txt
6.65 KB
Del
OK
pi_vimball.txt
11.58 KB
Del
OK
pi_zip.txt
7.12 KB
Del
OK
popup.txt
38.55 KB
Del
OK
print.txt
30.3 KB
Del
OK
quickfix.txt
80.98 KB
Del
OK
quickref.txt
70.45 KB
Del
OK
quotes.txt
12.45 KB
Del
OK
recover.txt
10.47 KB
Del
OK
remote.txt
8.22 KB
Del
OK
repeat.txt
41.2 KB
Del
OK
rileft.txt
4.82 KB
Del
OK
russian.txt
2.95 KB
Del
OK
scroll.txt
13.46 KB
Del
OK
sign.txt
25.25 KB
Del
OK
spell.txt
62.6 KB
Del
OK
sponsor.txt
7.03 KB
Del
OK
starting.txt
71.87 KB
Del
OK
syntax.txt
220.57 KB
Del
OK
tabpage.txt
16.84 KB
Del
OK
tags
346.5 KB
Del
OK
tagsrch.txt
39.33 KB
Del
OK
term.txt
46.38 KB
Del
OK
terminal.txt
54.79 KB
Del
OK
testing.txt
14.6 KB
Del
OK
textprop.txt
13.09 KB
Del
OK
tips.txt
20.57 KB
Del
OK
todo.txt
302.17 KB
Del
OK
uganda.txt
13.7 KB
Del
OK
undo.txt
16.2 KB
Del
OK
usr_01.txt
6.92 KB
Del
OK
usr_02.txt
23.66 KB
Del
OK
usr_03.txt
23.31 KB
Del
OK
usr_04.txt
18.68 KB
Del
OK
usr_05.txt
26.39 KB
Del
OK
usr_06.txt
9.39 KB
Del
OK
usr_07.txt
15.62 KB
Del
OK
usr_08.txt
18.92 KB
Del
OK
usr_09.txt
11.23 KB
Del
OK
usr_10.txt
28.52 KB
Del
OK
usr_11.txt
12.72 KB
Del
OK
usr_12.txt
13.11 KB
Del
OK
usr_20.txt
13.39 KB
Del
OK
usr_21.txt
18.02 KB
Del
OK
usr_22.txt
14.65 KB
Del
OK
usr_23.txt
12.45 KB
Del
OK
usr_24.txt
20.34 KB
Del
OK
usr_25.txt
18.73 KB
Del
OK
usr_26.txt
8.07 KB
Del
OK
usr_27.txt
17.29 KB
Del
OK
usr_28.txt
15.64 KB
Del
OK
usr_29.txt
19.65 KB
Del
OK
usr_30.txt
22.13 KB
Del
OK
usr_31.txt
10.16 KB
Del
OK
usr_32.txt
5.25 KB
Del
OK
usr_40.txt
22.65 KB
Del
OK
usr_41.txt
95.1 KB
Del
OK
usr_42.txt
13.53 KB
Del
OK
usr_43.txt
7.24 KB
Del
OK
usr_44.txt
28.27 KB
Del
OK
usr_45.txt
17.27 KB
Del
OK
usr_46.txt
6.93 KB
Del
OK
usr_90.txt
16.44 KB
Del
OK
usr_toc.txt
9.28 KB
Del
OK
various.txt
30.37 KB
Del
OK
version4.txt
13.58 KB
Del
OK
version5.txt
301.3 KB
Del
OK
version6.txt
563.42 KB
Del
OK
version7.txt
658.89 KB
Del
OK
version8.txt
1.85 MB
Del
OK
vi_diff.txt
56.08 KB
Del
OK
vim9.txt
55.82 KB
Del
OK
visual.txt
21.28 KB
Del
OK
windows.txt
54.43 KB
Del
OK
workshop.txt
371 B
Del
OK
Edit: if_perl.txt
*if_perl.txt* For Vim version 8.2. Last change: 2019 Dec 07 VIM REFERENCE MANUAL by Sven Verdoolaege and Matt Gerassimof Perl and Vim *perl* *Perl* 1. Editing Perl files |perl-editing| 2. Compiling Vim with Perl interface |perl-compiling| 3. Using the Perl interface |perl-using| 4. Dynamic loading |perl-dynamic| {only available when Vim was compiled with the |+perl| feature} ============================================================================== 1. Editing Perl files *perl-editing* Vim syntax highlighting supports Perl and POD files. Vim assumes a file is Perl code if the filename has a .pl or .pm suffix. Vim also examines the first line of a file, regardless of the filename suffix, to check if a file is a Perl script (see scripts.vim in Vim's syntax directory). Vim assumes a file is POD text if the filename has a .POD suffix. To use tags with Perl, you need a recent version of Exuberant ctags. Look here: http://ctags.sourceforge.net Alternatively, you can use the Perl script pltags.pl, which is shipped with Vim in the $VIMRUNTIME/tools directory. This script has currently more features than Exuberant ctags' Perl support. ============================================================================== 2. Compiling Vim with Perl interface *perl-compiling* To compile Vim with Perl interface, you need Perl 5.004 (or later). Perl must be installed before you compile Vim. Vim's Perl interface does NOT work with the 5.003 version that has been officially released! It will probably work with Perl 5.003_05 and later. The Perl patches for Vim were made by: Sven Verdoolaege <skimo@breughel.ufsia.ac.be> Matt Gerassimof Perl for MS-Windows (and other platforms) can be found at: http://www.perl.org/ The ActiveState one should work, Strawberry Perl is a good alternative. ============================================================================== 3. Using the Perl interface *perl-using* *:perl* *:pe* :pe[rl] {cmd} Execute Perl command {cmd}. The current package is "main". Simple example to test if `:perl` is working: > :perl VIM::Msg("Hello") :pe[rl] << [trim] [{endmarker}] {script} {endmarker} Execute Perl script {script}. The {endmarker} after {script} must NOT be preceded by any white space. If [endmarker] is omitted, it defaults to a dot '.' like for the |:append| and |:insert| commands. Using '.' helps when inside a function, because "$i;" looks like the start of an |:insert| command to Vim. This form of the |:perl| command is mainly useful for including perl code in vim scripts. Note: This command doesn't work when the Perl feature wasn't compiled in. To avoid errors, see |script-here|. Example vim script: > function! WhitePearl() perl << EOF VIM::Msg("pearls are nice for necklaces"); VIM::Msg("rubys for rings"); VIM::Msg("pythons for bags"); VIM::Msg("tcls????"); EOF endfunction < To see what version of Perl you have: > :perl print $^V < *:perldo* *:perld* :[range]perld[o] {cmd} Execute Perl 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, but note that it is not possible to add or delete lines using this command. The default for [range] is the whole file: "1,$". Here are some things you can try: > :perl $a=1 :perldo $_ = reverse($_);1 :perl VIM::Msg("hello") :perl $line = $curbuf->Get(42) < *E299* Executing Perl commands in the |sandbox| is limited. ":perldo" will not be possible at all. ":perl" will be evaluated in the Safe environment, if possible. *perl-overview* Here is an overview of the functions that are available to Perl: > :perl VIM::Msg("Text") # displays a message :perl VIM::Msg("Wrong!", "ErrorMsg") # displays an error message :perl VIM::Msg("remark", "Comment") # displays a highlighted message :perl VIM::SetOption("ai") # sets a vim option :perl $nbuf = VIM::Buffers() # returns the number of buffers :perl @buflist = VIM::Buffers() # returns array of all buffers :perl $mybuf = (VIM::Buffers('qq.c'))[0] # returns buffer object for 'qq.c' :perl @winlist = VIM::Windows() # returns array of all windows :perl $nwin = VIM::Windows() # returns the number of windows :perl ($success, $v) = VIM::Eval('&path') # $v: option 'path', $success: 1 :perl ($success, $v) = VIM::Eval('&xyz') # $v: '' and $success: 0 :perl $v = VIM::Eval('expand("<cfile>")') # expands <cfile> :perl $curwin->SetHeight(10) # sets the window height :perl @pos = $curwin->Cursor() # returns (row, col) array :perl @pos = (10, 10) :perl $curwin->Cursor(@pos) # sets cursor to @pos :perl $curwin->Cursor(10,10) # sets cursor to row 10 col 10 :perl $mybuf = $curwin->Buffer() # returns the buffer object for window :perl $curbuf->Name() # returns buffer name :perl $curbuf->Number() # returns buffer number :perl $curbuf->Count() # returns the number of lines :perl $l = $curbuf->Get(10) # returns line 10 :perl @l = $curbuf->Get(1 .. 5) # returns lines 1 through 5 :perl $curbuf->Delete(10) # deletes line 10 :perl $curbuf->Delete(10, 20) # delete lines 10 through 20 :perl $curbuf->Append(10, "Line") # appends a line :perl $curbuf->Append(10, "Line1", "Line2", "Line3") # appends 3 lines :perl @l = ("L1", "L2", "L3") :perl $curbuf->Append(10, @l) # appends L1, L2 and L3 :perl $curbuf->Set(10, "Line") # replaces line 10 :perl $curbuf->Set(10, "Line1", "Line2") # replaces lines 10 and 11 :perl $curbuf->Set(10, @l) # replaces 3 lines < *perl-Msg* VIM::Msg({msg}, {group}?) Displays the message {msg}. The optional {group} argument specifies a highlight group for Vim to use for the message. *perl-SetOption* VIM::SetOption({arg}) Sets a vim option. {arg} can be any argument that the ":set" command accepts. Note that this means that no spaces are allowed in the argument! See |:set|. *perl-Buffers* VIM::Buffers([{bn}...]) With no arguments, returns a list of all the buffers in an array context or returns the number of buffers in a scalar context. For a list of buffer names or numbers {bn}, returns a list of the buffers matching {bn}, using the same rules as Vim's internal |bufname()| function. WARNING: the list becomes invalid when |:bwipe| is used. Using it anyway may crash Vim. *perl-Windows* VIM::Windows([{wn}...]) With no arguments, returns a list of all the windows in an array context or returns the number of windows in a scalar context. For a list of window numbers {wn}, returns a list of the windows with those numbers. WARNING: the list becomes invalid when a window is closed. Using it anyway may crash Vim. *perl-DoCommand* VIM::DoCommand({cmd}) Executes Ex command {cmd}. *perl-Eval* VIM::Eval({expr}) Evaluates {expr} and returns (success, value) in list context or just value in scalar context. success=1 indicates that val contains the value of {expr}; success=0 indicates a failure to evaluate the expression. '@x' returns the contents of register x, '&x' returns the value of option x, 'x' returns the value of internal |variables| x, and '$x' is equivalent to perl's $ENV{x}. All |functions| accessible from the command-line are valid for {expr}. A |List| is turned into a string by joining the items and inserting line breaks. *perl-Blob* VIM::Blob({expr}) Return |Blob| literal string 0zXXXX from scalar value. *perl-SetHeight* Window->SetHeight({height}) Sets the Window height to {height}, within screen limits. *perl-GetCursor* Window->Cursor({row}?, {col}?) With no arguments, returns a (row, col) array for the current cursor position in the Window. With {row} and {col} arguments, sets the Window's cursor position to {row} and {col}. Note that {col} is numbered from 0, Perl-fashion, and thus is one less than the value in Vim's ruler. Window->Buffer() *perl-Buffer* Returns the Buffer object corresponding to the given Window. *perl-Name* Buffer->Name() Returns the filename for the Buffer. *perl-Number* Buffer->Number() Returns the number of the Buffer. *perl-Count* Buffer->Count() Returns the number of lines in the Buffer. *perl-Get* Buffer->Get({lnum}, {lnum}?, ...) Returns a text string of line {lnum} in the Buffer for each {lnum} specified. An array can be passed with a list of {lnum}'s specified. *perl-Delete* Buffer->Delete({lnum}, {lnum}?) Deletes line {lnum} in the Buffer. With the second {lnum}, deletes the range of lines from the first {lnum} to the second {lnum}. *perl-Append* Buffer->Append({lnum}, {line}, {line}?, ...) Appends each {line} string after Buffer line {lnum}. The list of {line}s can be an array. *perl-Set* Buffer->Set({lnum}, {line}, {line}?, ...) Replaces one or more Buffer lines with specified {lines}s, starting at Buffer line {lnum}. The list of {line}s can be an array. If the arguments are invalid, replacement does not occur. $main::curwin The current window object. $main::curbuf The current buffer object. *script-here* When using a script language in-line, you might want to skip this when the language isn't supported. But this mechanism doesn't work: > if has('perl') perl << EOF this will NOT work! EOF endif Instead, put the Perl/Python/Ruby/etc. command in a function and call that function: > if has('perl') function DefPerl() perl << EOF this works EOF endfunction call DefPerl() endif Note that "EOF" must be at the start of the line. ============================================================================== 4. Dynamic loading *perl-dynamic* On MS-Windows and Unix the Perl library can be loaded dynamically. The |:version| output then includes |+perl/dyn|. This means that Vim will search for the Perl DLL or shared library file only when needed. When you don't use the Perl interface you don't need it, thus you can use Vim without this file. MS-Windows ~ You can download Perl from http://www.perl.org. The one from ActiveState was used for building Vim. To use the Perl interface the Perl DLL must be in your search path. If Vim reports it cannot find the perl512.dll, make sure your $PATH includes the directory where it is located. The Perl installer normally does that. In a console window type "path" to see what directories are used. The 'perldll' option can be also used to specify the Perl DLL. The name of the DLL must match the Perl version Vim was compiled with. Currently the name is "perl512.dll". That is for Perl 5.12. To know for sure edit "gvim.exe" and search for "perl\d*.dll\c". Unix ~ The 'perldll' option can be used to specify the Perl shared library file instead of DYNAMIC_PERL_DLL file what was specified at compile time. The version of the shared library must match the Perl version Vim was compiled with. ============================================================================== vim:tw=78:ts=8:noet:ft=help:norl:
Save