diff options
author | Bram Moolenaar <Bram@vim.org> | 2005-02-26 23:04:13 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2005-02-26 23:04:13 +0000 |
commit | 05159a0c6a27a030c8497c5cf836977090f9e75d (patch) | |
tree | 9ccc167cf3e830e5d01aff4555f99d854cbb623b | |
parent | 5313dcb75ac76501f23d21ac94efdbeeabc860bc (diff) |
updated for version 7.0052v7.0052
57 files changed, 9095 insertions, 345 deletions
diff --git a/runtime/doc/change.txt b/runtime/doc/change.txt index 379d5e1fa3..7ed249969e 100644 --- a/runtime/doc/change.txt +++ b/runtime/doc/change.txt @@ -1,4 +1,4 @@ -*change.txt* For Vim version 7.0aa. Last change: 2005 Feb 21 +*change.txt* For Vim version 7.0aa. Last change: 2005 Feb 23 VIM REFERENCE MANUAL by Bram Moolenaar @@ -527,7 +527,7 @@ comment (starting with '"') after the ":!" command. 4.2 Substitute *:substitute* *:s* *:su* -:[range]s[ubstitute]/{pattern}/{string}/[&][#][c][e][g][p][r][i][I] [count] +:[range]s[ubstitute]/{pattern}/{string}/[flags] [count] For each line in [range] replace a match of {pattern} with {string}. For the {pattern} see |pattern|. @@ -539,31 +539,31 @@ comment (starting with '"') after the ":!" command. starting with the last line in [range]. When [range] is omitted start in the current line. Also see |cmdline-ranges|. - See |:s_flags| for the flags. + See |:s_flags| for [flags]. -:[range]s[ubstitute] [#][c][e][g][p][r][i][I] [count] -:[range]&[&][#][c][e][g][p][r][i][I] [count] *:&* +:[range]s[ubstitute] [flags] [count] +:[range]&[&][flags] [count] *:&* Repeat last :substitute with same search pattern and substitute string, but without the same flags. You - may add extra flags (see |:s_flags|). + may add [flags], see |:s_flags|. Note that after ":substitute" the '&' flag can't be used, it's recognized as a pattern separator. The space between ":substitute" and the 'c', 'g' and 'r' flags isn't required, but in scripts it's a good idea to keep it to avoid confusion. -:[range]~[&][#][c][e][g][p][r][i][I] [count] *:~* +:[range]~[&][flags] [count] *:~* Repeat last substitute with same substitute string but with last used search pattern. This is like - ":&r". See |:s_flags| for the flags. + ":&r". See |:s_flags| for [flags]. - *&* + *&* & Synonym for ":s//~/" (repeat last substitute). Note that the flags are not remembered, thus it might actually work differently. You can use ":&&" to keep the flags. - *g&* + *g&* g& Synonym for ":%s//~/&" (repeat last substitute on all lines with the same flags). Mnemonic: global substitute. {not in Vi} @@ -629,6 +629,10 @@ The flags that you can use for the substitute commands: options are not used. {not in Vi} +[n] Report the number of matches, do not actually substitute. The [c] + flag is ignored. The matches are reported as if 'report' is zero. + Useful to |count-items|. + [p] Print the line containing the last substitute. [#] Like [p] and prepend the line number. diff --git a/runtime/doc/debugger.txt b/runtime/doc/debugger.txt index b9536e68d5..5bea42a773 100644 --- a/runtime/doc/debugger.txt +++ b/runtime/doc/debugger.txt @@ -1,4 +1,4 @@ -*debugger.txt* For Vim version 7.0aa. Last change: 2005 Jan 29 +*debugger.txt* For Vim version 7.0aa. Last change: 2005 Feb 23 VIM REFERENCE MANUAL by Gordon Prieur @@ -90,8 +90,8 @@ was to allow Sun's Visual WorkShop debugger to display expression evaluations. However, the feature was implemented in as general a manner as possible and could be used for displaying other information as well. -The Balloon Evaluation has some settable parameters too. The font list and -colors can be set via X resources (XmNballoonEvalFontList, +The Balloon Evaluation has some settable parameters too. For Motif the font +list and colors can be set via X resources (XmNballoonEvalFontList, XmNballoonEvalBackground, and XmNballoonEvalForeground). The 'balloondelay' option sets the delay before an attempt is made to show a balloon. diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index 028aa089fc..1838a82258 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -1,4 +1,4 @@ -*eval.txt* For Vim version 7.0aa. Last change: 2005 Feb 21 +*eval.txt* For Vim version 7.0aa. Last change: 2005 Feb 26 VIM REFERENCE MANUAL by Bram Moolenaar @@ -961,7 +961,7 @@ variable internal variable See below |internal-variables|. -function call *expr-function* *E116* *E117* *E118* *E119* *E120* +function call *expr-function* *E116* *E118* *E119* *E120* ------------- function(expr1, ...) function call See below |functions|. @@ -1270,6 +1270,10 @@ v:prevcount The count given for the last but one Normal mode command. :vmap % <Esc>:call MyFilter(v:prevcount)<CR> < Read-only. + *v:profiling* *profiling-variable* +v:profiling Normally zero. Set to one after using ":profile start". + See |profiling|. + *v:progname* *progname-variable* v:progname Contains the name (with path removed) with which Vim was invoked. Allows you to do special initialisations for "view", @@ -1396,6 +1400,7 @@ did_filetype() Number TRUE if FileType autocommand event used diff_filler( {lnum}) Number diff filler lines about {lnum} diff_hlID( {lnum}, {col}) Number diff highlighting at {lnum}/{col} empty( {expr}) Number TRUE if {expr} is empty +errorlist() List list of quickfix items escape( {string}, {chars}) String escape {chars} in {string} with '\' eval( {string}) any evaluate {string} into its value eventhandler( ) Number TRUE if inside an event handler @@ -1965,6 +1970,28 @@ empty({expr}) *empty()* For a long List this is much faster then comparing the length with zero. +errorlist() *errorlist()* + Returns a list with all the current quickfix errors. Each + list item is a dictionary with these entries: + bufnr number of buffer that has the file name, use + bufname() to get the name + lnum line number in the buffer (first line is 1) + col column number (first column is 1) + vcol non-zero: column number is visual column + zero: column number is byte index + nr error number + text description of the error + type type of the error, 'E', '1', etc. + valid non-zero: recognized error message + + Useful application: Find pattern matches in multiple files and + do something with them: > + :vimgrep /theword/jg *.c + :for d in errorlist() + : echo bufname(d.bufnr) ':' d.lnum '=' d.text + :endfor + + escape({string}, {chars}) *escape()* Escape the characters in {chars} that occur in {string} with a backslash. Example: > @@ -3031,7 +3058,14 @@ match({expr}, {pat}[, {start}[, {count}]]) *match()* :echo match("testing", "ing") " results in 4 :echo match([1, 'x'], '\a') " results in 2 < See |string-match| for how {pat} is used. - + *strpbrk()* + Vim doesn't have a strpbrk() function. But you can do: > + :let sepidx = match(line, '[.,;: \t]') +< *strcasestr()* + Vim doesn't have a strcasestr() function. But you can add + "\c" to the pattern to ignore case: > + :let idx = match(haystack, '\cneedle') +< When {count} is given use the {count}'th match. When a match is found in a String the search for the next one starts on character further. Thus this example results in 1: > @@ -3063,6 +3097,13 @@ matchend({expr}, {pat}[, {start}[, {count}]]) *matchend()* the match. Example: > :echo matchend("testing", "ing") < results in "7". + *strspn()* *strcspn()* + Vim doesn't have a strspn() or strcspn() function, but you can + do it with matchend(): > + :let span = matchend(line, '[a-zA-Z]') + :let span = matchend(line, '[^a-zA-Z]') +< Except that -1 is returned when there are no matches. + The {start}, if given, has the same meaning as for match(). > :echo matchend("testing", "ing", 2) < results in "7". > @@ -3620,7 +3661,10 @@ stridx({haystack}, {needle} [, {start}]) *stridx()* :echo stridx("An Example", "Example") 3 :echo stridx("Starting point", "Start") 0 :echo stridx("Starting point", "start") -1 -< +< *strstr()* *strchr()* + stridx() works similar to the C function strstr(). When used + with a single character it works similar to strchr(). + *string()* string({expr}) Return {expr} converted to a String. If {expr} is a Number, String or a composition of them, then the result can be parsed @@ -3673,7 +3717,10 @@ strridx({haystack}, {needle} [, {start}]) *strridx()* If the {needle} is empty the length of {haystack} is returned. See also |stridx()|. Examples: > :echo strridx("an angry armadillo", "an") 3 -< +< *strrchr()* + When used with a single character it works similar to the C + function strrchr(). + strtrans({expr}) *strtrans()* The result is a String, which is {expr} with all unprintable characters translated into printable characters |'isprint'|. @@ -3769,7 +3816,7 @@ system({expr} [, {input}]) *system()* *E677* When {input} is given, this string is written to a file and passed as stdin to the command. The string is written as-is, you need to take care of using the correct line separators - yourself. + yourself. Pipes are not used. Note: newlines in {expr} may cause the command to fail. The characters in 'shellquote' and 'shellxquote' may also cause trouble. @@ -4081,6 +4128,7 @@ path_extra Compiled with up/downwards search in 'path' and 'tags' perl Compiled with Perl interface. postscript Compiled with PostScript file printing. printer Compiled with |:hardcopy| support. +profile Compiled with |:profile| support. python Compiled with Python interface. qnx QNX version of Vim. quickfix Compiled with |quickfix| support. @@ -4384,6 +4432,8 @@ the "autoload" directory in 'runtimepath'. Using an autocommand ~ +This is introduced in the user manual, section |41.14|. + The autocommand is useful if you have a plugin that is a long Vim script file. You can define the autocommand and quickly quit the script with |:finish|. That makes Vim startup faster. The autocommand should then load the same file @@ -4400,6 +4450,8 @@ The file "~/vim/bufnetfuncs.vim" should then define functions that start with Using an autoload script ~ *autoload* *E746* +This is introduced in the user manual, section |41.15|. + Using a script in the "autoload" directory is simpler, but requires using exactly the right file name. A function that can be autoloaded has a name like this: > diff --git a/runtime/doc/indent.txt b/runtime/doc/indent.txt index 5fc7b06fb9..bd4bb4119b 100644 --- a/runtime/doc/indent.txt +++ b/runtime/doc/indent.txt @@ -1,4 +1,4 @@ -*indent.txt* For Vim version 7.0aa. Last change: 2004 Sep 02 +*indent.txt* For Vim version 7.0aa. Last change: 2005 Feb 24 VIM REFERENCE MANUAL by Bram Moolenaar @@ -485,6 +485,20 @@ to get do loops indented in .f90 files and left alone in Fortran files with other extensions such as .for. +PYTHON *python-indent* + +The amount of indent can be set for the following situations. The examples +given are de the defaults. Note that the variables are set to an expression, +so that you can change the value of 'shiftwidth' later. + +Indent after an open paren: > + let g:pyindent_open_paren = '&sw * 2' +Indent after a nested paren: > + let g:pyindent_nested_paren = '&sw' +Indent for a continuation line: > + let g:pyindent_continue = '&sw * 2' + + VERILOG *verilog-indent* General block statements such as if, for, case, always, initial, function, diff --git a/runtime/doc/index.txt b/runtime/doc/index.txt index 5484ebc2ab..7735e37fe1 100644 --- a/runtime/doc/index.txt +++ b/runtime/doc/index.txt @@ -1,4 +1,4 @@ -*index.txt* For Vim version 7.0aa. Last change: 2005 Jan 31 +*index.txt* For Vim version 7.0aa. Last change: 2005 Feb 25 VIM REFERENCE MANUAL by Bram Moolenaar @@ -1258,10 +1258,13 @@ The commands are sorted on the non-optional part of their name. |:options| :opt[ions] open the options-window |:ounmap| :ou[nmap] like ":unmap" but for Operator-pending mode |:ounmenu| :ounme[nu] remove menu for Operator-pending mode -|:print| :p[rint] print lines |:pclose| :pc[lose] close preview window |:pedit| :ped[it] edit file in the preview window |:perl| :pe[rl] execute Perl command +|:print| :p[rint] print lines +|:profile| :prof[ile] profiling functions and scripts +|:promptfind| :pro[mtfind] open GUI dialog for searching +|:promptrepl| :promtr[epl] open GUI dialog for search/replace |:perldo| :perld[o] execute Perl command for each line |:pop| :po[p] jump to older entry in tag stack |:popup| :pop[up] popup a menu by name diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt index e8b4a9d155..4bf27f66df 100644 --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -1,4 +1,4 @@ -*options.txt* For Vim version 7.0aa. Last change: 2005 Feb 21 +*options.txt* For Vim version 7.0aa. Last change: 2005 Feb 23 VIM REFERENCE MANUAL by Bram Moolenaar @@ -2986,7 +2986,8 @@ A jump table for the options with a short description can be found at |Q_op|. font names a list can be specified, font names separated with commas. The first valid font is used. - When 'guifontset' is not empty, 'guifont' is not used. + On systems where 'guifontset' is supported (X11) and 'guifontset' is + not empty, then 'guifont' is not used. Spaces after a comma are ignored. To include a comma in a font name precede it with a backslash. Setting an option requires an extra @@ -3003,7 +3004,7 @@ A jump table for the options with a short description can be found at |Q_op|. the case of X). The font names given should be "normal" fonts. Vim will try to find the related bold and italic fonts. - For Win32, GTK and Photon only: > + For Win32, GTK, Mac OS and Photon: > :set guifont=* < will bring up a font requester, where you can pick the font you want. @@ -3013,7 +3014,10 @@ A jump table for the options with a short description can be found at |Q_op|. For the GTK+ 2 GUI the font name looks like this: > :set guifont=Andale\ Mono\ 11 < That's all. XLFDs are no longer accepted. - *E236* + + For Mac OSX you can use something like this: > + :set guifont=Monaco:h10 +< *E236* Note that the fonts must be mono-spaced (all characters have the same width). An exception is GTK 2: all fonts are accepted, but mono-spaced fonts look best. diff --git a/runtime/doc/quickfix.txt b/runtime/doc/quickfix.txt index ee61f6a26b..f9a56af898 100644 --- a/runtime/doc/quickfix.txt +++ b/runtime/doc/quickfix.txt @@ -1,4 +1,4 @@ -*quickfix.txt* For Vim version 7.0aa. Last change: 2005 Feb 06 +*quickfix.txt* For Vim version 7.0aa. Last change: 2005 Feb 24 VIM REFERENCE MANUAL by Bram Moolenaar @@ -30,6 +30,11 @@ The idea is to save the error messages from the compiler in a file and use Vim to jump to the errors one by one. You can examine each problem and fix it, without having to remember all the error messages. +In Vim the quickfix commands are used more generally to find a list of +positions in files. For example, |:vimgrep| finds pattern matches. You can +use the positions in a script with the |errorlist()| function. Thus you can +do a lot more than the edit/compile/fix cycle! + If you are using Manx's Aztec C compiler on the Amiga look here for how to use it with Vim: |quickfix-manx|. If you are using another compiler you should save the error messages in a file and start Vim with "vim -q filename". An @@ -170,12 +175,14 @@ height manually (e.g., by dragging the status line above it with the mouse). In the quickfix window, each line is one error. The line number is equal to the error number. You can use ":.cc" to jump to the error under the cursor. -Hitting the <CR> key or double-clicking the mouse on a line has the same +Hitting the <Enter> key or double-clicking the mouse on a line has the same effect. The file containing the error is opened in the window above the quickfix window. If there already is a window for that file, it is used instead. If the buffer in the used window has changed, and the error is in another file, jumping to the error will fail. You will first have to make sure the window contains a buffer which can be abandoned. + *CTRL-W_<Enter>* *CTRL-W_<CR>* +You can use CTRL-W <Enter> to open a new window and jump to the error there. When the quickfix window has been filled, two autocommand events are triggered. First the 'filetype' option is set to "qf", which triggers the @@ -303,16 +310,25 @@ advantages are: 5.1 using Vim's internal grep *:vim* *:vimgrep* *E682* *E683* -:vim[grep][!] /{pattern}/ {file} ... +:vim[grep][!] /{pattern}/[g][j] {file} ... Search for {pattern} in the files {file} ... and set the error list to the matches. - {pattern} if a Vim search pattern. Instead of - enclosing it in / any non-ID character |'isident'| - can be used, so long as it does not appear in - {pattern}. - 'ignorecase' applies. To overrule it use |/\c| to - ignore case or |/\C| to match case. 'smartcase' is - not used. + Without the 'g' flag each line is added only once. + With 'g' every match is added. + + {pattern} is a Vim search pattern. Instead of + enclosing it in / any non-ID character (see + |'isident'|) can be used, so long as it does not + appear in {pattern}. + 'ignorecase' applies. To overrule it put |/\c| in the + pattern to ignore case or |/\C| to match case. + 'smartcase' is not used. + + Without the 'j' flag Vim jumps to the first match. + With 'j' only the quickfix list is updated. + With the [!] any changes in the current buffer are + abandoned. + Every second or so the searched file name is displayed to give you an idea of the progress made. Examples: > @@ -327,7 +343,8 @@ advantages are: :vimgrep Error *.c < *:vimgrepa* *:vimgrepadd* -:vimgrepa[dd][!] [/]{pattern}[/] {file} ... +:vimgrepa[dd][!] /{pattern}/[g][j] {file} ... +:vimgrepa[dd][!] {pattern} {file} ... Just like ":vimgrep", but instead of making a new list of errors the matches are appended to the current list. @@ -462,7 +479,7 @@ not "b:current_compiler". What the command actually does is the following: - Execute ":runtime! compiler/{name}.vim". The plugins are expected to set options with "CompilerSet" and set the "current_compiler" variable to the name of the compiler. -- Delete the "CompilerSet user command. +- Delete the "CompilerSet" user command. - Set "b:current_compiler" to the value of "current_compiler". - Without "!" the old value of "current_compiler" is restored. diff --git a/runtime/doc/repeat.txt b/runtime/doc/repeat.txt index 04fb0ada38..b165bf123c 100644 --- a/runtime/doc/repeat.txt +++ b/runtime/doc/repeat.txt @@ -1,4 +1,4 @@ -*repeat.txt* For Vim version 7.0aa. Last change: 2005 Feb 19 +*repeat.txt* For Vim version 7.0aa. Last change: 2005 Feb 26 VIM REFERENCE MANUAL by Bram Moolenaar @@ -13,6 +13,7 @@ Chapter 26 of the user manual introduces repeating |usr_26.txt|. 3. Complex repeats |complex-repeat| 4. Using Vim scripts |using-scripts| 5. Debugging scripts |debug-scripts| +6. Profiling |profiling| ============================================================================== 1. Single repeats *single-repeat* @@ -483,6 +484,7 @@ DEFINING BREAKPOINTS The [lnum] is the line number of the breakpoint. Vim will stop at or after this line. When omitted line 1 is used. + *:debug-name* {name} is a pattern that is matched with the file or function name. The pattern is like what is used for autocommands. There must be a full match (as if the pattern starts with "^" and ends in "$"). A "*" matches any sequence @@ -547,4 +549,88 @@ OBSCURE Undo ":debuggreedy": get debug mode commands directly from the user, don't use typeahead for debug commands. +============================================================================== +6. Profiling *profile* *profiling* + +Profiling means that Vim measures the time that is spend on executing +functions and/or scripts. The |+profile| feature is required for this. +It is only included when Vim was compiled with "huge" features. +{Vi does not have profiling} + +:prof[ile] start {fname} *:prof* *:profile* *E750* + Start profiling, write the output in {fname} upon exit. + If {fname} already exists it will be overwritten. + The variable |v:profiling| is set to one. + +:prof[ile] func {pattern} + Profile function that matches the pattern {pattern}. + See |:debug-name| for how {pattern} is used. + +:prof[ile][!] file {pattern} + Profile script file that matches the pattern {pattern}. + See |:debug-name| for how {pattern} is used. + This only profiles the script itself, not the functions + defined in it. + When the [!] is added then all functions defined in the script + will also be profiled. + + +You must always start with a ":profile start fname" command. The resulting +file is written when Vim exits. Here is an example of the output, with line +numbers prepended for the explanation: + + 1 FUNCTION Test2() ~ + 2 Called 1 time ~ + 3 Total time: 0.155251 ~ + 4 Self time: 0.002006 ~ + 5 ~ + 6 count total (s) self (s) ~ + 7 9 0.000096 for i in range(8) ~ + 8 8 0.153655 0.000410 call Test3() ~ + 9 8 0.000070 endfor ~ + 10 " Ask a question ~ + 11 1 0.001341 echo input("give me an answer: ") ~ + +The header (lines 1-4) gives the time for the whole function. The "Total" +time is the time passed while the function was executing. The "Self" time is +the "Total" time reduced by time spent in: +- other user defined functions +- sourced scripts +- executed autocommands +- external (shell) commands + +Lines 7-11 show the time spent in each executed line. Lines that are not +executed do not count. Thus a comment line is never counted. + +The Count column shows how many times a line was executed. Note that the +"for" command in line 7 is executed one more time as the following lines. +That is because the line is also executed to detect the end of the loop. + +The time Vim spends waiting for user input isn't counted at all. Thus how +long you take to respond to the input() prompt is irrelevant. + +Profiling should give a good indication of where time is spent, but keep in +mind there are various things that may clobber the results: + +- The accuracy of the time measured depends on the gettimeofday() system + function. It may only be as accurate as 1/100 second, even though the times + are displayed in micro seconds. + +- Real elapsed time is measured, if other processes are busy they may cause + delays at unpredictable moments. You may want to run the profiling several + times and use the lowest results. + +- If you have several commands in one line you only get one time. Split the + line to see the time for the individual commands. + +- The time of the lines added up is mostly less than the time of the whole + function. There is some overhead in between. + +- Functions that are deleted before Vim exits will not produce profiling + information. You can check the |v:profiling| variable if needed: > + :if !v:profiling + : delfunc MyFunc |