aboutsummaryrefslogtreecommitdiff
path: root/runtime/doc
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/doc')
-rw-r--r--runtime/doc/autocmd.txt20
-rw-r--r--runtime/doc/change.txt22
-rw-r--r--runtime/doc/cmdline.txt14
-rw-r--r--runtime/doc/editing.txt80
-rw-r--r--runtime/doc/eval.txt203
-rw-r--r--runtime/doc/index.txt2
-rw-r--r--runtime/doc/insert.txt4
-rw-r--r--runtime/doc/options.txt85
-rw-r--r--runtime/doc/quickfix.txt64
-rw-r--r--runtime/doc/quickref.txt1
-rw-r--r--runtime/doc/syntax.txt45
-rw-r--r--runtime/doc/tagsrch.txt31
-rw-r--r--runtime/doc/usr_29.txt3
-rw-r--r--runtime/doc/vim_diff.txt16
-rw-r--r--runtime/doc/windows.txt18
15 files changed, 402 insertions, 206 deletions
diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt
index 7dfc1d5d2f..1aa2a626aa 100644
--- a/runtime/doc/autocmd.txt
+++ b/runtime/doc/autocmd.txt
@@ -1,4 +1,4 @@
-*autocmd.txt* For Vim version 7.4. Last change: 2015 Aug 05
+*autocmd.txt* For Vim version 7.4. Last change: 2015 Aug 18
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -770,13 +770,15 @@ OptionSet After setting an option. The pattern is
it's global or local scoped and |<amatch>|
indicates what option has been set.
- Note: It's a bad idea, to reset an option
- during this autocommand, since this will
- probably break plugins. You can always use
- |:noa| to prevent triggering this autocommand.
- Could be used, to check for existence of the
- 'backupdir' and 'undodir' options and create
- directories, if they don't exist yet.
+ Usage example: Check for the existence of the
+ directory in the 'backupdir' and 'undodir'
+ options, create the directory if it doesn't
+ exist yet.
+
+ Note: It's a bad idea to reset an option
+ during this autocommand, this may break a
+ plugin. You can always use `:noa` to prevent
+ triggering this autocommand.
*QuickFixCmdPre*
QuickFixCmdPre Before a quickfix command is run (|:make|,
@@ -1100,7 +1102,7 @@ Instead of a pattern buffer-local autocommands use one of these forms:
Examples: >
:au CursorHold <buffer> echo 'hold'
:au CursorHold <buffer=33> echo 'hold'
- :au BufNewFile * CursorHold <buffer=abuf> echo 'hold'
+ :au BufNewFile * au CursorHold <buffer=abuf> echo 'hold'
All the commands for autocommands also work with buffer-local autocommands,
simply use the special string instead of the pattern. Examples: >
diff --git a/runtime/doc/change.txt b/runtime/doc/change.txt
index cc32187840..56b45497dc 100644
--- a/runtime/doc/change.txt
+++ b/runtime/doc/change.txt
@@ -1,4 +1,4 @@
-*change.txt* For Vim version 7.4. Last change: 2015 Aug 04
+*change.txt* For Vim version 7.4. Last change: 2015 Sep 06
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1102,7 +1102,7 @@ Rationale: In Vi the "y" command followed by a backwards motion would
With a linewise yank command the cursor is put in the first line, but the
column is unmodified, thus it may not be on the first yanked character.
-There are nine types of registers: *registers* *E354*
+There are ten types of registers: *registers* *E354*
1. The unnamed register ""
2. 10 numbered registers "0 to "9
3. The small delete register "-
@@ -1646,7 +1646,7 @@ Vim has a sorting function and a sorting command. The sorting function can be
found here: |sort()|, |uniq()|.
*:sor* *:sort*
-:[range]sor[t][!] [i][u][r][n][x][o][b] [/{pattern}/]
+:[range]sor[t][!] [b][f][i][n][o][r][u][x] [/{pattern}/]
Sort lines in [range]. When no range is given all
lines are sorted.
@@ -1654,10 +1654,18 @@ found here: |sort()|, |uniq()|.
With [i] case is ignored.
+ Options [n][f][x][o][b] are mutually exclusive.
+
With [n] sorting is done on the first decimal number
in the line (after or inside a {pattern} match).
One leading '-' is included in the number.
+ With [f] sorting is done on the Float in the line.
+ The value of Float is determined similar to passing
+ the text (after or inside a {pattern} match) to
+ str2float() function. This option is available only
+ if Vim was compiled with Floating point support.
+
With [x] sorting is done on the first hexadecimal
number in the line (after or inside a {pattern}
match). A leading "0x" or "0X" is ignored.
@@ -1669,10 +1677,10 @@ found here: |sort()|, |uniq()|.
With [b] sorting is done on the first binary number in
the line (after or inside a {pattern} match).
- With [u] only keep the first of a sequence of
- identical lines (ignoring case when [i] is used).
- Without this flag, a sequence of identical lines
- will be kept in their original order.
+ With [u] (u stands for unique) only keep the first of
+ a sequence of identical lines (ignoring case when [i]
+ is used). Without this flag, a sequence of identical
+ lines will be kept in their original order.
Note that leading and trailing white space may cause
lines to be different.
diff --git a/runtime/doc/cmdline.txt b/runtime/doc/cmdline.txt
index f6fdc22da4..5e02c44709 100644
--- a/runtime/doc/cmdline.txt
+++ b/runtime/doc/cmdline.txt
@@ -1,4 +1,4 @@
-*cmdline.txt* For Vim version 7.4. Last change: 2015 Jul 28
+*cmdline.txt* For Vim version 7.4. Last change: 2015 Sep 25
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -779,12 +779,12 @@ Note: these are typed literally, they are not special keys!
(for FileType, Syntax and SpellFileMissing events).
<sfile> When executing a ":source" command, is replaced with the
file name of the sourced file. *E498*
- When executing a function, is replaced with
- "function {function-name}"; function call nesting is
- indicated like this:
- "function {function-name1}..{function-name2}". Note that
- filename-modifiers are useless when <sfile> is used inside
- a function.
+ When executing a function, is replaced with:
+ "function {function-name}[{lnum}]"
+ function call nesting is indicated like this:
+ "function {function-name1}[{lnum}]..{function-name2}[{lnum}]"
+ Note that filename-modifiers are useless when <sfile> is
+ used inside a function.
<slnum> When executing a ":source" command, is replaced with the
line number. *E842*
When executing a function it's the line number relative to
diff --git a/runtime/doc/editing.txt b/runtime/doc/editing.txt
index 7dea905c2b..0ad917006f 100644
--- a/runtime/doc/editing.txt
+++ b/runtime/doc/editing.txt
@@ -1,4 +1,4 @@
-*editing.txt* For Vim version 7.4. Last change: 2015 Jul 28
+*editing.txt* For Vim version 7.4. Last change: 2015 Aug 25
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -381,6 +381,7 @@ Finds files:
On Unix and a few other systems you can also use backticks for the file name
argument, for example: >
:next `find . -name ver\\*.c -print`
+ :view `ls -t *.patch \| head -n1`
The backslashes before the star are required to prevent the shell from
expanding "ver*.c" prior to execution of the find program. The backslash
before the shell pipe symbol "|" prevents Vim from parsing it as command
@@ -398,13 +399,11 @@ The expression can contain just about anything, thus this can also be used to
avoid the special meaning of '"', '|', '%' and '#'. However, 'wildignore'
does apply like to other wildcards.
-Environment variables are expanded before evaluating the expression, thus this
-does not work: >
- :e `=$HOME . '.vimrc'`
-Because $HOME is expanding early, resulting in: >
- :e `=/home/user . '.vimrc'`
-This does work: >
- :e `=expand('$HOME') . '.vimrc'`
+Environment variables in the expression are expanded when evaluating the
+expression, thus this works: >
+ :e `=$HOME . '/.vimrc'`
+This does not work, $HOME is inside a string and used literally: >
+ :e `='$HOME' . '/.vimrc'`
If the expression returns a string then names are to be separated with line
breaks. When the result is a |List| then each item is used as a name. Line
@@ -1217,12 +1216,18 @@ use has("browsefilter"): >
==============================================================================
7. The current directory *current-directory*
-You may use the |:cd| and |:lcd| commands to change to another directory, so
-you will not have to type that directory name in front of the file names. It
-also makes a difference for executing external commands, e.g. ":!ls".
+You can use |:cd|, |:tcd| and |:lcd| to change to another directory, so you
+will not have to type that directory name in front of the file names. It also
+makes a difference for executing external commands, e.g. ":!ls" or ":te ls".
-Changing directory fails when the current buffer is modified, the '.' flag is
-present in 'cpoptions' and "!" is not used in the command.
+There are three current-directory "scopes": global, tab and window. The
+window-local working directory takes precedence over the tab-local
+working directory, which in turn takes precedence over the global
+working directory. If a local working directory (tab or window) does not
+exist, the next-higher scope in the hierarchy applies.
+
+Commands for changing the working directory can be suffixed with a bang "!"
+(e.g. |:cd!|) which is ignored, for compatibility with Vim.
*:cd* *E747* *E472*
:cd[!] On non-Unix systems: Print the current directory
@@ -1247,29 +1252,50 @@ present in 'cpoptions' and "!" is not used in the command.
*:chd* *:chdir*
:chd[ir][!] [path] Same as |:cd|.
+ *:tc* *:tcd* *E5000* *E5001* *E5002*
+:tc[d][!] {path} Like |:cd|, but set the current directory for the
+ current tab and window. The current directory for
+ other tabs and windows is not changed.
+
+ *:tcd-*
+:tcd[!] - Change to the previous current directory (before the
+ previous ":tcd {path}" command).
+
+ *:tch* *:tchdir*
+:tch[dir][!] Same as |:tcd|.
+
*:lc* *:lcd*
:lc[d][!] {path} Like |:cd|, but only set the current directory for the
current window. The current directory for other
- windows is not changed.
+ windows or any tabs is not changed.
*:lch* *:lchdir*
:lch[dir][!] Same as |:lcd|.
+ *:lcd-*
+:lcd[!] - Change to the previous current directory (before the
+ previous ":tcd {path}" command).
+
*:pw* *:pwd* *E187*
:pw[d] Print the current directory name.
Also see |getcwd()|.
-So long as no |:lcd| command has been used, all windows share the same current
-directory. Using a command to jump to another window doesn't change anything
-for the current directory.
-When a |:lcd| command has been used for a window, the specified directory
-becomes the current directory for that window. Windows where the |:lcd|
-command has not been used stick to the global current directory. When jumping
-to another window the current directory will become the last specified local
-current directory. If none was specified, the global current directory is
-used.
-When a |:cd| command is used, the current window will lose his local current
-directory and will use the global current directory from now on.
+So long as no |:tcd| or |:lcd| command has been used, all windows share the
+same "current directory". Using a command to jump to another window doesn't
+change anything for the current directory.
+
+When |:lcd| has been used for a window, the specified directory becomes the
+current directory for that window. Windows where the |:lcd| command has not
+been used stick to the global or tab-local directory. When jumping to another
+window the current directory will become the last specified local current
+directory. If none was specified, the global or tab-local directory is used.
+
+When changing tabs the same behaviour applies. If the current tab has no
+local working directory the global working directory is used. When a |:cd|
+command is used, the current window and tab will lose their local current
+directories and will use the global current directory from now on. When
+a |:tcd| command is used, only the current window will lose its local working
+directory.
After using |:cd| the full path name will be used for reading and writing
files. On some networked file systems this may cause problems. The result of
@@ -1318,9 +1344,7 @@ There are a few things to remember when editing binary files:
9. Encryption *encryption*
*:X* *E817* *E818* *E819* *E820*
-Support for editing encrypted files has been removed, but may be added back in
-the future. See the following discussions for more information:
-
+Support for editing encrypted files has been removed.
https://github.com/neovim/neovim/issues/694
https://github.com/neovim/neovim/issues/701
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index cf1394d799..e341a2247a 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt* For Vim version 7.4. Last change: 2015 Jul 21
+*eval.txt* For Vim version 7.4. Last change: 2016 Jan 16
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1418,6 +1418,13 @@ v:exception The value of the exception most recently caught and not
:endtry
< Output: "caught oops".
+ *v:false* *false-variable*
+v:false Special value used to put "false" in JSON and msgpack. See
+ |json_encode()|. This value is converted to "false" when used
+ as a String (e.g. in |expr5| with string concatenation
+ operator) and to zero when used as a Number (e.g. in |expr5|
+ or |expr7| when used with numeric operators).
+
*v:fcs_reason* *fcs_reason-variable*
v:fcs_reason The reason why the |FileChangedShell| event was triggered.
Can be used in an autocommand to decide what to do and/or what
@@ -1557,6 +1564,13 @@ v:msgpack_types Dictionary containing msgpack types used by |msgpackparse()|
(not editable) empty lists. To check whether some list is one
of msgpack types, use |is| operator.
+ *v:null* *null-variable*
+v:null Special value used to put "null" in JSON and NIL in msgpack.
+ See |json_encode()|. This value is converted to "null" when
+ used as a String (e.g. in |expr5| with string concatenation
+ operator) and to zero when used as a Number (e.g. in |expr5|
+ or |expr7| when used with numeric operators).
+
*v:oldfiles* *oldfiles-variable*
v:oldfiles List of file names that is loaded from the |shada| file on
startup. These are the files that Vim remembers marks for.
@@ -1722,6 +1736,13 @@ v:throwpoint The point where the exception most recently caught and not
:endtry
< Output: "Exception from test.vim, line 2"
+ *v:true* *true-variable*
+v:true Special value used to put "true" in JSON and msgpack. See
+ |json_encode()|. This value is converted to "true" when used
+ as a String (e.g. in |expr5| with string concatenation
+ operator) and to one when used as a Number (e.g. in |expr5| or
+ |expr7| when used with numeric operators).
+
*v:val* *val-variable*
v:val Value of the current item of a |List| or |Dictionary|. Only
valid while evaluating the expression used with |map()| and
@@ -1742,7 +1763,8 @@ v:version Version number of Vim: Major version number times 100 plus
v:warningmsg Last given warning message. It's allowed to set this variable.
*v:windowid* *windowid-variable* {Nvim}
-v:windowid Is a no-op at the moment; the value is always set to 0.
+v:windowid Application-specific window ID ("window handle" in MS-Windows)
+ which may be set by any attached UI. Defaults to zero.
Note: for windows inside Vim use |winnr()|.
==============================================================================
@@ -1779,7 +1801,7 @@ bufexists( {expr}) Number TRUE if buffer {expr} exists
buflisted( {expr}) Number TRUE if buffer {expr} is listed
bufloaded( {expr}) Number TRUE if buffer {expr} is loaded
bufname( {expr}) String Name of the buffer {expr}
-bufnr( {expr}) Number Number of the buffer {expr}
+bufnr( {expr} [, {create}]) Number Number of the buffer {expr}
bufwinnr( {expr}) Number window number of buffer {expr}
byte2line( {byte}) Number line number at byte count {byte}
byteidx( {expr}, {nr}) Number byte index of {nr}'th char in {expr}
@@ -1808,7 +1830,7 @@ cursor( {lnum}, {col} [, {off}])
Number move cursor to {lnum}, {col}, {off}
cursor( {list}) Number move cursor to position in {list}
deepcopy( {expr} [, {noref}]) any make a full copy of {expr}
-delete( {fname}) Number delete file {fname}
+delete( {fname} [, {flags}]) Number delete the file or directory {fname}
dictwatcheradd( {dict}, {pattern}, {callback})
Start watching a dictionary
dictwatcherdel( {dict}, {pattern}, {callback})
@@ -1864,7 +1886,7 @@ getcmdpos() Number return cursor position in command-line
getcmdtype() String return current command-line type
getcmdwintype() String return current command-line window type
getcurpos() List position of the cursor
-getcwd() String the current working directory
+getcwd( [{scope}]) String the current working directory
getfontname( [{name}]) String name of font being used
getfperm( {fname}) String file permissions of file {fname}
getfsize( {fname}) Number size in bytes of file {fname}
@@ -1932,6 +1954,8 @@ jobstart( {cmd}[, {opts}]) Number Spawns {cmd} as a job
jobstop( {job}) Number Stops a job
jobwait( {ids}[, {timeout}]) Number Wait for a set of jobs
join( {list} [, {sep}]) String join {list} items into one String
+json_decode( {expr}) any Convert {expr} from JSON
+json_encode( {expr}) String Convert {expr} to JSON
keys( {dict}) List keys in {dict}
len( {expr}) Number the length of {expr}
libcall( {lib}, {func}, {arg}) String call {func} in library {lib} with {arg}
@@ -2222,17 +2246,17 @@ assert_equal({expected}, {actual}, [, {msg}])
assert_false({actual}, [, {msg}]) *assert_false()*
When {actual} is not false an error message is added to
- |v:errors|, like with |assert_equal()|..
- A value is false when it is zero. When "{actual}" is not a
- number the assert fails.
+ |v:errors|, like with |assert_equal()|.
+ A value is false when it is zero or |v:false|. When "{actual}"
+ is not a number or |v:false| the assert fails.
When {msg} is omitted an error in the form "Expected False but
got {actual}" is produced.
assert_true({actual}, [, {msg}]) *assert_true()*
When {actual} is not true an error message is added to
- |v:errors|, like with |assert_equal()|..
- A value is true when it is a non-zeron number. When {actual}
- is not a number the assert fails.
+ |v:errors|, like with |assert_equal()|.
+ A value is true when it is a non-zero number or |v:true|.
+ When {actual} is not a number or |v:true| the assert fails.
When {msg} is omitted an error in the form "Expected True but
got {actual}" is produced.
@@ -2746,13 +2770,19 @@ deepcopy({expr}[, {noref}]) *deepcopy()* *E698*
{noref} set to 1 will fail.
Also see |copy()|.
-delete({fname}) *delete()*
- Deletes the file by the name {fname}. The result is a Number,
- which is 0 if the file was deleted successfully, and non-zero
- when the deletion failed.
- Use |remove()| to delete an item from a |List|.
- To delete a line from the buffer use |:delete|. Use |:exe|
- when the line number is in a variable.
+delete({fname} [, {flags}]) *delete()*
+ Without {flags} or with {flags} empty: Deletes the file by the
+ name {fname}. This also works when {fname} is a symbolic link.
+ A symbolic link itself is deleted, not what it points to.
+
+ When {flags} is "d": Deletes the directory by the name
+ {fname}. This fails when directory {fname} is not empty.
+
+ When {flags} is "rf": Deletes the directory by the name
+ {fname} and everything in it, recursively. BE CAREFUL!
+
+ The result is a Number, which is 0 if the delete operation was
+ successful and -1 when the deletion failed or partly failed.
dictwatcheradd({dict}, {pattern}, {callback}) *dictwatcheradd()*
Adds a watcher to a dictionary. A dictionary watcher is
@@ -2826,9 +2856,8 @@ diff_hlID({lnum}, {col}) *diff_hlID()*
empty({expr}) *empty()*
Return the Number 1 if {expr} is empty, zero otherwise.
A |List| or |Dictionary| is empty when it does not have any
- items. A Number is empty when its value is zero.
- For a long |List| this is much faster than comparing the
- length with zero.
+ items. A Number is empty when its value is zero. Special
+ variable is empty when it is |v:false| or |v:null|.
escape({string}, {chars}) *escape()*
Escape the characters in {chars} that occur in {string} with a
@@ -3536,9 +3565,18 @@ getcurpos() Get the position of the cursor. This is like getpos('.'), but
MoveTheCursorAround
call setpos('.', save_cursor)
<
- *getcwd()*
-getcwd() The result is a String, which is the name of the current
- working directory.
+getcwd([{window}[, {tab}]]) *getcwd()*
+ With no arguments the result is a String, which is the name of
+ the current effective working directory. With {window} or
+ {tab} the working directory of that scope is returned.
+ Tabs and windows are identified by their respective numbers,
+ 0 means current tab or window. Missing argument implies 0.
+ Thus the following are equivalent: >
+ getcwd()
+ getcwd(0)
+ getcwd(0, 0)
+< If {window} is -1 it is ignored, only the tab is resolved.
+
getfsize({fname}) *getfsize()*
The result is a Number, which is the size in bytes of the
@@ -3873,9 +3911,18 @@ has_key({dict}, {key}) *has_key()*
The result is a Number, which is 1 if |Dictionary| {dict} has
an entry with key {key}. Zero otherwise.
-haslocaldir() *haslocaldir()*
- The result is a Number, which is 1 when the current
- window has set a local path via |:lcd|, and 0 otherwise.
+haslocaldir([{window}[, {tab}]]) *haslocaldir()*
+ The result is a Number, which is 1 when the specified tabpage
+ or window has a local path set via |:lcd| or |:tcd|, and
+ 0 otherwise.
+
+ Tabs and windows are identified by their respective numbers,
+ 0 means current tab or window. Missing argument implies 0.
+ Thus the following are equivalent: >
+ haslocaldir()
+ haslocaldir(0)
+ haslocaldir(0, 0)
+< If {window} is -1 it is ignored, only the tab is resolved.
hasmapto({what} [, {mode} [, {abbr}]]) *hasmapto()*
The result is a Number, which is 1 if there is a mapping that
@@ -4291,6 +4338,46 @@ join({list} [, {sep}]) *join()*
converted into a string like with |string()|.
The opposite function is |split()|.
+json_decode({expr}) *json_decode()*
+ Convert {expr} from JSON object. Accepts |readfile()|-style
+ list as the input, as well as regular string. May output any
+ Vim value. When 'encoding' is not UTF-8 string is converted
+ from UTF-8 to 'encoding', failing conversion fails
+ json_decode(). In the following cases it will output
+ |msgpack-special-dict|:
+ 1. Dictionary contains duplicate key.
+ 2. Dictionary contains empty key.
+ 3. String contains NUL byte. Two special dictionaries: for
+ dictionary and for string will be emitted in case string
+ with NUL byte was a dictionary key.
+
+ Note: function treats its input as UTF-8 always regardless of
+ 'encoding' value. This is needed because JSON source is
+ supposed to be external (e.g. |readfile()|) and JSON standard
+ allows only a few encodings, of which UTF-8 is recommended and
+ the only one required to be supported. Non-UTF-8 characters
+ are an error.
+
+json_encode({expr}) *json_encode()*
+ Convert {expr} into a JSON string. Accepts
+ |msgpack-special-dict| as the input. Converts from 'encoding'
+ to UTF-8 when encoding strings. Will not convert |Funcref|s,
+ mappings with non-string keys (can be created as
+ |msgpack-special-dict|), values with self-referencing
+ containers, strings which contain non-UTF-8 characters,
+ pseudo-UTF-8 strings which contain codepoints reserved for
+ surrogate pairs (such strings are not valid UTF-8 strings).
+ When converting 'encoding' is taken into account, if it is not
+ "utf-8", then conversion is performed before encoding strings.
+ Non-printable characters are converted into "\u1234" escapes
+ or special escapes like "\t", other are dumped as-is.
+
+ Note: all characters above U+0079 are considered non-printable
+ when 'encoding' is not UTF-8. This function always outputs
+ UTF-8 strings as required by the standard thus when 'encoding'
+ is not unicode resulting string will look incorrect if
+ "\u1234" notation is not used.
+
keys({dict}) *keys()*
Return a |List| with all the keys of {dict}. The |List| is in
arbitrary order.
@@ -4818,7 +4905,7 @@ msgpackdump({list}) {Nvim} *msgpackdump()*
(dictionary with zero items is represented by 0x80 byte in
messagepack).
- Limitations: *E951* *E952*
+ Limitations: *E951* *E952* *E953*
1. |Funcref|s cannot be dumped.
2. Containers that reference themselves cannot be dumped.
3. Dictionary keys are always dumped as STR strings.
@@ -4853,9 +4940,13 @@ msgpackparse({list}) {Nvim} *msgpackparse()*
contains name of the key from |v:msgpack_types|):
Key Value ~
- nil Zero, ignored when dumping.
- boolean One or zero. When dumping it is only checked that
- value is a |Number|.
+ nil Zero, ignored when dumping. This value cannot
+ possibly appear in |msgpackparse()| output in Neovim
+ versions which have |v:null|.
+ boolean One or zero. When dumping it is only checked that
+ value is a |Number|. This value cannot possibly
+ appear in |msgpackparse()| output in Neovim versions
+ which have |v:true| and |v:false|.
integer |List| with four numbers: sign (-1 or 1), highest two
bits, number with bits from 62nd to 31st, lowest 31
bits. I.e. to get actual number one will need to use
@@ -5457,14 +5548,15 @@ search({pattern} [, {flags} [, {stopline} [, {timeout}]]]) *search()*
move. No error message is given.
{flags} is a String, which can contain these character flags:
- 'b' search backward instead of forward
- 'c' accept a match at the cursor position
+ 'b' search Backward instead of forward
+ 'c' accept a match at the Cursor position
'e' move to the End of the match
'n' do Not move the cursor
- 'p' return number of matching sub-pattern (see below)
- 's' set the ' mark at the previous location of the cursor
- 'w' wrap around the end of the file
- 'W' don't wrap around the end of the file
+ 'p' return number of matching sub-Pattern (see below)
+ 's' Set the ' mark at the previous location of the cursor
+ 'w' Wrap around the end of the file
+ 'W' don't Wrap around the end of the file
+ 'z' start searching at the cursor column instead of Zero
If neither 'w' or 'W' is given, the 'wrapscan' option applies.
If the 's' flag is supplied, the ' mark is set, only if the
@@ -5472,6 +5564,12 @@ search({pattern} [, {flags} [, {stopline} [, {timeout}]]]) *search()*
flag.
'ignorecase', 'smartcase' and 'magic' are used.
+
+ When the 'z' flag is not given seaching always starts in
+ column zero and then matches before the cursor are skipped.
+ When the 'c' flag is present in 'cpo' the next search starts
+ after the match. Without the 'c' flag the next search starts
+ one column further.
When the {stopline} argument is given then the search stops
after searching this line. This is useful to restrict the
@@ -5710,7 +5808,7 @@ setbufvar({expr}, {varname}, {val}) *setbufvar()*
:call setbufvar("todo", "myvar", "foobar")
< This function is not available in the |sandbox|.
-setcharsearch() *setcharsearch()*
+setcharsearch({dict}) *setcharsearch()*
Set the current character search information to {dict},
which contains one or more of the following entries:
@@ -6053,6 +6151,10 @@ sort({list} [, {func} [, {dict}]]) *sort()* *E702*
strtod() function to parse numbers, Strings, Lists, Dicts and
Funcrefs will be considered as being 0).
+ When {func} is given and it is 'N' then all items will be
+ sorted numerical. This is like 'n' but a string containing
+ digits will be used as the number they represent.
+
When {func} is a |Funcref| or a function name, this function
is called to compare items. The function is invoked with two
items as argument and must return zero if they are equal, 1 or
@@ -6067,6 +6169,11 @@ sort({list} [, {func} [, {dict}]]) *sort()* *E702*
on numbers, text strings will sort next to each other, in the
same order as they were originally.
+ The sort is stable, items which compare equal (as number or as
+ string) will keep their relative position. E.g., when sorting
+ on numbers, text strings will sort next to each other, in the
+ same order as they were originally.
+
Also see |uniq()|.
Example: >
@@ -6154,7 +6261,8 @@ split({expr} [, {pattern} [, {keepempty}]]) *split()*
:let words = split(getline('.'), '\W\+')
< To split a string in individual characters: >
:for c in split(mystring, '\zs')
-< If you want to keep the separator you can also use '\zs': >
+< If you want to keep the separator you can also use '\zs' at
+ the end of the pattern: >
:echo split('abc:def:ghi', ':\zs')
< ['abc:', 'def:', 'ghi'] ~
Splitting a table where the first element can be empty: >
@@ -6424,6 +6532,9 @@ synID({lnum}, {col}, {trans}) *synID()*
{col} is 1 for the leftmost column, {lnum} is 1 for the first
line. 'synmaxcol' applies, in a longer line zero is returned.
+ Note that when the position is after the last character,
+ that's where the cursor can be in Insert mode, synID() returns
+ zero.
When {trans} is non-zero, transparent items are reduced to the
item that they reveal. This is useful when wanting to know
@@ -6729,12 +6840,14 @@ trunc({expr}) *trunc()*
type({expr}) *type()*
The result is a Number, depending on the type of {expr}:
- Number: 0
- String: 1
+ Number: 0
+ String: 1
Funcref: 2
- List: 3
+ List: 3
Dictionary: 4
- Float: 5
+ Float: 5
+ Boolean: 6 (|v:true| and |v:false|)
+ Null: 7 (|v:null|)
To avoid the magic numbers it should be used this way: >
:if type(myvar) == type(0)
:if type(myvar) == type("")
@@ -6742,6 +6855,10 @@ type({expr}) *type()*
:if type(myvar) == type([])
:if type(myvar) == type({})
:if type(myvar) == type(0.0)
+ :if type(myvar) == type(v:true)
+< In place of checking for |v:null| type it is better to check
+ for |v:null| directly as it is the only value of this type: >
+ :if myvar is v:null
undofile({name}) *undofile()*
Return the name of the undo file that would be used for a file
diff --git a/runtime/doc/index.txt b/runtime/doc/index.txt
index 2067b0c321..f511b1db6d 100644
--- a/runtime/doc/index.txt
+++ b/runtime/doc/index.txt
@@ -1,4 +1,4 @@
-*index.txt* For Vim version 7.4. Last change: 2015 Feb 12
+*index.txt* For Vim version 7.4. Last change: 2015 Sep 08
VIM REFERENCE MANUAL by Bram Moolenaar
diff --git a/runtime/doc/insert.txt b/runtime/doc/insert.txt
index f17410d1dc..f931dfa341 100644
--- a/runtime/doc/insert.txt
+++ b/runtime/doc/insert.txt
@@ -1,4 +1,4 @@
-*insert.txt* For Vim version 7.4. Last change: 2015 Jun 20
+*insert.txt* For Vim version 7.4. Last change: 2015 Sep 15
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -148,7 +148,7 @@ CTRL-R CTRL-R {0-9a-z"%#*+/:.-=} *i_CTRL-R_CTRL-R*
CTRL-R a results in "ac".
CTRL-R CTRL-R a results in "ab^Hc".
< Options 'textwidth', 'formatoptions', etc. still apply. If
- you also want to avoid these, use "<C-R><C-O>r", see below.
+ you also want to avoid these, use CTRL-R CTRL-O, see below.
The '.' register (last inserted text) is still inserted as
typed.
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index dbc87a8676..ebb2f28fa5 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -49,9 +49,12 @@ achieve special effects. These options come in three forms:
:se[t] {option}&vi Reset option to its Vi default value.
:se[t] {option}&vim Reset option to its Vim default value.
-:se[t] all& Set all options, except terminal options, to their
- default value. The values of 'lines' and 'columns'
- are not changed.
+:se[t] all& Set all options to their default value. The values of
+ these options are not changed:
+ 'columns'
+ 'encoding'
+ 'lines'
+ Warning: This may have a lot of side effects.
*:set-args* *E487* *E521*
:se[t] {option}={value} or
@@ -704,7 +707,8 @@ A jump table for the options with a short description can be found at |Q_op|.
line.
When 'smartindent' or 'cindent' is on the indent is changed in
a different way.
- The 'autoindent' option is reset when the 'paste' option is set.
+ The 'autoindent' option is reset when the 'paste' option is set and
+ restored when 'paste' is reset.
{small difference from Vi: After the indent is deleted when typing
<Esc> or <CR>, the cursor position when moving up or down is after the
deleted indent; Vi puts the cursor somewhere in the deleted indent}.
@@ -2273,6 +2277,8 @@ A jump table for the options with a short description can be found at |Q_op|.
<Tab>. Spaces are used in indents with the '>' and '<' commands and
when 'autoindent' is on. To insert a real tab when 'expandtab' is
on, use CTRL-V<Tab>. See also |:retab| and |ins-expandtab|.
+ This option is reset when the 'paste' option is set and restored when
+ the 'paste' option is reset.
*'exrc'* *'ex'* *'noexrc'* *'noex'*
'exrc' 'ex' boolean (default off)
@@ -3404,7 +3410,7 @@ A jump table for the options with a short description can be found at |Q_op|.
global
Ignore case in search patterns. Also used when searching in the tags
file.
- Also see 'smartcase'.
+ Also see 'smartcase' and 'tagcase'.
Can be overruled by using "\c" or "\C" in the pattern, see
|/ignorecase|.
@@ -4517,19 +4523,21 @@ A jump table for the options with a short description can be found at |Q_op|.
When the 'paste' option is switched on (also when it was already on):
- mapping in Insert mode and Command-line mode is disabled
- abbreviations are disabled
- - 'textwidth' is set to 0
- - 'wrapmargin' is set to 0
- 'autoindent' is reset
- - 'smartindent' is reset
- - 'softtabstop' is set to 0
+ - 'expandtab' is reset
+ - 'formatoptions' is used like it is empty
- 'revins' is reset
- 'ruler' is reset
- 'showmatch' is reset
- - 'formatoptions' is used like it is empty
+ - 'smartindent' is reset
+ - 'smarttab' is reset
+ - 'softtabstop' is set to 0
+ - 'textwidth' is set to 0
+ - 'wrapmargin' is set to 0
These options keep their value, but their effect is disabled:
- - 'lisp'
- - 'indentexpr'
- 'cindent'
+ - 'indentexpr'
+ - 'lisp'
NOTE: When you start editing another file while the 'paste' option is
on, settings from the modelines or autocommands may change the
settings again, causing trouble when pasting text. You might want to
@@ -4852,7 +4860,8 @@ A jump table for the options with a short description can be found at |Q_op|.
Inserting characters in Insert mode will work backwards. See "typing
backwards" |ins-reverse|. This option can be toggled with the CTRL-_
command in Insert mode, when 'allowrevins' is set.
- NOTE: This option is reset when 'paste' is set.
+ This option is reset when 'paste' is set and restored when 'paste' is
+ reset.
*'rightleft'* *'rl'* *'norightleft'* *'norl'*
'rightleft' 'rl' boolean (default off)
@@ -4901,7 +4910,8 @@ A jump table for the options with a short description can be found at |Q_op|.
separated with a dash.
For an empty line "0-1" is shown.
For an empty buffer the line number will also be zero: "0,0-1".
- This option is reset when the 'paste' option is set.
+ This option is reset when 'paste' is set and restored when 'paste' is
+ reset.
If you don't want to see the ruler all the time but want to know where
you are, use "g CTRL-G" |g_CTRL-G|.
@@ -5609,7 +5619,9 @@ A jump table for the options with a short description can be found at |Q_op|.
jump is only done if the match can be seen on the screen. The time to
show the match can be set with 'matchtime'.
A Beep is given if there is no match (no matter if the match can be
- seen or not). This option is reset when the 'paste' option is set.
+ seen or not).
+ This option is reset when 'paste' is set and restored when 'paste' is
+ reset.
When the 'm' flag is not included in 'cpoptions', typing a character
will immediately move the cursor back to where it belongs.
See the "sm" field in 'guicursor' for setting the cursor shape and
@@ -5708,7 +5720,8 @@ A jump table for the options with a short description can be found at |Q_op|.
mapping: ":inoremap # X^H#", where ^H is entered with CTRL-V CTRL-H.
When using the ">>" command, lines starting with '#' are not shifted
right.
- NOTE: When 'paste' is set smart indenting is disabled.
+ This option is reset when 'paste' is set and restored when 'paste' is
+ reset.
*'smarttab'* *'sta'* *'nosmarttab'* *'nosta'*
'smarttab' 'sta' boolean (default on)
@@ -5723,6 +5736,8 @@ A jump table for the options with a short description can be found at |Q_op|.
What gets inserted (a <Tab> or spaces) depends on the 'expandtab'
option. Also see |ins-expandtab|. When 'expandtab' is not set, the
number of spaces is minimized by using <Tab>s.
+ This option is reset when 'paste' is set and restored when 'paste' is
+ reset.
*'softtabstop'* *'sts'*
'softtabstop' 'sts' number (default 0)
@@ -5735,7 +5750,8 @@ A jump table for the options with a short description can be found at |Q_op|.
commands like "x" still work on the actual characters.
When 'sts' is zero, this feature is off.
When 'sts' is negative, the value of 'shiftwidth' is used.
- 'softtabstop' is set to 0 when the 'paste' option is set.
+ 'softtabstop' is set to 0 when the 'paste' option is set and restored
+ when 'paste' is reset.
See also |ins-expandtab|. When 'expandtab' is not set, the number of
spaces is minimized by using <Tab>s.
The 'L' flag in 'cpoptions' changes how tabs are used when 'list' is
@@ -6305,19 +6321,22 @@ A jump table for the options with a short description can be found at |Q_op|.
< [The whitespace before and after the '0' must be a single <Tab>]
When a binary search was done and no match was found in any of the
- files listed in 'tags', and 'ignorecase' is set or a pattern is used
+ files listed in 'tags', and case is ignored or a pattern is used
instead of a normal tag name, a retry is done with a linear search.
Tags in unsorted tags files, and matches with different case will only
be found in the retry.
If a tag file indicates that it is case-fold sorted, the second,
- linear search can be avoided for the 'ignorecase' case. Use a value
- of '2' in the "!_TAG_FILE_SORTED" line for this. A tag file can be
- case-fold sorted with the -f switch to "sort" in most unices, as in
- the command: "sort -f -o tags tags". For "Exuberant ctags" version
- 5.x or higher (at least 5.5) the --sort=foldcase switch can be used
- for this as well. Note that case must be folded to uppercase for this
- to work.
+ linear search can be avoided when case is ignored. Use a value of '2'
+ in the "!_TAG_FILE_SORTED" line for this. A tag file can be case-fold
+ sorted with the -f switch to "sort" in most unices, as in the command:
+ "sort -f -o tags tags". For "Exuberant ctags" version 5.x or higher
+ (at least 5.5) the --sort=foldcase switch can be used for this as
+ well. Note that case must be folded to uppercase for this to work.
+
+ By default, tag searches are case-sensitive. Case is ignored when
+ 'ignorecase' is set and 'tagcase' is "followic", or when 'tagcase' is
+ "ignore".
When 'tagbsearch' is off, tags searching is slower when a full match
exists, but faster when no full match exists. Tags in unsorted tags
@@ -6328,6 +6347,16 @@ A jump table for the options with a short description can be found at |Q_op|.
This option doesn't affect commands that find all matching tags (e.g.,
command-line completion and ":help").
+ *'tagcase'* *'tc'*
+'tagcase' 'tc' string (default "followic")
+ global or local to buffer |global-local|
+ {not in Vi}
+ This option specifies how case is handled when searching the tags
+ file:
+ followic Follow the 'ignorecase' option
+ ignore Ignore case
+ match Match case
+
*'taglength'* *'tl'*
'taglength' 'tl' number (default 0)
global
@@ -6404,8 +6433,10 @@ A jump table for the options with a short description can be found at |Q_op|.
local to buffer
Maximum width of text that is being inserted. A longer line will be
broken after white space to get this width. A zero value disables
- this. 'textwidth' is set to 0 when the 'paste' option is set. When
- 'textwidth' is zero, 'wrapmargin' may be used. See also
+ this.
+ 'textwidth' is set to 0 when the 'paste' option is set and restored
+ when 'paste' is reset.
+ When 'textwidth' is zero, 'wrapmargin' may be used. See also
'formatoptions' and |ins-textwidth|.
When 'formatexpr' is set it will be used to break the line.
diff --git a/runtime/doc/quickfix.txt b/runtime/doc/quickfix.txt
index bcce5a983a..ff4fded0d9 100644
--- a/runtime/doc/quickfix.txt
+++ b/runtime/doc/quickfix.txt
@@ -1,4 +1,4 @@
-*quickfix.txt* For Vim version 7.4. Last change: 2014 Mar 27
+*quickfix.txt* For Vim version 7.4. Last change: 2015 Sep 08
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -302,16 +302,22 @@ EXECUTE A COMMAND IN ALL THE BUFFERS IN QUICKFIX OR LOCATION LIST:
etc.
< When the current file can't be |abandon|ed and the [!]
is not present, the command fails.
- When an error is detected on one buffer, further
- buffers will not be visited.
+ When an error is detected excecution stops.
The last buffer (or where an error occurred) becomes
the current buffer.
{cmd} can contain '|' to concatenate several commands.
+
Only valid entries in the quickfix list are used.
+ A range can be used to select entries, e.g.: >
+ :10,$cdo cmd
+< To skip entries 1 to 9.
+
Note: While this command is executing, the Syntax
autocommand event is disabled by adding it to
'eventignore'. This considerably speeds up editing
each buffer.
+ {not in Vi} {not available when compiled without the
+ |+listcmds| feature}
Also see |:bufdo|, |:tabdo|, |:argdo|, |:windo|,
|:ldo|, |:cfdo| and |:lfdo|.
@@ -323,20 +329,9 @@ EXECUTE A COMMAND IN ALL THE BUFFERS IN QUICKFIX OR LOCATION LIST:
:cnfile
:{cmd}
etc.
-< When the current file can't be |abandon|ed and the [!]
- is not present, the command fails.
- When an error is detected on one buffer, further
- buffers will not be visited.
- The last buffer (or where an error occurred) becomes
- the current buffer.
- {cmd} can contain '|' to concatenate several commands.
- Only valid entries in the quickfix list are used.
- Note: While this command is executing, the Syntax
- autocommand event is disabled by adding it to
- 'eventignore'. This considerably speeds up editing
- each buffer.
- Also see |:bufdo|, |:tabdo|, |:argdo|, |:windo|,
- |:cdo|, |:ldo| and |:lfdo|.
+< Otherwise it works the same as `:cdo`.
+ {not in Vi} {not available when compiled without the
+ |+listcmds| feature}
*:ldo*
:ld[o][!] {cmd} Execute {cmd} in each valid entry in the location list
@@ -347,20 +342,10 @@ EXECUTE A COMMAND IN ALL THE BUFFERS IN QUICKFIX OR LOCATION LIST:
:lnext
:{cmd}
etc.
-< When the current file can't be |abandon|ed and the [!]
- is not present, the command fails.
- When an error is detected on one buffer, further
- buffers will not be visited.
- The last buffer (or where an error occurred) becomes
- the current buffer.
- {cmd} can contain '|' to concatenate several commands.
- Only valid entries in the location list are used.
- Note: While this command is executing, the Syntax
- autocommand event is disabled by adding it to
- 'eventignore'. This considerably speeds up editing
- each buffer.
- Also see |:bufdo|, |:tabdo|, |:argdo|, |:windo|,
- |:cdo|, |:cfdo| and |:lfdo|.
+< Only valid entries in the location list are used.
+ Otherwise it works the same as `:cdo`.
+ {not in Vi} {not available when compiled without the
+ |+listcmds| feature}
*:lfdo*
:lfdo[!] {cmd} Execute {cmd} in each file in the location list for
@@ -371,20 +356,9 @@ EXECUTE A COMMAND IN ALL THE BUFFERS IN QUICKFIX OR LOCATION LIST:
:lnfile
:{cmd}
etc.
-< When the current file can't be |abandon|ed and the [!]
- is not present, the command fails.
- When an error is detected on one buffer, further
- buffers will not be visited.
- The last buffer (or where an error occurred) becomes
- the current buffer.
- {cmd} can contain '|' to concatenate several commands.
- Only valid entries in the location list are used.
- Note: While this command is executing, the Syntax
- autocommand event is disabled by adding it to
- 'eventignore'. This considerably speeds up editing
- each buffer.
- Also see |:bufdo|, |:tabdo|, |:argdo|, |:windo|,
- |:cdo|, |:ldo| and |:cfdo|.
+< Otherwise it works the same as `:ldo`.
+ {not in Vi} {not available when compiled without the
+ |+listcmds| feature}
=============================================================================
2. The error window *quickfix-window*
diff --git a/runtime/doc/quickref.txt b/runtime/doc/quickref.txt
index 120e027242..66773875c3 100644
--- a/runtime/doc/quickref.txt
+++ b/runtime/doc/quickref.txt
@@ -879,6 +879,7 @@ Short explanation of each option: *option-list*
'tabpagemax' 'tpm' maximum number of tab pages for |-p| and "tab all"
'tabstop' 'ts' number of spaces that <Tab> in file uses
'tagbsearch' 'tbs' use binary searching in tags files
+'tagcase' 'tc' how to handle case when searching in tags files
'taglength' 'tl' number of significant characters for a tag
'tagrelative' 'tr' file names in tag file are relative
'tags' 'tag' list of file names used by the tag command
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index d1c1f90c37..1f392cd0b5 100644
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -1,4 +1,4 @@
-*syntax.txt* For Vim version 7.4. Last change: 2015 Jul 21
+*syntax.txt* For Vim version 7.4. Last change: 2015 Sep 29
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -417,18 +417,19 @@ and last line to be converted. Example, using the last set Visual area: >
*:TOhtml*
:[range]TOhtml The ":TOhtml" command is defined in a standard plugin.
This command will source |2html.vim| for you. When a
- range is given, set |g:html_start_line| and
- |g:html_end_line| to the start and end of the range,
- respectively. Default range is the entire buffer.
-
- If the current window is part of a |diff|, unless
- |g:html_diff_one_file| is set, :TOhtml will convert
- all windows which are part of the diff in the current
- tab and place them side-by-side in a <table> element
- in the generated HTML. With |g:html_line_ids| you can
- jump to lines in specific windows with (for example)
- #W1L42 for line 42 in the first diffed window, or
- #W3L87 for line 87 in the third.
+ range is given, this command sets |g:html_start_line|
+ and |g:html_end_line| to the start and end of the
+ range, respectively. Default range is the entire
+ buffer.
+
+ If the current window is part of a |diff|, unless
+ |g:html_diff_one_file| is set, :TOhtml will convert
+ all windows which are part of the diff in the current
+ tab and place them side-by-side in a <table> element
+ in the generated HTML. With |g:html_line_ids| you can
+ jump to lines in specific windows with (for example)
+ #W1L42 for line 42 in the first diffed window, or
+ #W3L87 for line 87 in the third.
Examples: >
@@ -742,6 +743,22 @@ and UTF-32 instead, use: >
Note that documents encoded in either UTF-32 or UTF-16 have known
compatibility problems with some major browsers.
+ *g:html_font*
+Default: "monospace"
+You can specify the font or fonts used in the converted document using
+g:html_font. If this option is set to a string, then the value will be
+surrounded with single quotes. If this option is set to a list then each list
+item is surrounded by single quotes and the list is joined with commas. Either
+way, "monospace" is added as the fallback generic family name and the entire
+result used as the font family (using CSS) or font face (if not using CSS).
+Examples: >
+
+ " font-family: 'Consolas', monospace;
+ :let g:html_font = "Consolas"
+
+ " font-family: 'DejaVu Sans Mono', 'Consolas', monospace;
+ :let g:html_font = ["DejaVu Sans Mono", "Consolas"]
+<
*convert-to-XML* *convert-to-XHTML* *g:html_use_xhtml*
Default: 0.
When 0, generate standard HTML 4.01 (strict when possible).
@@ -3430,7 +3447,7 @@ DEFINING KEYWORDS *:syn-keyword*
:syntax keyword Type contained int long char
:syntax keyword Type int long contained char
:syntax keyword Type int long char contained
-< *E789*
+< *E789* *E890*
When you have a keyword with an optional tail, like Ex commands in
Vim, you can put the optional characters inside [], to define all the
variations at once: >
diff --git a/runtime/doc/tagsrch.txt b/runtime/doc/tagsrch.txt
index 7d3697db07..75d820d072 100644
--- a/runtime/doc/tagsrch.txt
+++ b/runtime/doc/tagsrch.txt
@@ -84,11 +84,13 @@ changed, to avoid confusion when using ":tnext". It is changed when using
":tag {ident}".
The ignore-case matches are not found for a ":tag" command when the
-'ignorecase' option is off. They are found when a pattern is used (starting
-with a "/") and for ":tselect", also when 'ignorecase' is off. Note that
-using ignore-case tag searching disables binary searching in the tags file,
-which causes a slowdown. This can be avoided by fold-case sorting the tag
-file. See the 'tagbsearch' option for an explanation.
+'ignorecase' option is off and 'tagcase' is "followic" or when 'tagcase' is
+"match". They are found when a pattern is used (starting with a "/") and for
+":tselect", also when 'ignorecase' is off and 'tagcase' is "followic" or when
+'tagcase' is "match". Note that using ignore-case tag searching disables
+binary searching in the tags file, which causes a slowdown. This can be
+avoided by fold-case sorting the tag file. See the 'tagbsearch' option for an
+explanation.
==============================================================================
2. Tag stack *tag-stack* *tagstack* *E425*
@@ -418,12 +420,13 @@ file "tags". It can also be used to access a common tags file.
The next file in the list is not used when:
- A matching static tag for the current buffer has been found.
- A matching global tag has been found.
-This also depends on the 'ignorecase' option. If it is off, and the tags file
-only has a match without matching case, the next tags file is searched for a
-match with matching case. If no tag with matching case is found, the first
-match without matching case is used. If 'ignorecase' is on, and a matching
-global tag with or without matching case is found, this one is used, no
-further tags files are searched.
+This also depends on whether case is ignored. Case is ignored when
+'ignorecase' is set and 'tagcase' is "followic", or when 'tagcase' is
+"ignore". If case is not ignored, and the tags file only has a match without
+matching case, the next tags file is searched for a match with matching case.
+If no tag with matching case is found, the first match without matching case
+is used. If case is ignored, and a matching global tag with or without
+matching case is found, this one is used, no further tags files are searched.
When a tag file name starts with "./", the '.' is replaced with the path of
the current file. This makes it possible to use a tags file in the directory
@@ -556,8 +559,10 @@ that indicates if the file was sorted. When this line is found, Vim uses
binary searching for the tags file:
!_TAG_FILE_SORTED<Tab>1<Tab>{anything} ~
-A tag file may be case-fold sorted to avoid a linear search when 'ignorecase'
-is on. See 'tagbsearch' for details. The value '2' should be used then:
+A tag file may be case-fold sorted to avoid a linear search when case is
+ignored. (Case is ignored when 'ignorecase' is set and 'tagcase' is
+"followic", or when 'tagcase' is "ignore".) See 'tagbsearch' for details.
+The value '2' should be used then:
!_TAG_FILE_SORTED<Tab>2<Tab>{anything} ~
The other tag that Vim recognizes, but only when compiled with the
diff --git a/runtime/doc/usr_29.txt b/runtime/doc/usr_29.txt
index 22de2f6ce6..e495aad06d 100644
--- a/runtime/doc/usr_29.txt
+++ b/runtime/doc/usr_29.txt
@@ -255,7 +255,8 @@ function.
RELATED ITEMS
-You can set 'ignorecase' to make case in tag names be ignored.
+To make case in tag names be ignored, you can set 'ignorecase' while leaving
+'tagcase' as "followic", or set 'tagcase' to "ignore".
The 'tagbsearch' option tells if the tags file is sorted or not. The default
is to assume a sorted tags file, which makes a tags search a lot faster, but
diff --git a/runtime/doc/vim_diff.txt b/runtime/doc/vim_diff.txt
index 17ee5975dd..508712ca75 100644
--- a/runtime/doc/vim_diff.txt
+++ b/runtime/doc/vim_diff.txt
@@ -99,6 +99,22 @@ are always available and may be used simultaneously in separate plugins. The
error out.
4. Stringifyed infinite and NaN values now use |str2float()| and can be evaled
back.
+5. (internal) Trying to print or stringify VAR_UNKNOWN in Vim results in
+ nothing, |E908|, in Neovim it is internal error.
+
+|json_decode()| behaviour changed:
+1. It may output |msgpack-special-dict|.
+2. |msgpack-special-dict| is emitted also in case of duplicate keys, while in
+ Vim it errors out.
+3. It accepts only valid JSON. Trailing commas are not accepted.
+
+|json_encode()| behaviour slightly changed: now |msgpack-special-dict| values
+are accepted, but |v:none| is not.
+
+*v:none* variable is absent. In Vim it represents “no value” in “js” strings
+like "[,]" parsed as "[v:none]" by |js_decode()|.
+
+*js_encode()* and *js_decode()* functions are also absent.
Viminfo text files were replaced with binary (messagepack) ShaDa files.
Additional differences:
diff --git a/runtime/doc/windows.txt b/runtime/doc/windows.txt
index 29c8aaf808..a3f2521318 100644
--- a/runtime/doc/windows.txt
+++ b/runtime/doc/windows.txt
@@ -1,4 +1,4 @@
-*windows.txt* For Vim version 7.4. Last change: 2015 Jan 31
+*windows.txt* For Vim version 7.4. Last change: 2015 Aug 29
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1099,13 +1099,13 @@ list of buffers. |unlisted-buffer|
the current buffer remains being edited. See |:buffer-!| for
[!]. This will also edit a buffer that is not in the buffer
list, without setting the 'buflisted' flag.
- Also see ||+cmd|.
+ Also see |+cmd|.
:[N]b[uffer][!] [+cmd] {bufname}
Edit buffer for {bufname} from the buffer list. See
|:buffer-!| for [!]. This will also edit a buffer that is not
in the buffer list, without setting the 'buflisted' flag.
- Also see ||+cmd|.
+ Also see |+cmd|.
:[N]sb[uffer] [+cmd] [N] *:sb* *:sbuffer*
Split window and edit buffer [N] from the buffer list. If [N]
@@ -1113,7 +1113,7 @@ list of buffers. |unlisted-buffer|
"useopen" setting of 'switchbuf' when splitting. This will
also edit a buffer that is not in the buffer list, without
setting the 'buflisted' flag.
- Also see ||+cmd|.
+ Also see |+cmd|.
:[N]sb[uffer] [+cmd] {bufname}
Split window and edit buffer for {bufname} from the buffer
@@ -1122,13 +1122,13 @@ list of buffers. |unlisted-buffer|
Note: If what you want to do is split the buffer, make a copy
under another name, you can do it this way: >
:w foobar | sp #
-< Also see ||+cmd|.
+< Also see |+cmd|.
:[N]bn[ext][!] [+cmd] [N] *:bn* *:bnext* *E87*
Go to [N]th next buffer in buffer list. [N] defaults to one.
Wraps around the end of the buffer list.
See |:buffer-!| for [!].
- Also see ||+cmd|.
+ Also see |+cmd|.
If you are in a help buffer, this takes you to the next help
buffer (if there is one). Similarly, if you are in a normal
(non-help) buffer, this takes you to the next normal buffer.
@@ -1141,21 +1141,21 @@ list of buffers. |unlisted-buffer|
:[N]sbn[ext] [+cmd] [N]
Split window and go to [N]th next buffer in buffer list.
Wraps around the end of the buffer list. Uses 'switchbuf'
- Also see ||+cmd|.
+ Also see |+cmd|.
:[N]bN[ext][!] [+cmd] [N] *:bN* *:bNext* *:bp* *:bprevious* *E88*
:[N]bp[revious][!] [+cmd] [N]
Go to [N]th previous buffer in buffer list. [N] defaults to
one. Wraps around the start of the buffer list.
See |:buffer-!| for [!] and 'switchbuf'.
- Also see ||+cmd|.
+ Also see |+cmd|.
:[N]sbN[ext] [+cmd] [N] *:sbN* *:sbNext* *:sbp* *:sbprevious*
:[N]sbp[revious] [+cmd] [N]
Split window and go to [N]th previous buffer in buffer list.
Wraps around the start of the buffer list.
Uses 'switchbuf'.
- Also see ||+cmd|.
+ Also see |+cmd|.
:br[ewind][!] [+cmd] *:br* *:brewind*
Go to first buffer in buffer list. If the buffer list is