aboutsummaryrefslogtreecommitdiff
path: root/runtime/doc
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/doc')
-rw-r--r--runtime/doc/api.txt120
-rw-r--r--runtime/doc/arabic.txt26
-rw-r--r--runtime/doc/autocmd.txt14
-rw-r--r--runtime/doc/cmdline.txt9
-rw-r--r--runtime/doc/deprecated.txt1
-rw-r--r--runtime/doc/develop.txt44
-rw-r--r--runtime/doc/diff.txt8
-rw-r--r--runtime/doc/editing.txt14
-rw-r--r--runtime/doc/eval.txt351
-rw-r--r--runtime/doc/filetype.txt12
-rw-r--r--runtime/doc/fold.txt8
-rw-r--r--runtime/doc/ft_ada.txt2
-rw-r--r--runtime/doc/ft_rust.txt237
-rw-r--r--runtime/doc/gui.txt12
-rw-r--r--runtime/doc/help.txt5
-rw-r--r--runtime/doc/helphelp.txt5
-rw-r--r--runtime/doc/howto.txt96
-rw-r--r--runtime/doc/if_cscop.txt7
-rw-r--r--runtime/doc/if_lua.txt22
-rw-r--r--runtime/doc/if_ruby.txt2
-rw-r--r--runtime/doc/index.txt40
-rw-r--r--runtime/doc/insert.txt17
-rw-r--r--runtime/doc/intro.txt32
-rw-r--r--runtime/doc/job_control.txt129
-rw-r--r--runtime/doc/map.txt17
-rw-r--r--runtime/doc/message.txt10
-rw-r--r--runtime/doc/mlang.txt1
-rw-r--r--runtime/doc/motion.txt2
-rw-r--r--runtime/doc/msgpack_rpc.txt2
-rw-r--r--runtime/doc/options.txt124
-rw-r--r--runtime/doc/pattern.txt17
-rw-r--r--runtime/doc/pi_health.txt10
-rw-r--r--runtime/doc/pi_matchit.txt7
-rw-r--r--runtime/doc/pi_netrw.txt355
-rw-r--r--runtime/doc/print.txt64
-rw-r--r--runtime/doc/provider.txt14
-rw-r--r--runtime/doc/quickfix.txt20
-rw-r--r--runtime/doc/quickref.txt2
-rw-r--r--runtime/doc/remote.txt3
-rw-r--r--runtime/doc/scroll.txt2
-rw-r--r--runtime/doc/spell.txt6
-rw-r--r--runtime/doc/syntax.txt45
-rw-r--r--runtime/doc/tagsrch.txt1
-rw-r--r--runtime/doc/ui.txt44
-rw-r--r--runtime/doc/usr_02.txt4
-rw-r--r--runtime/doc/usr_03.txt4
-rw-r--r--runtime/doc/usr_07.txt8
-rw-r--r--runtime/doc/usr_08.txt2
-rw-r--r--runtime/doc/usr_09.txt18
-rw-r--r--runtime/doc/usr_12.txt2
-rw-r--r--runtime/doc/usr_41.txt11
-rw-r--r--runtime/doc/usr_44.txt2
-rw-r--r--runtime/doc/various.txt11
-rw-r--r--runtime/doc/vim_diff.txt31
-rw-r--r--runtime/doc/visual.txt3
-rw-r--r--runtime/doc/windows.txt30
56 files changed, 1299 insertions, 786 deletions
diff --git a/runtime/doc/api.txt b/runtime/doc/api.txt
index 159dd93c5e..ef8b9c7d47 100644
--- a/runtime/doc/api.txt
+++ b/runtime/doc/api.txt
@@ -7,7 +7,7 @@
Nvim API *API* *api*
Nvim exposes a powerful API that can be used by plugins and external processes
-via |msgpack-rpc|, Lua and VimL (|eval-api|).
+via |RPC|, |Lua| and VimL (|eval-api|).
Applications can also embed libnvim to work with the C API directly.
@@ -135,6 +135,26 @@ nvim_command({command}) *nvim_command()*
Parameters:~
{command} Ex-command string
+nvim_get_hl_by_name({name}, {rgb}) *nvim_get_hl_by_name()*
+ Gets a highlight definition by name.
+
+ Parameters:~
+ {name} Highlight group name
+ {rgb} Export RGB colors
+
+ Return:~
+ Highlight definition map
+
+nvim_get_hl_by_id({hl_id}, {rgb}) *nvim_get_hl_by_id()*
+ Gets a highlight definition by id. |hlID()|
+
+ Parameters:~
+ {hl_id} Highlight id as returned by |hlID()|
+ {rgb} Export RGB colors
+
+ Return:~
+ Highlight definition map
+
nvim_feedkeys({keys}, {mode}, {escape_csi}) *nvim_feedkeys()*
Passes input keys to Nvim. On VimL error: Does not fail, but
updates v:errmsg.
@@ -151,7 +171,11 @@ nvim_input({keys}) *nvim_input()*
Unlike `nvim_feedkeys`, this uses a lower-level input buffer
and the call is not deferred. This is the most reliable way to
- emulate real user input.
+ send real user input.
+
+ Note:
+ |keycodes| like <CR> are translated, so "<" is special. To
+ input a literal "<", send <LT>.
Attributes:~
{async}
@@ -204,14 +228,11 @@ nvim_call_function({fname}, {args}) *nvim_call_function()*
Result of the function call
nvim_execute_lua({code}, {args}) *nvim_execute_lua()*
- Execute lua code. Parameters might be passed, they are
- available inside the chunk as `...`. The chunk can return a
- value.
+ Execute lua code. Parameters (if any) are available as `...`
+ inside the chunk. The chunk can return a value.
- To evaluate an expression, it must be prefixed with "return ".
- For instance, to call a lua function with arguments sent in
- and get its return value back, use the code "return
- my_function(...)".
+ Only statements are executed. To evaluate an expression,
+ prefix it with `return`: return my_function(...)
Parameters:~
{code} lua code to execute
@@ -220,7 +241,7 @@ nvim_execute_lua({code}, {args}) *nvim_execute_lua()*
Return:~
Return value of lua code if present or NIL.
-nvim_strwidth({str}) *nvim_strwidth()*
+nvim_strwidth({text}) *nvim_strwidth()*
Calculates the number of display cells occupied by `text`.
<Tab> counts as one cell.
@@ -347,7 +368,7 @@ nvim_set_current_buf({buffer}) *nvim_set_current_buf()*
Sets the current buffer
Parameters:~
- {id} Buffer handle
+ {buffer} Buffer handle
nvim_list_wins() *nvim_list_wins()*
Gets the current list of window handles
@@ -365,7 +386,7 @@ nvim_set_current_win({window}) *nvim_set_current_win()*
Sets the current window
Parameters:~
- {handle} Window handle
+ {window} Window handle
nvim_list_tabpages() *nvim_list_tabpages()*
Gets the current list of tabpage handles
@@ -383,7 +404,7 @@ nvim_set_current_tabpage({tabpage}) *nvim_set_current_tabpage()*
Sets the current tabpage
Parameters:~
- {handle} Tabpage handle
+ {tabpage} Tabpage handle
nvim_subscribe({event}) *nvim_subscribe()*
Subscribes to event broadcasts
@@ -404,26 +425,25 @@ nvim_get_color_map() *nvim_get_color_map()*
TODO: Documentation
nvim_get_mode() *nvim_get_mode()*
- Gets the current mode.
- mode: Mode string. |mode()|
- blocking: true if Nvim is waiting for input.
-
- Attributes:~
- {async}
+ Gets the current mode. |mode()| "blocking" is true if Nvim is
+ waiting for input.
Return:~
Dictionary { "mode": String, "blocking": Boolean }
+ Attributes:~
+ {async}
+
nvim_get_keymap({mode}) *nvim_get_keymap()*
- Get a list of dictionaries describing global (i.e. non-buffer)
- mappings Note that the "buffer" key will be 0 to represent
- false.
+ Gets a list of dictionaries describing global (non-buffer)
+ mappings. The "buffer" key in the returned dictionary is
+ always zero.
Parameters:~
- {mode} The abbreviation for the mode
+ {mode} Mode short-name ("n", "i", "v", ...)
Return:~
- An array of maparg() like dictionaries describing mappings
+ Array of maparg()-like dictionaries describing mappings
nvim_get_api_info() *nvim_get_api_info()*
TODO: Documentation
@@ -584,16 +604,16 @@ nvim_buf_get_changedtick({buffer}) *nvim_buf_get_changedtick()*
b:changedtickvalue.
nvim_buf_get_keymap({buffer}, {mode}) *nvim_buf_get_keymap()*
- Get a list of dictionaries describing buffer-local mappings
- Note that the buffer key in the dictionary will represent the
- buffer handle where the mapping is present
+ Gets a list of dictionaries describing buffer-local mappings.
+ The "buffer" key in the returned dictionary reflects the
+ buffer handle where the mapping is present.
Parameters:~
- {mode} The abbreviation for the mode
- {buffer_id} Buffer handle
+ {mode} Mode short-name ("n", "i", "v", ...)
+ {buffer} Buffer handle
Return:~
- An array of maparg() like dictionaries describing mappings
+ Array of maparg()-like dictionaries describing mappings
nvim_buf_set_var({buffer}, {name}, {value}) *nvim_buf_set_var()*
Sets a buffer-scoped (b:) variable
@@ -670,24 +690,24 @@ nvim_buf_add_highlight({buffer}, {src_id}, {hl_group}, {line},
{col_start}, {col_end})
Adds a highlight to buffer.
- This can be used for plugins which dynamically generate
- highlights to a buffer (like a semantic highlighter or
- linter). The function adds a single highlight to a buffer.
- Unlike matchaddpos() highlights follow changes to line
- numbering (as lines are inserted/removed above the highlighted
- line), like signs and marks do.
-
- "src_id" is useful for batch deletion/updating of a set of
- highlights. When called with src_id = 0, an unique source id
- is generated and returned. Succesive calls can pass in it as
- "src_id" to add new highlights to the same source group. All
- highlights in the same group can then be cleared with
- nvim_buf_clear_highlight. If the highlight never will be
- manually deleted pass in -1 for "src_id".
-
- If "hl_group" is the empty string no highlight is added, but a
- new src_id is still returned. This is useful for an external
- plugin to synchrounously request an unique src_id at
+ Useful for plugins that dynamically generate highlights to a
+ buffer (like a semantic highlighter or linter). The function
+ adds a single highlight to a buffer. Unlike matchaddpos()
+ highlights follow changes to line numbering (as lines are
+ inserted/removed above the highlighted line), like signs and
+ marks do.
+
+ `src_id` is useful for batch deletion/updating of a set of
+ highlights. When called with `src_id = 0`, an unique source id
+ is generated and returned. Successive calls can pass that
+ `src_id` to associate new highlights with the same source
+ group. All highlights in the same group can be cleared with
+ `nvim_buf_clear_highlight`. If the highlight never will be
+ manually deleted, pass `src_id = -1`.
+
+ If `hl_group` is the empty string no highlight is added, but a
+ new `src_id` is still returned. This is useful for an external
+ plugin to synchrounously request an unique `src_id` at
initialization, and later asynchronously add and clear
highlights in response to buffer changes.
@@ -696,7 +716,7 @@ nvim_buf_add_highlight({buffer}, {src_id}, {hl_group}, {line},
{src_id} Source group to use or 0 to use a new group,
or -1 for ungrouped highlight
{hl_group} Name of the highlight group to use
- {line} Line to highlight
+ {line} Line to highlight (zero-indexed)
{col_start} Start of range of columns to highlight
{col_end} End of range of columns to highlight, or -1
to highlight to end of line
@@ -948,4 +968,4 @@ nvim_ui_try_resize({width}, {height}) *nvim_ui_try_resize()*
nvim_ui_set_option({name}, {value}) *nvim_ui_set_option()*
TODO: Documentation
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:ft=help:norl: \ No newline at end of file
diff --git a/runtime/doc/arabic.txt b/runtime/doc/arabic.txt
index 3f30d7b5bc..07350083c6 100644
--- a/runtime/doc/arabic.txt
+++ b/runtime/doc/arabic.txt
@@ -36,7 +36,7 @@ the user interface remains the standard Vi interface.
Highlights
----------
-o Editing left-to-right files as in the original VIM hasn't changed.
+o Editing left-to-right files as in the original Vim hasn't changed.
o Viewing and editing files in right-to-left windows. File
orientation is per window, so it is possible to view the same
@@ -46,7 +46,7 @@ o No special terminal with right-to-left capabilities is required.
The right-to-left changes are completely hardware independent.
Only Arabic fonts are necessary.
-o Compatible with the original VIM. Almost all features work in
+o Compatible with the original Vim. Almost all features work in
right-to-left mode (there are liable to be bugs).
o Changing keyboard mapping and reverse insert modes using a single
@@ -60,14 +60,14 @@ o While in Arabic mode, numbers are entered from left to right. Upon
o Arabic keymapping on the command line in reverse insert mode.
-o Proper Bidirectional functionality is possible given VIM is
+o Proper Bidirectional functionality is possible given Vim is
started within a Bidi capable terminal emulator.
Arabic Fonts *arabicfonts*
------------
-VIM requires monospaced fonts of which there are many out there.
+Vim requires monospaced fonts of which there are many out there.
Arabic requires ISO-8859-6 as well as Presentation Form-B fonts
(without Form-B, Arabic will _NOT_ be usable). It is highly
recommended that users search for so-called 'ISO-10646-1' fonts.
@@ -90,13 +90,13 @@ o Installation of fonts for X Window systems (Unix/Linux)
Usage
-----
-Prior to the actual usage of Arabic within VIM, a number of settings
+Prior to the actual usage of Arabic within Vim, a number of settings
need to be accounted for and invoked.
o Setting the Arabic fonts
- + For VIM GUI set the 'guifont' to your_ARABIC_FONT. This is done
- by entering the following command in the VIM window.
+ + For Vim GUI set the 'guifont' to your_ARABIC_FONT. This is done
+ by entering the following command in the Vim window.
>
:set guifont=your_ARABIC_FONT
<
@@ -109,7 +109,7 @@ o Setting the Arabic fonts
you can include ':set guifont=your_ARABIC_FONT' to your vimrc
file.
- + Under the X Window environment, you can also start VIM with
+ + Under the X Window environment, you can also start Vim with
'-fn your_ARABIC_FONT' option.
o Setting the appropriate character Encoding
@@ -131,11 +131,11 @@ o Setting the appropriate character Encoding
o Enable Arabic settings [short-cut]
In order to simplify and streamline things, you can either invoke
- VIM with the command-line option,
+ Vim with the command-line option,
% vim -A my_utf8_arabic_file ...
- or enable 'arabic' via the following command within VIM
+ or enable 'arabic' via the following command within Vim
>
:set arabic
<
@@ -196,7 +196,7 @@ o Enable Arabic settings [short-cut]
+ Arabic deletion of a combined pair character
- By default VIM has the 'delcombine' option disabled. This option
+ By default Vim has the 'delcombine' option disabled. This option
allows the deletion of ALEF in a LAM_ALEF (LAA) combined character
and still retain the LAM (i.e. it reverts to treating the combined
character as its natural two characters form -- this also pertains
@@ -255,7 +255,7 @@ o Enable Arabic settings [short-cut]
Keymap/Keyboard *arabickeymap*
---------------
-The character/letter encoding used in VIM is the standard UTF-8.
+The character/letter encoding used in Vim is the standard UTF-8.
It is widely discouraged that any other encoding be used or even
attempted.
@@ -288,7 +288,7 @@ o Keyboard
Restrictions
------------
-o VIM in its GUI form does not currently support Bi-directionality
+o Vim in its GUI form does not currently support Bi-directionality
(i.e. the ability to see both Arabic and Latin intermixed within
the same line).
diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt
index 2850c8058f..6cffbf4cb6 100644
--- a/runtime/doc/autocmd.txt
+++ b/runtime/doc/autocmd.txt
@@ -55,7 +55,14 @@ Note: The ":autocmd" command can only be followed by another command when the
'|' appears before {cmd}. This works: >
:augroup mine | au! BufRead | augroup END
But this sees "augroup" as part of the defined command: >
+ :augroup mine | au! BufRead * | augroup END
:augroup mine | au BufRead * set tw=70 | augroup END
+Instead you can put the group name into the command: >
+ :au! mine BufRead *
+ :au mine BufRead * set tw=70
+Or use `:execute`: >
+ :augroup mine | exe "au! BufRead *" | augroup END
+ :augroup mine | exe "au BufRead * set tw=70" | augroup END
Note that special characters (e.g., "%", "<cword>") in the ":autocmd"
arguments are not expanded when the autocommand is defined. These will be
@@ -605,7 +612,7 @@ FileChangedShell When Vim notices that the modification time of
|timestamp|
Mostly triggered after executing a shell
command, but also with a |:checktime| command
- or when Gvim regains input focus.
+ or when gvim regains input focus.
This autocommand is triggered for each changed
file. It is not used when 'autoread' is set
and the buffer was not changed. If a
@@ -616,7 +623,7 @@ FileChangedShell When Vim notices that the modification time of
to tell Vim what to do next.
NOTE: When this autocommand is executed, the
current buffer "%" may be different from the
- buffer that was changed "<afile>".
+ buffer that was changed, which is in "<afile>".
NOTE: The commands must not change the current
buffer, jump to another buffer or delete a
buffer. *E246* *E811*
@@ -643,7 +650,8 @@ FileType When the 'filetype' option has been set. The
pattern is matched against the filetype.
<afile> can be used for the name of the file
where this option was set, and <amatch> for
- the new value of 'filetype'.
+ the new value of 'filetype'. Navigating to
+ another window or buffer is not allowed.
See |filetypes|.
*FileWriteCmd*
FileWriteCmd Before writing to a file, when not writing the
diff --git a/runtime/doc/cmdline.txt b/runtime/doc/cmdline.txt
index 4222a5b6f7..4956b9e6fe 100644
--- a/runtime/doc/cmdline.txt
+++ b/runtime/doc/cmdline.txt
@@ -361,7 +361,7 @@ These are the commands that can be used:
*c_CTRL-D*
CTRL-D List names that match the pattern in front of the cursor.
When showing file names, directories are highlighted (see
- 'highlight' option). Names where 'suffixes' matches are moved
+ |highlight-groups|). Names where 'suffixes' matches are moved
to the end.
The 'wildoptions' option can be set to "tagfile" to list the
file of matching tags.
@@ -420,6 +420,9 @@ matches exactly one character.
The 'wildignorecase' option can be set to ignore case in filenames.
+The 'wildmenu' option can be set to show the matches just above the command
+line.
+
If you like tcsh's autolist completion, you can use this mapping:
:cnoremap X <C-L><C-D>
(Where X is the command key to use, <C-L> is CTRL-L and <C-D> is CTRL-D)
@@ -778,6 +781,7 @@ Also see |`=|.
*:<cword>* *:<cWORD>* *:<cfile>* *<cfile>*
*:<sfile>* *<sfile>* *:<afile>* *<afile>*
*:<abuf>* *<abuf>* *:<amatch>* *<amatch>*
+ *:<cexpr>* *<cexpr>*
*<slnum>* *E495* *E496* *E497* *E499* *E500*
Note: these are typed literally, they are not special keys!
<cword> is replaced with the word under the cursor (like |star|)
@@ -785,7 +789,8 @@ Note: these are typed literally, they are not special keys!
<cfile> is replaced with the path name under the cursor (like what
|gf| uses)
<afile> When executing autocommands, is replaced with the file name
- for a file read or write.
+ of the buffer being manipulated, or the file for a read or
+ write.
<abuf> When executing autocommands, is replaced with the currently
effective buffer number (for ":r file" and ":so file" it is
the current buffer, the file being read/sourced is not in a
diff --git a/runtime/doc/deprecated.txt b/runtime/doc/deprecated.txt
index b3e2f7a92f..f3d4f16244 100644
--- a/runtime/doc/deprecated.txt
+++ b/runtime/doc/deprecated.txt
@@ -47,6 +47,7 @@ Modifiers ~
Options ~
*'fe'* 'fenc'+'enc' before Vim 6.0; no longer used.
+*'highlight'* *'hl'* Names of builtin |highlight-groups| cannot be changed.
*'langnoremap'* Deprecated alias to 'nolangremap'.
*'vi'*
*'viminfo'* Deprecated alias to 'shada' option.
diff --git a/runtime/doc/develop.txt b/runtime/doc/develop.txt
index 298f64bbee..36826e2479 100644
--- a/runtime/doc/develop.txt
+++ b/runtime/doc/develop.txt
@@ -142,6 +142,8 @@ shell The Vim application. This can cover the whole screen (e.g.,
window View on a buffer. There can be several windows in Vim,
together with the command line, menubar, toolbar, etc. they
fit in the shell.
+frame Windows are kept in a tree of frames. Each frame contains
+ a column, row, or window ("leaf" frame).
PROVIDERS *dev-provider*
@@ -230,23 +232,47 @@ _not_ a Buffer). The common {action} "list" indicates that it lists all
bufs (plural) in the global context.
+API-CLIENT *dev-api-client*
+
+Package Naming ~
+API client packages should NOT be named something ambiguous like "neovim" or
+"python-client". Use "nvim" as a prefix/suffix to some other identifier
+following ecosystem conventions.
+
+For example, Python packages tend to have "py" in the name, so "pynvim" is
+a good name: it's idiomatic and unambiguous. If the package is named "neovim",
+it confuses users, and complicates documentation and discussions.
+
+Examples of API-client package names:
+ GOOD: nvim-racket
+ GOOD: pynvim
+ BAD: python-client
+ BAD: neovim
+
+Implementation ~
+Consider using libmpack instead of the msgpack.org C/C++ library. libmpack is
+small, efficient, and C89-compatible. It can be easily inlined in your
+C project source, too. https://github.com/libmpack/libmpack/
+
+
EXTERNAL UI *dev-ui*
+Compatibility ~
External UIs should be aware of the |api-contract|. In particular, future
-versions of Nvim may add optional, new items to existing events. The API is
-strongly backwards-compatible, but clients must not break if new fields are
-added to existing events.
+versions of Nvim may add new items to existing events. The API is strongly
+backwards-compatible, but clients must not break if new fields are added to
+existing events.
-External UIs are expected to implement some common features.
+Common Features ~
+External UIs are expected to implement these common features:
+- Cursor style (shape, color) should respond to the 'guicursor' properties
+ delivered with the mode_info_set UI event.
+- Send the "super" key (Windows key, Apple key) as a |<D-| chord.
-- Users may want to configure UI-specific options. The UI should publish the
- |GUIEnter| autocmd after attaching to Nvim: >
- doautocmd GUIEnter
+Implementation ~
- Options can be monitored for changes by the |OptionSet| autocmd. E.g. if the
user sets the 'guifont' option, this autocmd notifies channel 42: >
autocmd OptionSet guifont call rpcnotify(42, 'option-changed', 'guifont', &guifont)
-- cursor-shape change: 'guicursor' properties are sent in the mode_info_set UI
- event.
vim:tw=78:ts=8:ft=help:norl:
diff --git a/runtime/doc/diff.txt b/runtime/doc/diff.txt
index 8cb049584a..b9dccc42a8 100644
--- a/runtime/doc/diff.txt
+++ b/runtime/doc/diff.txt
@@ -13,7 +13,7 @@ The basics are explained in section |08.7| of the user manual.
Type |gO| to see the table of contents.
==============================================================================
-1. Starting diff mode
+1. Starting diff mode *start-vimdiff*
To start editing in diff mode, run "nvim -d". This starts Nvim as usual, and
additionally sets up for viewing the differences between the arguments. >
@@ -214,8 +214,8 @@ The diffs are highlighted with these groups:
(searching from the end of the line). The
text in between is highlighted. This means
that parts in the middle that are still the
- same are highlighted anyway. Only "iwhite" of
- 'diffopt' is used here.
+ same are highlighted anyway. The 'diffopt'
+ flags "iwhite" and "icase" are used here.
|hl-DiffDelete| DiffDelete Deleted lines. Also called filler lines,
because they don't really exist in this
buffer.
@@ -314,7 +314,7 @@ g:diff_translations to zero: >
let g:diff_translations = 0
<
-After setting this variable, Reload the syntax script: >
+After setting this variable, reload the syntax script: >
set syntax=diff
<
diff --git a/runtime/doc/editing.txt b/runtime/doc/editing.txt
index a747058991..1b9a1b38fb 100644
--- a/runtime/doc/editing.txt
+++ b/runtime/doc/editing.txt
@@ -236,7 +236,7 @@ If you want to keep the changed buffer without saving it, switch on the
*:vie* *:view*
:vie[w][!] [++opt] [+cmd] file
- When used in Ex mode: Leave |Ex mode|, go back to
+ When used in Ex mode: Leave |Ex-mode|, go back to
Normal mode. Otherwise same as |:edit|, but set
'readonly' option for this buffer.
@@ -1032,6 +1032,7 @@ The names can be in upper- or lowercase.
window in the current tab page the current tab page is
closed |tab-page|.
Triggers the |QuitPre| autocommand event.
+ See |CTRL-W_q| for quitting another window.
:conf[irm] q[uit] Quit, but give prompt when changes have been made, or
the last file in the argument list has not been
@@ -1265,7 +1266,7 @@ Commands for changing the working directory can be suffixed with a bang "!"
*:lc* *:lcd*
:lc[d][!] {path} Like |:cd|, but only set the current directory for the
current window. The current directory for other
- windows or any tabs is not changed.
+ windows or tabs is not changed.
*:lch* *:lchdir*
:lch[dir][!] Same as |:lcd|.
@@ -1364,6 +1365,13 @@ If you want to automatically reload a file when it has been changed outside of
Vim, set the 'autoread' option. This doesn't work at the moment you write the
file though, only when the file wasn't changed inside of Vim.
+If you do not want to be asked or automatically reload the file, you can use
+this: >
+ set buftype=nofile
+
+Or, when starting gvim from a shell: >
+ gvim file.log -c "set buftype=nofile"
+
Note that if a FileChangedShell autocommand is defined you will not get a
warning message or prompt. The autocommand is expected to handle this.
@@ -1534,7 +1542,7 @@ There are three different types of searching:
This searches the same directories, but in a different order.
Note that completion for ":find", ":sfind", and ":tabfind" commands do not
- currently work with 'path' items that contain a url or use the double star
+ currently work with 'path' items that contain a URL or use the double star
with depth limiter (/usr/**2) or upward search (;) notations.
vim:tw=78:ts=8:ft=help:norl:
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 300bdd061e..11f549cd05 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -94,9 +94,8 @@ To test for a non-empty string, use empty(): >
Function arguments often behave slightly different from |TRUE|: If the
argument is present and it evaluates to a non-zero Number, |v:true| or a
non-empty String, then the value is considered to be TRUE.
-Note that " " and "0" are also non-empty strings, thus cause the mode to be
-cleared. A List, Dictionary or Float is not a Number or String, thus
-evaluates to FALSE.
+Note that " " and "0" are also non-empty strings, thus considered to be TRUE.
+A List, Dictionary or Float is not a Number or String, thus evaluate to FALSE.
*E745* *E728* *E703* *E729* *E730* *E731*
List, Dictionary and Funcref types are not automatically converted.
@@ -782,14 +781,15 @@ Examples:
"abc" == "Abc" evaluates to 1 if 'ignorecase' is set, 0 otherwise
*E691* *E692*
-A |List| can only be compared with a |List| and only "equal", "not equal" and
-"is" can be used. This compares the values of the list, recursively.
-Ignoring case means case is ignored when comparing item values.
+A |List| can only be compared with a |List| and only "equal", "not equal",
+"is" and "isnot" can be used. This compares the values of the list,
+recursively. Ignoring case means case is ignored when comparing item values.
*E735* *E736*
A |Dictionary| can only be compared with a |Dictionary| and only "equal", "not
-equal" and "is" can be used. This compares the key/values of the |Dictionary|
-recursively. Ignoring case means case is ignored when comparing item values.
+equal", "is" and "isnot" can be used. This compares the key/values of the
+|Dictionary| recursively. Ignoring case means case is ignored when comparing
+item values.
*E694*
A |Funcref| can only be compared with a |Funcref| and only "equal", "not
@@ -1016,7 +1016,7 @@ When expr8 is a |Funcref| type variable, invoke the function it refers to.
*expr9*
number
------
-number number constant *expr-number*
+number number constant *expr-number*
*hex-number* *octal-number* *binary-number*
Decimal, Hexadecimal (starting with 0x or 0X), Binary (starting with 0b or 0B)
@@ -1474,7 +1474,6 @@ v:count The count given for the last Normal mode command. Can be used
When there are two counts, as in "3d2w", they are multiplied,
just like what happens in the command, "d6w" for the example.
Also used for evaluating the 'formatexpr' option.
- "count" also works, for backwards compatibility.
*v:count1* *count1-variable*
v:count1 Just like "v:count", but defaults to one when no count is
@@ -1785,11 +1784,11 @@ v:scrollstart String describing the script or function that caused the
*v:servername* *servername-variable*
*$NVIM_LISTEN_ADDRESS*
-v:servername Default {Nvim} server address. Equivalent to
+v:servername Default Nvim server address. Equivalent to
|$NVIM_LISTEN_ADDRESS| on startup. |serverstop()|
Read-only.
-
+
v:searchforward *v:searchforward* *searchforward-variable*
Search direction: 1 after a forward search, 0 after a
backward search. It is reset to forward when directly setting
@@ -1870,6 +1869,8 @@ v:termresponse The escape sequence returned by the terminal for the DA
*v:testing* *testing-variable*
v:testing Must be set before using `test_garbagecollect_now()`.
+ Also, when set certain error messages won't be shown for 2
+ seconds. (e.g. "'dictionary' option is empty")
*v:this_session* *this_session-variable*
v:this_session Full filename of the last loaded or saved session file. See
@@ -2029,9 +2030,9 @@ filereadable({file}) Number |TRUE| if {file} is a readable file
filewritable({file}) Number |TRUE| if {file} is a writable file
filter({expr1}, {expr2}) List/Dict remove items from {expr1} where
{expr2} is 0
-finddir({name}[, {path}[, {count}]])
+finddir({name} [, {path} [, {count}]])
String find directory {name} in {path}
-findfile({name}[, {path}[, {count}]])
+findfile({name} [, {path} [, {count}]])
String find file {name} in {path}
float2nr({expr}) Number convert Float {expr} to a Number
floor({expr}) Float round {expr} down
@@ -2075,7 +2076,7 @@ getftime({fname}) Number last modification time of file
getftype({fname}) String description of type of file {fname}
getline({lnum}) String line {lnum} of current buffer
getline({lnum}, {end}) List lines {lnum} to {end} of current buffer
-getloclist({nr}[, {what}]) List list of location list items
+getloclist({nr} [, {what}]) List list of location list items
getmatches() List list of current matches
getpid() Number process ID of Vim
getpos({expr}) List position of cursor, mark, etc.
@@ -2117,7 +2118,8 @@ index({list}, {expr} [, {start} [, {ic}]])
Number index in {list} where {expr} appears
input({prompt} [, {text} [, {completion}]])
String get input from the user
-inputdialog({p} [, {t} [, {c}]]) String like input() but in a GUI dialog
+inputdialog({prompt} [, {text} [, {completion}]])
+ String like input() but in a GUI dialog
inputlist({textlist}) Number let the user pick from a choice list
inputrestore() Number restore typeahead
inputsave() Number save and clear typeahead
@@ -2199,12 +2201,13 @@ readfile({fname} [, {binary} [, {max}]])
reltime([{start} [, {end}]]) List get time value
reltimefloat({time}) Float turn the time value into a Float
reltimestr({time}) String turn time value into a String
-remote_expr({server}, {string} [, {idvar}])
+remote_expr({server}, {string} [, {idvar} [, {timeout}]])
String send expression
remote_foreground({server}) Number bring Vim server to the foreground
remote_peek({serverid} [, {retvar}])
Number check for reply string
-remote_read({serverid}) String read reply string
+remote_read({serverid} [, {timeout}])
+ String read reply string
remote_send({server}, {string} [, {idvar}])
String send key sequence
remove({list}, {idx} [, {end}]) any remove items {idx}-{end} from {list}
@@ -2272,22 +2275,22 @@ sqrt({expr}) Float square root of {expr}
str2float({expr}) Float convert String to Float
str2nr({expr} [, {base}]) Number convert String to Number
strchars({expr} [, {skipcc}]) Number character length of the String {expr}
-strcharpart({str}, {start}[, {len}])
+strcharpart({str}, {start} [, {len}])
String {len} characters of {str} at {start}
strdisplaywidth({expr} [, {col}]) Number display length of the String {expr}
-strftime({format}[, {time}]) String time in specified format
+strftime({format} [, {time}]) String time in specified format
strgetchar({str}, {index}) Number get char {index} from {str}
-stridx({haystack}, {needle}[, {start}])
+stridx({haystack}, {needle} [, {start}])
Number index of {needle} in {haystack}
string({expr}) String String representation of {expr} value
strlen({expr}) Number length of the String {expr}
-strpart({str}, {start}[, {len}])
+strpart({str}, {start} [, {len}])
String {len} characters of {str} at {start}
strridx({haystack}, {needle} [, {start}])
Number last index of {needle} in {haystack}
strtrans({expr}) String translate string to make it printable
strwidth({expr}) Number display cell length of the String {expr}
-submatch({nr}[, {list}]) String or List
+submatch({nr} [, {list}]) String or List
specific match in ":s" or substitute()
substitute({expr}, {pat}, {sub}, {flags})
String all {pat} in {expr} replaced with {sub}
@@ -2753,7 +2756,7 @@ changenr() *changenr()*
redo it is the number of the redone change. After undo it is
one less than the number of the undone change.
-char2nr({expr}[, {utf8}]) *char2nr()*
+char2nr({expr} [, {utf8}]) *char2nr()*
Return number value of the first char in {expr}. Examples: >
char2nr(" ") returns 32
char2nr("ABC") returns 65
@@ -3106,6 +3109,7 @@ did_filetype() Returns |TRUE| when autocommands are being executed and the
FileType event has been triggered at least once. Can be used
to avoid triggering the FileType event again in the scripts
that detect the file type. |FileType|
+ Returns |FALSE| when `:setf FALLBACK` was used.
When editing another file, the counter is reset, thus this
really checks if the FileType event has been triggered for the
current buffer. This allows an autocommand that starts
@@ -3197,7 +3201,7 @@ execute({command} [, {silent}]) *execute()*
"" no `:silent` used
"silent" `:silent` used
"silent!" `:silent!` used
- The default is 'silent'. Note that with "silent!", unlike
+ The default is "silent". Note that with "silent!", unlike
`:redir`, error messages are dropped.
To get a list of lines use |split()| on the result: >
@@ -3528,7 +3532,7 @@ filter({expr1}, {expr2}) *filter()*
defined with the "abort" flag.
-finddir({name}[, {path}[, {count}]]) *finddir()*
+finddir({name} [, {path} [, {count}]]) *finddir()*
Find directory {name} in {path}. Supports both downwards and
upwards recursive directory searches. See |file-searching|
for the syntax of {path}.
@@ -3543,7 +3547,7 @@ finddir({name}[, {path}[, {count}]]) *finddir()*
{only available when compiled with the |+file_in_path|
feature}
-findfile({name}[, {path}[, {count}]]) *findfile()*
+findfile({name} [, {path} [, {count}]]) *findfile()*
Just like |finddir()|, but find a file instead of a directory.
Uses 'suffixesadd'.
Example: >
@@ -3710,7 +3714,7 @@ function({name} [, {arglist}] [, {dict}])
When {arglist} or {dict} is present this creates a partial.
That mans the argument list and/or the dictionary is stored in
the Funcref and will be used when the Funcref is called.
-
+
The arguments are passed to the function in front of other
arguments. Example: >
func Callback(arg1, arg2, name)
@@ -3775,10 +3779,10 @@ get({dict}, {key} [, {default}])
get({func}, {what})
Get item {what} from Funcref {func}. Possible values for
{what} are:
- 'name' The function name
- 'func' The function
- 'dict' The dictionary
- 'args' The list with arguments
+ "name" The function name
+ "func" The function
+ "dict" The dictionary
+ "args" The list with arguments
*getbufinfo()*
getbufinfo([{expr}])
@@ -4075,13 +4079,16 @@ getcompletion({pat}, {type} [, {filtered}]) *getcompletion()*
getcurpos() Get the position of the cursor. This is like getpos('.'), but
includes an extra item in the list:
[bufnum, lnum, col, off, curswant] ~
- The "curswant" number is the preferred column when moving the
- cursor vertically.
- This can be used to save and restore the cursor position: >
- let save_cursor = getcurpos()
- MoveTheCursorAround
- call setpos('.', save_cursor)
-<
+ The "curswant" number is the preferred column when moving the
+ cursor vertically. Also see |getpos()|.
+
+ This can be used to save and restore the cursor position: >
+ let save_cursor = getcurpos()
+ MoveTheCursorAround
+ call setpos('.', save_cursor)
+< Note that this only works within the window. See
+ |winrestview()| for restoring more state.
+
getcwd([{winnr}[, {tabnr}]]) *getcwd()*
With no arguments the result is a String, which is the name of
the current effective working directory. With {winnr} or
@@ -4379,11 +4386,13 @@ gettabwinvar({tabnr}, {winnr}, {varname} [, {def}]) *gettabwinvar()*
getwinposx() The result is a Number, which is the X coordinate in pixels of
the left hand side of the GUI Vim window. The result will be
-1 if the information is not available.
+ The value can be used with `:winpos`.
*getwinposy()*
getwinposy() The result is a Number, which is the Y coordinate in pixels of
the top of the GUI Vim window. The result will be -1 if the
information is not available.
+ The value can be used with `:winpos`.
getwininfo([{winid}]) *getwininfo()*
Returns information about windows as a List with Dictionaries.
@@ -4397,7 +4406,9 @@ getwininfo([{winid}]) *getwininfo()*
Each List item is a Dictionary with the following entries:
bufnr number of buffer in the window
- height window height
+ height window height (excluding winbar)
+ winbar 1 if the window has a toolbar, 0
+ otherwise
loclist 1 if showing a location list
quickfix 1 if quickfix or location list window
tabnr tab page number
@@ -4915,42 +4926,48 @@ items({dict}) *items()*
entry and the value of this entry. The |List| is in arbitrary
order.
-jobclose({job}[, {stream}]) {Nvim} *jobclose()*
- Close {job}'s {stream}, which can be one of "stdin", "stdout",
- "stderr" or "rpc" (closes the rpc channel for a job started
- with the "rpc" option.) If {stream} is omitted, all streams
- are closed. If the job is a pty job, this will then close the
- pty master, sending SIGHUP to the job process.
+jobclose({job}[, {stream}]) *jobclose()*
+ Close {stream} of |job-id| {job}, where {stream} is one of:
+ "stdin", "stdout", "stderr", "rpc" (RPC channel of a job
+ started with `"rpc":v:true`). If {stream} is omitted, all
+ streams are closed. If the job is a pty job, this will close
+ the pty master, sending SIGHUP to the job process.
-jobpid({job}) {Nvim} *jobpid()*
- Return the pid (process id) of {job}.
+jobpid({job}) *jobpid()*
+ Return the PID (process id) of |job-id| {job}.
-jobresize({job}, {width}, {height}) {Nvim} *jobresize()*
- Resize {job}'s pseudo terminal window to {width} and {height}.
- This function will fail if used on jobs started without the
- "pty" option.
+jobresize({job}, {width}, {height}) *jobresize()*
+ Resize the pseudo terminal window of |job-id| {job} to {width}
+ columns and {height} rows.
+ Fails if the job was not started with `"pty":v:true`.
-jobsend({job}, {data}) {Nvim} *jobsend()*
- Send data to {job} by writing it to the stdin of the process.
+jobsend({job}, {data}) *jobsend()*
+ Writes to stdin of the process associated with |job-id| {job}.
Returns 1 if the write succeeded, 0 otherwise.
- See |job-control| for more information.
+ See |job-control|.
{data} may be a string, string convertible, or a list. If
- {data} is a list, the items will be separated by newlines and
- any newlines in an item will be sent as a NUL. A final newline
- can be sent by adding a final empty string. For example: >
+ {data} is a list, the items will be joined by newlines; any
+ newlines in an item will be sent as NUL. To send a final
+ newline, include a final empty string. Example: >
:call jobsend(j, ["abc", "123\n456", ""])
< will send "abc<NL>123<NUL>456<NL>".
- If the job was started with the rpc option this function
- cannot be used, instead use |rpcnotify()| and |rpcrequest()|
- to communicate with the job.
+ jobsend() writes raw data, not RPC messages. If the job was
+ created with `"rpc":v:true` then the channel expects RPC
+ messages, use |rpcnotify()| and |rpcrequest()| instead.
-jobstart({cmd}[, {opts}]) {Nvim} *jobstart()*
- Spawns {cmd} as a job. If {cmd} is a |List| it is run
- directly. If {cmd} is a |String| it is processed like this: >
+jobstart({cmd}[, {opts}]) *jobstart()*
+ Spawns {cmd} as a job.
+ If {cmd} is a List it runs directly (no 'shell').
+ If {cmd} is a String it runs in the 'shell', like this: >
:call jobstart(split(&shell) + split(&shellcmdflag) + ['{cmd}'])
-< (Only shows the idea; see |shell-unquoting| for full details.)
+< (See |shell-unquoting| for details.)
+
+ Returns |job-id| on success, 0 on invalid arguments (or job
+ table is full), -1 if {cmd}[0] or 'shell' is not executable.
+
+ See |job-control| and |rpc|.
NOTE: on Windows if {cmd} is a List:
- cmd[0] must be an executable (not a "built-in"). If it is
@@ -4962,6 +4979,7 @@ jobstart({cmd}[, {opts}]) {Nvim} *jobstart()*
by CommandLineToArgvW https://msdn.microsoft.com/bb776391
unless cmd[0] is some form of "cmd.exe".
+ *jobstart-options*
{opts} is a dictionary with these keys:
|on_stdout|: stdout event handler (function name or |Funcref|)
|on_stderr|: stderr event handler (function name or |Funcref|)
@@ -4972,9 +4990,9 @@ jobstart({cmd}[, {opts}]) {Nvim} *jobstart()*
with the job over stdin and stdout. "on_stdout" is
then ignored, but "on_stderr" can still be used.
pty : If set, the job will be connected to a new pseudo
- terminal, and the job streams are connected to
- the master file descriptor. "on_stderr" is ignored
- as all output will be received on stdout.
+ terminal and the job streams are connected to the
+ master file descriptor. "on_stderr" is ignored,
+ "on_stdout" receives all output.
width : (pty only) Width of the terminal screen
height : (pty only) Height of the terminal screen
@@ -4982,43 +5000,31 @@ jobstart({cmd}[, {opts}]) {Nvim} *jobstart()*
detach : (non-pty only) Detach the job process from the
nvim process. The process will not get killed
when nvim exits. If the process dies before
- nvim exits, on_exit will still be invoked.
+ nvim exits, "on_exit" will still be invoked.
- {opts} is passed as |self| to the callback; the caller may
- pass arbitrary data by setting other keys.
- Returns:
- - The job ID on success, which is used by |jobsend()| (or
- |rpcnotify()| and |rpcrequest()| if "rpc" option was used)
- and |jobstop()|
- - 0 on invalid arguments or if the job table is full
- - -1 if {cmd}[0] is not executable.
- See |job-control| and |msgpack-rpc| for more information.
-
-jobstop({job}) {Nvim} *jobstop()*
- Stop a job created with |jobstart()| by sending a `SIGTERM`
- to the corresponding process. If the process doesn't exit
- cleanly soon, a `SIGKILL` will be sent. When the job is
- finally closed, the exit handler provided to |jobstart()| or
- |termopen()| will be run.
- See |job-control| for more information.
-
-jobwait({ids}[, {timeout}]) {Nvim} *jobwait()*
+ {opts} is passed as |self| dictionary to the callback; the
+ caller may set other keys to pass application-specific data.
+
+jobstop({job}) *jobstop()*
+ Stop |job-id| {job} by sending SIGTERM to the job process. If
+ the process does not terminate after a timeout then SIGKILL
+ will be sent. When the job terminates its |on_exit| handler
+ (if any) will be invoked.
+ See |job-control|.
+
+jobwait({ids}[, {timeout}]) *jobwait()*
Wait for a set of jobs to finish. The {ids} argument is a list
- of ids for jobs that will be waited for. If passed, {timeout}
- is the maximum number of milliseconds to wait. While this
- function is executing, callbacks for jobs not in the {ids}
- list can be executed. Also, the screen wont be updated unless
- |:redraw| is invoked by one of the callbacks.
-
- Returns a list of integers with the same length as {ids}, with
- each integer representing the wait result for the
- corresponding job id. The possible values for the resulting
- integers are:
-
- * the job return code if the job exited
- * -1 if the wait timed out for the job
- * -2 if the job was interrupted
- * -3 if the job id is invalid.
+ of |job-id|s to wait for. {timeout} is the maximum number of
+ milliseconds to wait. During jobwait(), callbacks for jobs not
+ in the {ids} list may be invoked. The screen will not redraw
+ unless |:redraw| is invoked by a callback.
+
+ Returns a list of len({ids}) integers, where each integer is
+ the wait-result of the corresponding job. Each wait-result is:
+ Job exit-code, if the job exited
+ -1 if the wait timed out for the job
+ -2 if the job was interrupted
+ -3 if the |job-id| is invalid.
join({list} [, {sep}]) *join()*
Join the items in {list} together into one String.
@@ -5153,7 +5159,10 @@ line({expr}) The result is a Number, which is the line number of the file
< *last-position-jump*
This autocommand jumps to the last known position in a file
just after opening it, if the '" mark is set: >
- :au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g`\"" | endif
+ :au BufReadPost *
+ \ if line("'\"") > 1 && line("'\"") <= line("$") && &ft !~# 'commit'
+ \ | exe "normal! g`\""
+ \ | endif
line2byte({lnum}) *line2byte()*
Return the byte count from the start of the buffer for line
@@ -5248,12 +5257,12 @@ map({expr1}, {expr2}) *map()*
defined with the "abort" flag.
-maparg({name}[, {mode} [, {abbr} [, {dict}]]]) *maparg()*
+maparg({name} [, {mode} [, {abbr} [, {dict}]]]) *maparg()*
When {dict} is omitted or zero: Return the rhs of mapping
{name} in mode {mode}. The returned String has special
characters translated like in the output of the ":map" command
listing.
-
+
When there is no mapping for {name}, an empty String is
returned.
@@ -5269,6 +5278,7 @@ maparg({name}[, {mode} [, {abbr} [, {dict}]]]) *maparg()*
"s" Select
"x" Visual
"l" langmap |language-mapping|
+ "t" Terminal
"" Normal, Visual and Operator-pending
When {mode} is omitted, the modes for "" are used.
@@ -5302,7 +5312,7 @@ maparg({name}[, {mode} [, {abbr} [, {dict}]]]) *maparg()*
exe 'nnoremap <Tab> ==' . maparg('<Tab>', 'n')
-mapcheck({name}[, {mode} [, {abbr}]]) *mapcheck()*
+mapcheck({name} [, {mode} [, {abbr}]]) *mapcheck()*
Check if there is a mapping that matches with {name} in mode
{mode}. See |maparg()| for {mode} and special names in
{name}.
@@ -5334,7 +5344,7 @@ mapcheck({name}[, {mode} [, {abbr}]]) *mapcheck()*
< This avoids adding the "_vv" mapping when there already is a
mapping for "_v" or for "_vvv".
-match({expr}, {pat}[, {start}[, {count}]]) *match()*
+match({expr}, {pat} [, {start} [, {count}]]) *match()*
When {expr} is a |List| then this returns the index of the
first item where {pat} matches. Each item is used as a
String, |Lists| and |Dictionaries| are used as echoed.
@@ -5443,7 +5453,7 @@ matchadd({group}, {pattern}[, {priority}[, {id} [, {dict}]]])
one operation by |clearmatches()|.
*matchaddpos()*
-matchaddpos({group}, {pos}[, {priority}[, {id}[, {dict}]]])
+matchaddpos({group}, {pos} [, {priority} [, {id} [, {dict}]]])
Same as |matchadd()|, but requires a list of positions {pos}
instead of a pattern. This command is faster than |matchadd()|
because it does not require to handle regular expressions and
@@ -5463,7 +5473,7 @@ matchaddpos({group}, {pos}[, {priority}[, {id}[, {dict}]]])
be highlighted.
- A list with three numbers, e.g., [23, 11, 3]. As above, but
the third number gives the length of the highlight in bytes.
-
+
The maximum number of positions is 8.
Example: >
@@ -5496,7 +5506,7 @@ matchdelete({id}) *matchdelete()* *E802* *E803*
otherwise -1. See example for |matchadd()|. All matches can
be deleted in one operation by |clearmatches()|.
-matchend({expr}, {pat}[, {start}[, {count}]]) *matchend()*
+matchend({expr}, {pat} [, {start} [, {count}]]) *matchend()*
Same as |match()|, but return the index of first character
after the match. Example: >
:echo matchend("testing", "ing")
@@ -5515,7 +5525,7 @@ matchend({expr}, {pat}[, {start}[, {count}]]) *matchend()*
< result is "-1".
When {expr} is a |List| the result is equal to |match()|.
-matchlist({expr}, {pat}[, {start}[, {count}]]) *matchlist()*
+matchlist({expr}, {pat} [, {start} [, {count}]]) *matchlist()*
Same as |match()|, but return a |List|. The first item in the
list is the matched string, same as what matchstr() would
return. Following items are submatches, like "\1", "\2", etc.
@@ -5525,7 +5535,7 @@ matchlist({expr}, {pat}[, {start}[, {count}]]) *matchlist()*
< Results in: ['acd', 'a', '', 'c', 'd', '', '', '', '', '']
When there is no match an empty list is returned.
-matchstr({expr}, {pat}[, {start}[, {count}]]) *matchstr()*
+matchstr({expr}, {pat} [, {start} [, {count}]]) *matchstr()*
Same as |match()|, but return the matched string. Example: >
:echo matchstr("testing", "ing")
< results in "ing".
@@ -5538,7 +5548,7 @@ matchstr({expr}, {pat}[, {start}[, {count}]]) *matchstr()*
When {expr} is a |List| then the matching item is returned.
The type isn't changed, it's not necessarily a String.
-matchstrpos({expr}, {pat}[, {start}[, {count}]]) *matchstrpos()*
+matchstrpos({expr}, {pat} [, {start} [, {count}]]) *matchstrpos()*
Same as |matchstr()|, but return the matched string, the start
position and the end position of the match. Example: >
:echo matchstrpos("testing", "ing")
@@ -5652,7 +5662,6 @@ mode([expr]) Return a string that indicates the current mode.
i Insert
R Replace |R|
Rv Virtual Replace |gR|
- t Terminal {Nvim}
c Command-line
cv Vim Ex mode |gQ|
ce Normal Ex mode |Q|
@@ -5660,6 +5669,7 @@ mode([expr]) Return a string that indicates the current mode.
rm The -- more -- prompt
r? A |:confirm| query of some sort
! Shell or external command is executing
+ t Terminal mode: keys go to the job
This is useful in the 'statusline' option or when used
with |remote_expr()| In most other places it always returns
"c" or "n".
@@ -5763,7 +5773,7 @@ nextnonblank({lnum}) *nextnonblank()*
below it, zero is returned.
See also |prevnonblank()|.
-nr2char({expr}[, {utf8}]) *nr2char()*
+nr2char({expr} [, {utf8}]) *nr2char()*
Return a string with a single character, which has the number
value {expr}. Examples: >
nr2char(64) returns "@"
@@ -5972,7 +5982,7 @@ printf({fmt}, {expr1} ...) *printf()*
feature works just like 's'.
*printf-f* *E807*
- f F The Float argument is converted into a string of the
+ f F The Float argument is converted into a string of the
form 123.456. The precision specifies the number of
digits after the decimal point. When the precision is
zero the decimal point is omitted. When the precision
@@ -6038,10 +6048,10 @@ py3eval({expr}) *py3eval()*
pyeval({expr}) *pyeval()*
Evaluate Python expression {expr} and return its result
converted to Vim data structures.
- Numbers and strings are returned as they are (strings are
+ Numbers and strings are returned as they are (strings are
copied though).
Lists are represented as Vim |List| type.
- Dictionaries are represented as Vim |Dictionary| type,
+ Dictionaries are represented as Vim |Dictionary| type,
non-string keys result in error.
{only available when compiled with the |+python| feature}
@@ -6152,6 +6162,12 @@ remote_expr({server}, {string} [, {idvar}])
{only available when compiled with the |+clientserver| feature}
Note: Any errors will cause a local error message to be issued
and the result will be the empty string.
+
+ Variables will be evaluated in the global namespace,
+ independent of a function currently being active. Except
+ when in debug mode, then local function variables and
+ arguments can be evaluated.
+
Examples: >
:echo remote_expr("gvim", "2+2")
:echo remote_expr("gvim1", "b:current_syntax")
@@ -6311,12 +6327,12 @@ rpcstop({channel}) {Nvim} *rpcstop()*
Closes the socket connection if the channel was opened by
connecting to |v:servername|.
-screenattr(row, col) *screenattr()*
+screenattr({row}, {col}) *screenattr()*
Like |screenchar()|, but return the attribute. This is a rather
arbitrary number that can only be used to compare to the
attribute at other positions.
-screenchar(row, col) *screenchar()*
+screenchar({row}, {col}) *screenchar()*
The result is a Number, which is the character at position
[row, col] on the screen. This works for every possible
screen position, also status lines, window separators and the
@@ -6372,7 +6388,7 @@ search({pattern} [, {flags} [, {stopline} [, {timeout}]]]) *search()*
flag.
'ignorecase', 'smartcase' and 'magic' are used.
-
+
When the 'z' flag is not given, searching 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
@@ -6840,13 +6856,13 @@ setqflist({list} [, {action}[, {what}]]) *setqflist()*
This function can be used to create a quickfix list
independent of the 'errorformat' setting. Use a command like
- ":cc 1" to jump to the first position.
+ `:cc 1` to jump to the first position.
*setreg()*
setreg({regname}, {value} [, {options}])
Set the register {regname} to {value}.
- {value} may be any value returned by |getreg()|, including
+ {value} may be any value returned by |getreg()|, including
a |List|.
If {options} contains "a" or {regname} is upper case,
then the value is appended.
@@ -6862,14 +6878,14 @@ setreg({regname}, {value} [, {options}])
set to point to register {regname}.
If {options} contains no register settings, then the default
- is to use character mode unless {value} ends in a <NL> for
- string {value} and linewise mode for list {value}. Blockwise
+ is to use character mode unless {value} ends in a <NL> for
+ string {value} and linewise mode for list {value}. Blockwise
mode is never selected automatically.
Returns zero for success, non-zero for failure.
*E883*
- Note: you may not use |List| containing more than one item to
- set search and expression registers. Lists containing no
+ Note: you may not use |List| containing more than one item to
+ set search and expression registers. Lists containing no
items act like empty strings.
Examples: >
@@ -7022,7 +7038,7 @@ sockconnect({mode}, {address}, {opts}) *sockconnect()*
sort({list} [, {func} [, {dict}]]) *sort()* *E702*
Sort the items in {list} in-place. Returns {list}.
-
+
If you want a list to remain unmodified make a copy first: >
:let sortedlist = sort(copy(mylist))
@@ -7033,7 +7049,7 @@ sort({list} [, {func} [, {dict}]]) *sort()* *E702*
When {func} is given and it is '1' or 'i' then case is
ignored.
-
+
When {func} is given and it is 'n' then all items will be
sorted numerical (Implementation detail: This uses the
strtod() function to parse numbers, Strings, Lists, Dicts and
@@ -7203,7 +7219,7 @@ strchars({expr} [, {skipcc}]) *strchars()*
counted separately.
When {skipcc} set to 1, Composing characters are ignored.
Also see |strlen()|, |strdisplaywidth()| and |strwidth()|.
-
+
{skipcc} is only available after 7.4.755. For backward
compatibility, you can define a wrapper function: >
if has("patch-7.4.755")
@@ -7220,7 +7236,7 @@ strchars({expr} [, {skipcc}]) *strchars()*
endfunction
endif
<
-strcharpart({src}, {start}[, {len}]) *strcharpart()*
+strcharpart({src}, {start} [, {len}]) *strcharpart()*
Like |strpart()| but using character index and length instead
of byte index and length.
When a character index is used where a character does not
@@ -7228,7 +7244,7 @@ strcharpart({src}, {start}[, {len}]) *strcharpart()*
strcharpart('abc', -1, 2)
< results in 'a'.
-strdisplaywidth({expr}[, {col}]) *strdisplaywidth()*
+strdisplaywidth({expr} [, {col}]) *strdisplaywidth()*
The result is a Number, which is the number of display cells
String {expr} occupies on the screen when it starts at {col}.
When {col} is omitted zero is used. Otherwise it is the
@@ -7317,7 +7333,7 @@ strlen({expr}) The result is a Number, which is the length of the String
|strchars()|.
Also see |len()|, |strdisplaywidth()| and |strwidth()|.
-strpart({src}, {start}[, {len}]) *strpart()*
+strpart({src}, {start} [, {len}]) *strpart()*
The result is a String, which is part of {src}, starting from
byte {start}, with the byte length {len}.
To count characters instead of bytes use |strcharpart()|.
@@ -7369,7 +7385,7 @@ strwidth({expr}) *strwidth()*
Ambiguous, this function's return value depends on 'ambiwidth'.
Also see |strlen()|, |strdisplaywidth()| and |strchars()|.
-submatch({nr}[, {list}]) *submatch()* *E935*
+submatch({nr} [, {list}]) *submatch()* *E935*
Only for an expression in a |:substitute| command or
substitute() function.
Returns the {nr}'th submatch of the matched text. When {nr}
@@ -7378,8 +7394,8 @@ submatch({nr}[, {list}]) *submatch()* *E935*
multi-line match or a NUL character in the text.
Also see |sub-replace-expression|.
- If {list} is present and non-zero then submatch() returns
- a list of strings, similar to |getline()| with two arguments.
+ If {list} is present and non-zero then submatch() returns
+ a list of strings, similar to |getline()| with two arguments.
NL characters in the text represent NUL characters in the
text.
Only returns more than one item for |:substitute|, inside
@@ -7399,7 +7415,7 @@ substitute({expr}, {pat}, {sub}, {flags}) *substitute()*
the first match of {pat} is replaced with {sub}.
When {flags} is "g", all matches of {pat} in {expr} are
replaced. Otherwise {flags} should be "".
-
+
This works like the ":substitute" command (without any flags).
But the matching with {pat} is always done like the 'magic'
option is set and 'cpoptions' is empty (to make scripts
@@ -7633,7 +7649,7 @@ tagfiles() Returns a |List| with the file names used to search for tags
for the current buffer. This is the 'tags' option expanded.
-taglist({expr}[, {filename}]) *taglist()*
+taglist({expr} [, {filename}]) *taglist()*
Returns a list of tags matching the regular expression {expr}.
If {filename} is passed it is used to prioritize the results
@@ -7662,7 +7678,7 @@ taglist({expr}[, {filename}]) *taglist()*
may appear, they give the name of the entity the tag is
contained in.
- The ex-command 'cmd' can be either an ex search pattern, a
+ The ex-command "cmd" can be either an ex search pattern, a
line number or a line number followed by a byte number.
If there are no matching tags, then an empty list is returned.
@@ -7881,7 +7897,7 @@ undotree() *undotree()*
"save_last" Number of the last file write. Zero when no
write yet.
"save_cur" Number of the current position in the undo
- tree.
+ tree.
"synced" Non-zero when the last undo block was synced.
This happens when waiting from input from the
user. See |undo-blocks|.
@@ -8040,6 +8056,7 @@ winheight({nr}) *winheight()*
When {nr} is zero, the height of the current window is
returned. When window {nr} doesn't exist, -1 is returned.
An existing window always has a height of zero or more.
+ This excludes any window toolbar line.
Examples: >
:echo "The current window has " . winheight(0) . " lines."
<
@@ -8201,9 +8218,9 @@ There are four types of features:
Example: >
:if has("win32")
< *has-patch*
-3. {Nvim} version. The "nvim-1.2.3" feature means that the Nvim version is
- 1.2.3 or later. Example: >
- :if has("nvim-1.2.3")
+3. Nvim version. The "nvim-0.2.1" feature means that the Nvim version is
+ 0.2.1 or later. Example: >
+ :if has("nvim-0.2.1")
<
4. Included patches. The "patch123" feature means that patch 123 has been
included. Note that this form does not check the version of Vim, you need
@@ -8273,7 +8290,7 @@ lispindent Compiled with support for lisp indenting.
listcmds Compiled with commands for the buffer list |:files|
and the argument list |arglist|.
localmap Compiled with local mappings and abbr. |:map-local|
-mac macOS version of Vim.
+mac macOS version of Nvim.
menu Compiled with support for |:menu|.
mksession Compiled with support for |:mksession|.
modify_fname Compiled with file name modifiers. |filename-modifiers|
@@ -8317,6 +8334,8 @@ termresponse Compiled with support for |t_RV| and |v:termresponse|.
textobjects Compiled with support for |text-objects|.
timers Compiled with |timer_start()| support.
title Compiled with window title support |'title'|.
+ttyin input is a terminal (tty)
+ttyout output is a terminal (tty)
unix Unix version of Vim.
unnamedplus Compiled with support for "unnamedplus" in 'clipboard'
user_commands User-defined commands.
@@ -8404,13 +8423,16 @@ See |:verbose-cmd| for more information.
*E124* *E125* *E853* *E884*
:fu[nction][!] {name}([arguments]) [range] [abort] [dict] [closure]
- Define a new function by the name {name}. The name
- must be made of alphanumeric characters and '_', and
- must start with a capital or "s:" (see above). Note
- that using "b:" or "g:" is not allowed. (since patch
- 7.4.260 E884 is given if the function name has a colon
- in the name, e.g. for "foo:bar()". Before that patch
- no error was given).
+ Define a new function by the name {name}. The body of
+ the function follows in the next lines, until the
+ matching |:endfunction|.
+
+ The name must be made of alphanumeric characters and
+ '_', and must start with a capital or "s:" (see
+ above). Note that using "b:" or "g:" is not allowed.
+ (since patch 7.4.260 E884 is given if the function
+ name has a colon in the name, e.g. for "foo:bar()".
+ Before that patch no error was given).
{name} can also be a |Dictionary| entry that is a
|Funcref|: >
@@ -8525,9 +8547,10 @@ to the number of named arguments. When using "...", the number of arguments
may be larger.
It is also possible to define a function without any arguments. You must
-still supply the () then. The body of the function follows in the next lines,
-until the matching |:endfunction|. It is allowed to define another function
-inside a function body.
+still supply the () then.
+
+It is allowed to define another function inside a function
+body.
*local-variables*
Inside a function local variables can be used. These will disappear when the
@@ -10382,7 +10405,7 @@ code can be used: >
redir => scriptnames_output
silent scriptnames
redir END
-
+
" Split the output into lines and parse each line. Add an entry to the
" "scripts" dictionary.
let scripts = {}
@@ -10419,6 +10442,22 @@ missing: >
: echo "You will _never_ see this message"
:endif
+To execute a command only when the |+eval| feature is disabled requires a trick,
+as this example shows: >
+ if 1
+ nnoremap : :"
+ endif
+ normal :set history=111<CR>
+ if 1
+ nunmap :
+ endif
+
+The "<CR>" here is a real CR character, type CTRL-V Enter to get it.
+
+When the |+eval| feature is available the ":" is remapped to add a double
+quote, which has the effect of commenting-out the command. without the
+|+eval| feature the nnoremap command is skipped and the command is executed.
+
==============================================================================
11. The sandbox *eval-sandbox* *sandbox* *E48*
diff --git a/runtime/doc/filetype.txt b/runtime/doc/filetype.txt
index 7f1e98fed4..78402b47fe 100644
--- a/runtime/doc/filetype.txt
+++ b/runtime/doc/filetype.txt
@@ -32,7 +32,7 @@ Detail: The ":filetype on" command will load one of these files:
BufNewFile and BufRead events. If the file type is not found by the
name, the file $VIMRUNTIME/scripts.vim is used to detect it from the
contents of the file.
- When the GUI is running or will start soon, the menu.vim script is
+ When the GUI is running or will start soon, the |menu.vim| script is
also sourced. See |'go-M'| about avoiding that.
To add your own file types, see |new-filetype| below. To search for help on a
@@ -309,12 +309,12 @@ define yourself. There are a few ways to avoid this:
You need to define your own mapping before the plugin is loaded (before
editing a file of that type). The plugin will then skip installing the
default mapping.
-
+ *no_mail_maps*
3. Disable defining mappings for a specific filetype by setting a variable,
which contains the name of the filetype. For the "mail" filetype this
would be: >
:let no_mail_maps = 1
-
+< *no_plugin_maps*
4. Disable defining mappings for all filetypes by setting a variable: >
:let no_plugin_maps = 1
<
@@ -724,6 +724,12 @@ Format description:
not recognized here as well.
+RUST *ft-rust*
+
+Since the text for this plugin is rather long it has been put in a separate
+file: |ft_rust.txt|.
+
+
SQL *ft-sql*
Since the text for this plugin is rather long it has been put in a separate
diff --git a/runtime/doc/fold.txt b/runtime/doc/fold.txt
index 42efb04d7a..c644d63280 100644
--- a/runtime/doc/fold.txt
+++ b/runtime/doc/fold.txt
@@ -58,7 +58,7 @@ whichever is lower. These are empty or white lines and lines starting
with a character in 'foldignore'. White space is skipped before checking for
characters in 'foldignore'. For C use "#" to ignore preprocessor lines.
-When you want to ignore lines in another way, use the 'expr' method. The
+When you want to ignore lines in another way, use the "expr" method. The
|indent()| function can be used in 'foldexpr' to get the indent of a line.
@@ -73,7 +73,7 @@ This will call a function to compute the fold level: >
:set foldexpr=MyFoldLevel(v:lnum)
This will make a fold out of paragraphs separated by blank lines: >
:set foldexpr=getline(v:lnum)=~'^\\s*$'&&getline(v:lnum+1)=~'\\S'?'<1':1
-this does the same: >
+This does the same: >
:set foldexpr=getline(v:lnum-1)=~'^\\s*$'&&getline(v:lnum)=~'\\S'?'>1':1
Note that backslashes must be used to escape characters that ":set" handles
@@ -133,7 +133,7 @@ fold level. But note that foldlevel() may return -1 if the level is not known
yet. And it returns the level at the start of the line, while a fold might
end in that line.
-It may happened that folds are not updated properly. You can use |zx| or |zX|
+It may happen that folds are not updated properly. You can use |zx| or |zX|
to force updating folds.
@@ -197,7 +197,7 @@ and the level given by the marker:
1. If a marker with the same fold level is encountered, the previous fold
ends and another fold with the same level starts.
2. If a marker with a higher fold level is found, a nested fold is started.
-3. if a marker with a lower fold level is found, all folds up to and including
+3. If a marker with a lower fold level is found, all folds up to and including
this level end and a fold with the specified level starts.
The number indicates the fold level. A zero cannot be used (a marker with
diff --git a/runtime/doc/ft_ada.txt b/runtime/doc/ft_ada.txt
index 94d97b481a..c1aa0904c4 100644
--- a/runtime/doc/ft_ada.txt
+++ b/runtime/doc/ft_ada.txt
@@ -116,7 +116,7 @@ NOTE: "gnat xref -v" is very tricky to use as it has almost no diagnostic
then "gnat xref -v *.ad?"
4) Project manager support is completely broken - don't even try "gnat xref
-Padacl.gpr".
-5) VIM is faster when the tags file is sorted - use "sort --unique
+5) Vim is faster when the tags file is sorted - use "sort --unique
--ignore-case --output=tags tags" .
6) Remember to insert "!_TAG_FILE_SORTED 2 %sort ui" as first line to mark
the file assorted.
diff --git a/runtime/doc/ft_rust.txt b/runtime/doc/ft_rust.txt
new file mode 100644
index 0000000000..750ba76afc
--- /dev/null
+++ b/runtime/doc/ft_rust.txt
@@ -0,0 +1,237 @@
+*ft_rust.txt* Filetype plugin for Rust
+
+==============================================================================
+CONTENTS *rust*
+
+1. Introduction |rust-intro|
+2. Settings |rust-settings|
+3. Commands |rust-commands|
+4. Mappings |rust-mappings|
+
+==============================================================================
+INTRODUCTION *rust-intro*
+
+This plugin provides syntax and supporting functionality for the Rust
+filetype.
+
+==============================================================================
+SETTINGS *rust-settings*
+
+This plugin has a few variables you can define in your vimrc that change the
+behavior of the plugin.
+
+ *g:rustc_path*
+g:rustc_path~
+ Set this option to the path to rustc for use in the |:RustRun| and
+ |:RustExpand| commands. If unset, "rustc" will be located in $PATH: >
+ let g:rustc_path = $HOME."/bin/rustc"
+<
+
+ *g:rustc_makeprg_no_percent*
+g:rustc_makeprg_no_percent~
+ Set this option to 1 to have 'makeprg' default to "rustc" instead of
+ "rustc %": >
+ let g:rustc_makeprg_no_percent = 1
+<
+
+ *g:rust_conceal*
+g:rust_conceal~
+ Set this option to turn on the basic |conceal| support: >
+ let g:rust_conceal = 1
+<
+
+ *g:rust_conceal_mod_path*
+g:rust_conceal_mod_path~
+ Set this option to turn on |conceal| for the path connecting token
+ "::": >
+ let g:rust_conceal_mod_path = 1
+<
+
+ *g:rust_conceal_pub*
+g:rust_conceal_pub~
+ Set this option to turn on |conceal| for the "pub" token: >
+ let g:rust_conceal_pub = 1
+<
+
+ *g:rust_recommended_style*
+g:rust_recommended_style~
+ Set this option to enable vim indentation and textwidth settings to
+ conform to style conventions of the rust standard library (i.e. use 4
+ spaces for indents and sets 'textwidth' to 99). This option is enabled
+ by default. To disable it: >
+ let g:rust_recommended_style = 0
+<
+
+ *g:rust_fold*
+g:rust_fold~
+ Set this option to turn on |folding|: >
+ let g:rust_fold = 1
+<
+ Value Effect ~
+ 0 No folding
+ 1 Braced blocks are folded. All folds are open by
+ default.
+ 2 Braced blocks are folded. 'foldlevel' is left at the
+ global value (all folds are closed by default).
+
+ *g:rust_bang_comment_leader*
+g:rust_bang_comment_leader~
+ Set this option to 1 to preserve the leader on multi-line doc comments
+ using the /*! syntax: >
+ let g:rust_bang_comment_leader = 1
+<
+
+ *g:ftplugin_rust_source_path*
+g:ftplugin_rust_source_path~
+ Set this option to a path that should be prepended to 'path' for Rust
+ source files: >
+ let g:ftplugin_rust_source_path = $HOME.'/dev/rust'
+<
+
+ *g:rustfmt_command*
+g:rustfmt_command~
+ Set this option to the name of the 'rustfmt' executable in your $PATH. If
+ not specified it defaults to 'rustfmt' : >
+ let g:rustfmt_command = 'rustfmt'
+<
+ *g:rustfmt_autosave*
+g:rustfmt_autosave~
+ Set this option to 1 to run |:RustFmt| automatically when saving a
+ buffer. If not specified it defaults to 0 : >
+ let g:rustfmt_autosave = 0
+<
+ *g:rustfmt_fail_silently*
+g:rustfmt_fail_silently~
+ Set this option to 1 to prevent 'rustfmt' from populating the
+ |location-list| with errors. If not specified it defaults to 0: >
+ let g:rustfmt_fail_silently = 0
+<
+ *g:rustfmt_options*
+g:rustfmt_options~
+ Set this option to a string of options to pass to 'rustfmt'. The
+ write-mode is already set to 'overwrite'. If not specified it
+ defaults to '' : >
+ let g:rustfmt_options = ''
+<
+
+ *g:rust_playpen_url*
+g:rust_playpen_url~
+ Set this option to override the URL for the playpen to use: >
+ let g:rust_playpen_url = 'https://play.rust-lang.org/'
+<
+
+ *g:rust_shortener_url*
+g:rust_shortener_url~
+ Set this option to override the URL for the URL shortener: >
+ let g:rust_shortener_url = 'https://is.gd/'
+<
+
+
+==============================================================================
+COMMANDS *rust-commands*
+
+:RustRun [args] *:RustRun*
+:RustRun! [rustc-args] [--] [args]
+ Compiles and runs the current file. If it has unsaved changes,
+ it will be saved first using |:update|. If the current file is
+ an unnamed buffer, it will be written to a temporary file
+ first. The compiled binary is always placed in a temporary
+ directory, but is run from the current directory.
+
+ The arguments given to |:RustRun| will be passed to the
+ compiled binary.
+
+ If ! is specified, the arguments are passed to rustc instead.
+ A "--" argument will separate the rustc arguments from the
+ arguments passed to the binary.
+
+ If |g:rustc_path| is defined, it is used as the path to rustc.
+ Otherwise it is assumed rustc can be found in $PATH.
+
+:RustExpand [args] *:RustExpand*
+:RustExpand! [TYPE] [args]
+ Expands the current file using --pretty and displays the
+ results in a new split. If the current file has unsaved
+ changes, it will be saved first using |:update|. If the
+ current file is an unnamed buffer, it will be written to a
+ temporary file first.
+
+ The arguments given to |:RustExpand| will be passed to rustc.
+ This is largely intended for specifying various --cfg
+ configurations.
+
+ If ! is specified, the first argument is the expansion type to
+ pass to rustc --pretty. Otherwise it will default to
+ "expanded".
+
+ If |g:rustc_path| is defined, it is used as the path to rustc.
+ Otherwise it is assumed rustc can be found in $PATH.
+
+:RustEmitIr [args] *:RustEmitIr*
+ Compiles the current file to LLVM IR and displays the results
+ in a new split. If the current file has unsaved changes, it
+ will be saved first using |:update|. If the current file is an
+ unnamed buffer, it will be written to a temporary file first.
+
+ The arguments given to |:RustEmitIr| will be passed to rustc.
+
+ If |g:rustc_path| is defined, it is used as the path to rustc.
+ Otherwise it is assumed rustc can be found in $PATH.
+
+:RustEmitAsm [args] *:RustEmitAsm*
+ Compiles the current file to assembly and displays the results
+ in a new split. If the current file has unsaved changes, it
+ will be saved first using |:update|. If the current file is an
+ unnamed buffer, it will be written to a temporary file first.
+
+ The arguments given to |:RustEmitAsm| will be passed to rustc.
+
+ If |g:rustc_path| is defined, it is used as the path to rustc.
+ Otherwise it is assumed rustc can be found in $PATH.
+
+:RustPlay *:RustPlay*
+ This command will only work if you have web-api.vim installed
+ (available at https://github.com/mattn/webapi-vim). It sends the
+ current selection, or if nothing is selected, the entirety of the
+ current buffer to the Rust playpen, and emits a message with the
+ shortened URL to the playpen.
+
+ |g:rust_playpen_url| is the base URL to the playpen, by default
+ "https://play.rust-lang.org/".
+
+ |g:rust_shortener_url| is the base URL for the shortener, by
+ default "https://is.gd/"
+
+:RustFmt *:RustFmt*
+ Runs |g:rustfmt_command| on the current buffer. If
+ |g:rustfmt_options| is set then those will be passed to the
+ executable.
+
+ If |g:rustfmt_fail_silently| is 0 (the default) then it
+ will populate the |location-list| with the errors from
+ |g:rustfmt_command|. If |g:rustfmt_fail_silently| is set to 1
+ then it will not populate the |location-list|.
+
+:RustFmtRange *:RustFmtRange*
+ Runs |g:rustfmt_command| with selected range. See
+ |:RustFmt| for any other information.
+
+==============================================================================
+MAPPINGS *rust-mappings*
+
+This plugin defines mappings for |[[| and |]]| to support hanging indents.
+
+It also has a few other mappings:
+
+ *rust_<D-r>*
+<D-r> Executes |:RustRun| with no arguments.
+ Note: This binding is only available in MacVim.
+
+ *rust_<D-R>*
+<D-R> Populates the command line with |:RustRun|! using the
+ arguments given to the last invocation, but does not
+ execute it.
+ Note: This binding is only available in MacVim.
+
+==============================================================================
+ vim:tw=78:sw=4:noet:ts=8:ft=help:norl:
diff --git a/runtime/doc/gui.txt b/runtime/doc/gui.txt
index fb05f178ad..904c4be19c 100644
--- a/runtime/doc/gui.txt
+++ b/runtime/doc/gui.txt
@@ -46,7 +46,8 @@ When the GUI starts up initializations are carried out, in this order:
already set.
NOTE: All but the first one are not carried out if Vim was started with
-"-u NONE" and no "-U" argument was given, or when started with "-U NONE".
+"-u NONE" or "-u DEFAULTS" and no "-U" argument was given, or when started
+with "-U NONE".
All this happens AFTER the normal Vim initializations, like reading your
vimrc file. See |initialization|.
@@ -382,6 +383,7 @@ menus and menu items. They are most useful for things that you can't remember
what the key sequence was.
For creating menus in a different language, see |:menutrans|.
+If you don't want to use menus at all, see |'go-M'|.
*menu.vim*
The default menus are read from the file "$VIMRUNTIME/menu.vim". See
@@ -398,7 +400,11 @@ in the menu (which can take a bit of time to load). If you want to have all
filetypes already present at startup, add: >
:let do_syntax_sel_menu = 1
-<
+Note that the menu.vim is sourced when `:syntax on` or `:filetype on` is
+executed or after your .vimrc file is sourced. This means that the 'encoding'
+option and the language of messages (`:language messages`) must be set before
+that (if you want to change them).
+
*console-menus*
Although this documentation is in the GUI section, you can actually use menus
in console mode too. You will have to load |menu.vim| explicitly then, it is
@@ -648,6 +654,8 @@ nr Name Normal action ~
In the Win32 GUI, starting a menu name with ']' excludes that menu from the
main menu bar. You must then use the |:popup| command to display it.
+When splitting the window the window toolbar is not copied to the new window.
+
*popup-menu*
You can define the special menu "PopUp". This is the menu that is displayed
when the right mouse button is pressed, if 'mousemodel' is set to popup or
diff --git a/runtime/doc/help.txt b/runtime/doc/help.txt
index 1eda111297..8a83cbc79c 100644
--- a/runtime/doc/help.txt
+++ b/runtime/doc/help.txt
@@ -30,7 +30,7 @@ Get specific help: It is possible to go directly to whatever you want help
help entries for "word".
Or use ":helpgrep word". |:helpgrep|
-VIM stands for Vi IMproved. Most of VIM was made by Bram Moolenaar, but only
+Vim stands for Vi IMproved. Most of Vim was made by Bram Moolenaar, but only
through the help of many others. See |credits|.
------------------------------------------------------------------------------
*doc-file-list* *Q_ct*
@@ -93,7 +93,6 @@ General subjects ~
|helphelp.txt| about using the help files
|index.txt| alphabetical index of all commands
|help-tags| all the tags you can jump to (index of tags)
-|howto.txt| how to do the most common editing tasks
|tips.txt| various tips on using Vim
|message.txt| (error) messages and explanations
|develop.txt| development of Nvim
@@ -142,6 +141,7 @@ Special issues ~
|hebrew.txt| Hebrew language support and editing
|russian.txt| Russian language support and editing
|ft_ada.txt| Ada (the programming language) support
+|ft_rust.txt| Filetype plugin for Rust
|ft_sql.txt| about the SQL filetype plugin
|rileft.txt| right-to-left editing mode
@@ -162,6 +162,7 @@ Standard plugins ~
|pi_gzip.txt| Reading and writing compressed files
|pi_netrw.txt| Reading and writing files over a network
|pi_paren.txt| Highlight matching parens
+|pi_spec.txt| Filetype plugin to work with rpm spec files
|pi_tar.txt| Tar file explorer
|pi_zip.txt| Zip archive explorer
diff --git a/runtime/doc/helphelp.txt b/runtime/doc/helphelp.txt
index d86a95e854..adc72d1835 100644
--- a/runtime/doc/helphelp.txt
+++ b/runtime/doc/helphelp.txt
@@ -140,7 +140,8 @@ Help on help files *helphelp*
already opened, then the location list for that window
is used. Otherwise, a new help window is opened and
the location list for that window is set. The
- location list for the current window is not changed.
+ location list for the current window is not changed
+ then.
*:exu* *:exusage*
:exu[sage] Show help on Ex commands. Added to simulate the Nvi
@@ -305,7 +306,7 @@ the applicable Vim version. The last field specifies the last modification
date of the file. Each field is separated by a tab.
At the bottom of the help file, place a Vim modeline to set the 'textwidth'
-and 'tabstop' options and the 'filetype' to 'help'. Never set a global option
+and 'tabstop' options and the 'filetype' to "help". Never set a global option
in such a modeline, that can have consequences undesired by whoever reads that
help.
diff --git a/runtime/doc/howto.txt b/runtime/doc/howto.txt
deleted file mode 100644
index 33c8552463..0000000000
--- a/runtime/doc/howto.txt
+++ /dev/null
@@ -1,96 +0,0 @@
-*howto.txt* Nvim
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
-
-
-How to ... *howdoi* *how-do-i* *howto* *how-to*
-
-|tutor| get started
-|:quit| exit? I'm trapped, help me!
-|initialization| initialize Vim
-|vimrc-intro| write a Vim script file (vimrc)
-|suspend| suspend Vim
-|usr_11.txt| recover after a crash
-|07.4| keep a backup of my file when writing over it
-
-|usr_07.txt| edit files
-|23.4| edit binary files
-|usr_24.txt| insert text
-|deleting| delete text
-|usr_04.txt| change text
-|04.5| copy and move text
-|usr_25.txt| format text
-|30.6| format comments
-|30.2| indent C programs
-|25.3| automatically set indent
-
-|usr_26.txt| repeat commands
-|02.5| undo and redo
-
-|usr_03.txt| move around
-|word-motions| word motions
-|left-right-motions| left-right motions
-|up-down-motions| up-down motions
-|object-motions| text-object motions
-|various-motions| various motions
-|object-select| text-object selection
-|'whichwrap'| move over line breaks
-|'virtualedit'| move to where there is no text
-|usr_27.txt| specify pattern for searches
-|tags-and-searches| do tags and special searches
-|29.4| search in include'd files used to find
- variables, functions, or macros
-|K| look up manual for the keyword under cursor
-
-|03.7| scroll
-|'sidescroll'| scroll horizontally/sideways
-|'scrolloff'| set visible context lines
-
-|mode-switching| change modes
-|04.4| use Visual mode
-|'insertmode'| start Vim in Insert mode
-
-|40.1| map keys
-|24.7| create abbreviations
-
-|ins-expandtab| expand a tab to spaces in Insert mode
-|i_CTRL-R| insert contents of a register in Insert mode
-|24.3| complete words in Insert mode
-|25.1| break a line before it gets too long
-
-|20.1| do command-line editing
-|20.3| do command-line completion
-|'cmdheight'| increase the height of command-line
-|10.3| specify command-line ranges
-|40.3| specify commands to be executed automatically
- before/after reading/writing entering/leaving a
- buffer/window
-
-|'autowrite'| write automatically
-|30.1| speedup edit-compile-edit cycle or compile and fix
- errors within Vim
-
-|options| set options
-|auto-setting| set options automatically
-|term-dependent-settings| set options depending on terminal name
-|save-settings| save settings
-|:quote| comment my .vim files
-|'helpheight'| change the default help height
-|'highlight'| set various highlighting modes
-|'title'| set the window title
-|'icon'| set window icon title
-|'report'| avoid seeing the change messages on every line
-|'shortmess'| avoid |hit-enter| prompts
-
-|mouse-using| use mouse with Vim
-|usr_08.txt| manage multiple windows and buffers
-|gui.txt| use the gui
-
-|You can't! (yet)| do dishes using Vim
-
-|usr_06.txt| switch on syntax highlighting
-|2html.vim| convert a colored file to HTML
-|less| use Vim like less or more with syntax highlighting
-
- vim:tw=78:ts=8:ft=help:norl:
diff --git a/runtime/doc/if_cscop.txt b/runtime/doc/if_cscop.txt
index e359f2144c..ac3d7a9ed8 100644
--- a/runtime/doc/if_cscop.txt
+++ b/runtime/doc/if_cscop.txt
@@ -82,9 +82,10 @@ suggested use.)
2. Cscope related commands *cscope-commands*
*:cscope* *:cs* *:scs* *:scscope* *E259* *E262* *E561* *E560*
-All cscope commands are accessed through suboptions to the main cscope
-command ":cscope". The shortest abbreviation is ":cs". The ":scscope"
-command does the same and also splits the window (short: "scs").
+All cscope commands are accessed through suboptions to the cscope commands.
+ `:cscope` or `:cs` is the main command
+ `:scscope` or `:scs` does the same and splits the window
+ `:lcscope` or `:lcs` uses the location list, see |:lcscope|
The available subcommands are:
diff --git a/runtime/doc/if_lua.txt b/runtime/doc/if_lua.txt
index a123041866..968d882a22 100644
--- a/runtime/doc/if_lua.txt
+++ b/runtime/doc/if_lua.txt
@@ -24,7 +24,7 @@ the existing `package.cpath` are used. Example:
1. Given that
- 'runtimepath' contains `/foo/bar,/xxx;yyy/baz,/abc`;
- - initial (defined at compile time or derived from
+ - initial (defined at compile-time or derived from
`$LUA_CPATH`/`$LUA_INIT`) `package.cpath` contains
`./?.so;/def/ghi/a?d/j/g.elf;/def/?.so`.
2. It finds `?`-containing suffixes `/?.so`, `/a?d/j/g.elf` and `/?.so`, in
@@ -159,14 +159,17 @@ Examples:
>
:lua vim.api.nvim_command('echo "Hello, Nvim!"')
<
+To see the Lua version: >
+ :lua print(_VERSION)
+
+To see the LuaJIT version: >
+ :lua print(jit.version)
+<
:[range]lua << {endmarker}
{script}
{endmarker}
Execute Lua script {script}.
- Note: This command doesn't work when the Lua
- feature wasn't compiled in. To avoid errors, see
- |script-here|.
{endmarker} must NOT be preceded by any white space. If {endmarker} is
omitted from after the "<<", a dot '.' must be used after {script}, like
@@ -186,15 +189,8 @@ Example:
EOF
endfunction
-Note that the variables are prefixed with `local`: they will disappear when
-block finishes. This is not the case for globals.
-
-To see what version of Lua you have: >
- :lua print(_VERSION)
-
-If you use LuaJIT you can also use this: >
- :lua print(jit.version)
-<
+Note that the `local` variables will disappear when block finishes. This is
+not the case for globals.
*:luado*
:[range]luado {body} Execute Lua function "function (line, linenr) {body}
diff --git a/runtime/doc/if_ruby.txt b/runtime/doc/if_ruby.txt
index a657d88a44..ace304c083 100644
--- a/runtime/doc/if_ruby.txt
+++ b/runtime/doc/if_ruby.txt
@@ -63,7 +63,7 @@ To see what version of Ruby you have: >
*:rubyfile* *:rubyf*
:rubyf[ile] {file} Execute the Ruby script in {file}. This is the same as
- ":ruby load 'file'", but allows file name completion.
+ `:ruby load 'file'`, but allows file name completion.
Executing Ruby commands is not possible in the |sandbox|.
diff --git a/runtime/doc/index.txt b/runtime/doc/index.txt
index ad93dcb000..f4f43aeac2 100644
--- a/runtime/doc/index.txt
+++ b/runtime/doc/index.txt
@@ -298,10 +298,10 @@ tag char note action in Normal mode ~
|B| B 1 cursor N WORDS backward
|C| ["x]C 2 change from the cursor position to the end
of the line, and N-1 more lines [into
- buffer x]; synonym for "c$"
+ register x]; synonym for "c$"
|D| ["x]D 2 delete the characters under the cursor
until the end of the line and N-1 more
- lines [into buffer x]; synonym for "d$"
+ lines [into register x]; synonym for "d$"
|E| E 1 cursor forward to the end of WORD N
|F| F{char} 1 cursor to the Nth occurrence of {char} to
the left
@@ -318,13 +318,13 @@ tag char note action in Normal mode ~
opposite direction
|O| O 2 begin a new line above the cursor and
insert text, repeat N times
-|P| ["x]P 2 put the text [from buffer x] before the
+|P| ["x]P 2 put the text [from register x] before the
cursor N times
|Q| Q switch to "Ex" mode
|R| R 2 enter replace mode: overtype existing
characters, repeat the entered text N-1
times
-|S| ["x]S 2 delete N lines [into buffer x] and start
+|S| ["x]S 2 delete N lines [into register x] and start
insert; synonym for "cc".
|T| T{char} 1 cursor till after Nth occurrence of {char}
to the left
@@ -332,8 +332,8 @@ tag char note action in Normal mode ~
|V| V start linewise Visual mode
|W| W 1 cursor N WORDS forward
|X| ["x]X 2 delete N characters before the cursor [into
- buffer x]
-|Y| ["x]Y yank N lines [into buffer x]; synonym for
+ register x]
+|Y| ["x]Y yank N lines [into register x]; synonym for
"yy"
|ZZ| ZZ store current file if modified, and exit
|ZQ| ZQ exit current file always
@@ -356,12 +356,12 @@ tag char note action in Normal mode ~
|`}| `} 1 cursor to the end of the current paragraph
|a| a 2 append text after the cursor N times
|b| b 1 cursor N words backward
-|c| ["x]c{motion} 2 delete Nmove text [into buffer x] and start
+|c| ["x]c{motion} 2 delete Nmove text [into register x] and
+ start insert
+|cc| ["x]cc 2 delete N lines [into register x] and start
insert
-|cc| ["x]cc 2 delete N lines [into buffer x] and start
- insert
-|d| ["x]d{motion} 2 delete Nmove text [into buffer x]
-|dd| ["x]dd 2 delete N lines [into buffer x]
+|d| ["x]d{motion} 2 delete Nmove text [into register x]
+|dd| ["x]dd 2 delete N lines [into register x]
|do| do 2 same as ":diffget"
|dp| dp 2 same as ":diffput"
|e| e 1 cursor forward to the end of word N
@@ -387,16 +387,16 @@ tag char note action in Normal mode ~
|q?| q? edit ? command-line in command-line window
|r| r{char} 2 replace N chars with {char}
|s| ["x]s 2 (substitute) delete N characters [into
- buffer x] and start insert
+ register x] and start insert
|t| t{char} 1 cursor till before Nth occurrence of {char}
to the right
|u| u 2 undo changes
|v| v start characterwise Visual mode
|w| w 1 cursor N words forward
|x| ["x]x 2 delete N characters under and after the
- cursor [into buffer x]
-|y| ["x]y{motion} yank Nmove text [into buffer x]
-|yy| ["x]yy yank N lines [into buffer x]
+ cursor [into register x]
+|y| ["x]y{motion} yank Nmove text [into register x]
+|yy| ["x]yy yank N lines [into register x]
|z| z{char} commands starting with 'z', see |z| below
|{| { 1 cursor N paragraphs backward
|bar| | 1 cursor to column N
@@ -993,10 +993,12 @@ tag command action in Command-line editing mode ~
|c_<CR>| <CR> execute entered command
|c_CTRL-M| CTRL-M same as <CR>
|c_CTRL-N| CTRL-N after using 'wildchar' with multiple matches:
- go to next match, otherwise: same as <Down>
+ go to next match, otherwise: recall older
+ command-line from history.
CTRL-O not used
|c_CTRL-P| CTRL-P after using 'wildchar' with multiple matches:
- go to previous match, otherwise: same as <Up>
+ go to previous match, otherwise: recall older
+ command-line from history.
|c_CTRL-Q| CTRL-Q same as CTRL-V, unless it's used for terminal
control flow
|c_CTRL-R| CTRL-R {0-9a-z"%#*:= CTRL-F CTRL-P CTRL-W CTRL-A}
@@ -1540,13 +1542,17 @@ tag command action ~
|:tjump| :tj[ump] like ":tselect", but jump directly when there
is only one match
|:tlast| :tl[ast] jump to last matching tag
+|:tmapclear| :tmapc[lear] remove all mappings for Terminal-Job mode
+|:tmap| :tma[p] like ":map" but for Terminal-Job mode
|:tmenu| :tm[enu] define menu tooltip
|:tnext| :tn[ext] jump to next matching tag
+|:tnoremap| :tno[remap] like ":noremap" but for Terminal-Job mode
|:topleft| :to[pleft] make split window appear at top or far left
|:tprevious| :tp[revious] jump to previous matching tag
|:trewind| :tr[ewind] jump to first matching tag
|:try| :try execute commands, abort on error or exception
|:tselect| :ts[elect] list matching tags and select one
+|:tunmap| :tunma[p] like ":unmap" but for Terminal-Job mode
|:tunmenu| :tu[nmenu] remove menu tooltip
|:undo| :u[ndo] undo last change(s)
|:undojoin| :undoj[oin] join next change with previous undo block
diff --git a/runtime/doc/insert.txt b/runtime/doc/insert.txt
index 9ef58fa54c..b6cc18ab1b 100644
--- a/runtime/doc/insert.txt
+++ b/runtime/doc/insert.txt
@@ -146,7 +146,8 @@ CTRL-R CTRL-R {0-9a-z"%#*+/:.-=} *i_CTRL-R_CTRL-R*
CTRL-R CTRL-O {0-9a-z"%#*+/:.-=} *i_CTRL-R_CTRL-O*
Insert the contents of a register literally and don't
auto-indent. Does the same as pasting with the mouse
- |<MiddleMouse>|.
+ |<MiddleMouse>|. When the register is linewise this will
+ insert the text above the current line, like with `P`.
Does not replace characters!
The '.' register (last inserted text) is still inserted as
typed.
@@ -607,13 +608,13 @@ Completion can be done for:
10. User defined completion |i_CTRL-X_CTRL-U|
11. omni completion |i_CTRL-X_CTRL-O|
12. Spelling suggestions |i_CTRL-X_s|
-13. keywords in 'complete' |i_CTRL-N|
+13. keywords in 'complete' |i_CTRL-N| |i_CTRL-P|
-All these (except 2) are done in CTRL-X mode. This is a sub-mode of Insert
-and Replace modes. You enter CTRL-X mode by typing CTRL-X and one of the
-CTRL-X commands. You exit CTRL-X mode by typing a key that is not a valid
-CTRL-X mode command. Valid keys are the CTRL-X command itself, CTRL-N (next),
-and CTRL-P (previous).
+All these, except CTRL-N and CTRL-P, are done in CTRL-X mode. This is a
+sub-mode of Insert and Replace modes. You enter CTRL-X mode by typing CTRL-X
+and one of the CTRL-X commands. You exit CTRL-X mode by typing a key that is
+not a valid CTRL-X mode command. Valid keys are the CTRL-X command itself,
+CTRL-N (next), and CTRL-P (previous).
Also see the 'infercase' option if you want to adjust the case of the match.
@@ -1077,7 +1078,7 @@ items:
empty when non-zero this match will be added even when it is
an empty string
-All of these except 'icase', 'dup' and 'empty' must be a string. If an item
+All of these except "icase", "dup" and "empty" must be a string. If an item
does not meet these requirements then an error message is given and further
items in the list are not used. You can mix string and Dictionary items in
the returned list.
diff --git a/runtime/doc/intro.txt b/runtime/doc/intro.txt
index 90b0ff7da3..6c40264d86 100644
--- a/runtime/doc/intro.txt
+++ b/runtime/doc/intro.txt
@@ -68,8 +68,8 @@ The Vim pages contain the most recent information about Vim. They also
contain links to the most recent version of Vim. The FAQ is a list of
Frequently Asked Questions. Read this if you have problems.
- VIM home page: http://www.vim.org/
- VIM FAQ: http://vimdoc.sf.net/
+ Vim home page: http://www.vim.org/
+ Vim FAQ: http://vimdoc.sf.net/
Downloading: ftp://ftp.vim.org/pub/vim/MIRRORS
@@ -120,9 +120,14 @@ Report bugs on GitHub: https://github.com/neovim/neovim/issues
Please be brief; all the time that is spent on answering mail is subtracted
from the time that is spent on improving Vim! Always give a reproducible
-example and try to find out which settings or other things influence the
-appearance of the bug. Try different machines, if possible. Send me patches
-if you can!
+example and try to find out which settings or other things trigger the bug.
+
+Preferably start Vim with: >
+ vim --clean -u reproduce.vim
+Where reproduce.vim is a script that reproduces the problem. Try different
+machines, if relevant (is this an MS-Windows specific bug perhaps?).
+
+Send me patches if you can!
It will help to include information about the version of Vim you are using and
your setup. You can get the information with this command: >
@@ -236,6 +241,10 @@ Vim would never have become what it is now, without the help of these people!
Juergen Weigert Lattice version, AUX improvements, Unix and
MS-DOS ports, autoconf
Stefan 'Sec' Zehl Maintainer of vim.org
+ Yasuhiro Matsumoto many MS-Windows improvements
+ Ken Takata fixes and features
+ Kazunobu Kuriyama GTK 3
+ Christian Brabandt many fixes, features, user support, etc.
I wish to thank all the people that sent me bug reports and suggestions. The
list is too long to mention them all here. Vim would not be the same without
@@ -373,8 +382,7 @@ CTRL-{char} {char} typed as a control character; that is, typing {char}
*key-notation* *key-codes* *keycodes*
These names for keys are used in the documentation. They can also be used
-with the ":map" command (insert the key name by pressing CTRL-K and then the
-key you want the name for).
+with the ":map" command.
notation meaning equivalent decimal value(s) ~
-----------------------------------------------------------------------
@@ -714,9 +722,9 @@ special situation. Vim will show only part of the line, around where the
cursor is. There are no special characters shown, so that you can edit all
parts of this line.
-The '@' occasion in the 'highlight' option can be used to set special
-highlighting for the '@' and '~' characters. This makes it possible to
-distinguish them from real characters in the buffer.
+The |hl-NonText| highlight group can be used to set special highlighting
+for the '@' and '~' characters. This makes it possible to distinguish them
+from real characters in the buffer.
The 'showbreak' option contains the string to put in front of wrapped lines.
@@ -783,10 +791,12 @@ by Vim.
==============================================================================
8. Definitions *definitions*
+ buffer Contains lines of text, usually read from a file.
screen The whole area that Vim uses to work in. This can be
a terminal emulator window. Also called "the Vim
window".
- window A view on a buffer.
+ window A view on a buffer. There can be multiple windows for
+ one buffer.
A screen contains one or more windows, separated by status lines and with the
command line at the bottom.
diff --git a/runtime/doc/job_control.txt b/runtime/doc/job_control.txt
index 2cf48f0f4f..7ba0acff48 100644
--- a/runtime/doc/job_control.txt
+++ b/runtime/doc/job_control.txt
@@ -4,41 +4,30 @@
NVIM REFERENCE MANUAL by Thiago de Arruda
-Nvim's facilities for job control *job-control*
+Nvim job control *job-control*
+
+Job control is a way to perform multitasking in Nvim, so scripts can spawn and
+control multiple processes without blocking the current Nvim instance.
Type |gO| to see the table of contents.
==============================================================================
-1. Introduction *job-control-intro*
-
-Job control is a simple way to perform multitasking in vimscript. Wikipedia
-contains a more generic/detailed description:
+Concepts
-"Job control in computing refers to the control of multiple tasks or Jobs on a
-computer system, ensuring that they each have access to adequate resources to
-perform correctly, that competition for limited resources does not cause a
-deadlock where two or more jobs are unable to complete, resolving such
-situations where they do occur, and terminating jobs that, for any reason, are
-not performing as expected."
+Job Id *job-id*
-In a few words: It allows a vimscript programmer to concurrently spawn and
-control multiple processes without blocking the current Nvim instance.
+When a job starts it is assigned a number, unique for the life of the current
+Nvim session. Functions like |jobstart()| return job ids. Functions like
+|jobsend()|, |jobstop()|, |rpcnotify()|, and |rpcrequest()| take job ids.
-Nvim's job control was designed to be simple and familiar to vimscript
-programmers, instead of being very powerful but complex. Unlike Vim's
-facilities for calling with external commands, job control does not depend on
-available shells, instead relying on OS functionality for process management.
+==============================================================================
+Usage *job-control-usage*
-Internally, Nvim job control is powered by libuv, which has a nice
-cross-platform API for managing processes. See https://github.com/libuv/libuv
-for details.
+To control jobs, use the "job…" family of functions: |jobstart()|,
+|jobsend()|, |jobstop()|.
-==============================================================================
-2. Usage *job-control-usage*
+Example: >
-Job control is achieved by calling a combination of the |jobstart()|,
-|jobsend()| and |jobstop()| functions. Here's an example:
->
function! s:JobHandler(job_id, data, event) dict
if a:event == 'stdout'
let str = self.shell.' stdout: '.join(a:data)
@@ -58,35 +47,41 @@ Job control is achieved by calling a combination of the |jobstart()|,
let job1 = jobstart(['bash'], extend({'shell': 'shell 1'}, s:callbacks))
let job2 = jobstart(['bash', '-c', 'for i in {1..10}; do echo hello $i!; sleep 1; done'], extend({'shell': 'shell 2'}, s:callbacks))
+To test the above script, copy it to a file ~/foo.vim and run it: >
+ nvim -u ~/foo.vim
<
-To test the above, copy it to the file ~/jobcontrol.vim and start with a clean
-nvim instance:
->
- nvim -u NONE -S ~/jobcontrol.vim
-<
-Here's what is happening:
-
-- Two bash instances are spawned by |jobstart()| with their stdin/stdout/stderr
- connected to nvim.
-- The first shell is idle, waiting to read commands from its stdin.
-- The second shell is started with the -c argument, causing it to execute a
- command then exit. In this case, the command is a for loop that will print 0
- through 9 then exit.
-- The `JobHandler()` function is a callback passed to |jobstart()| to handle
- various job events. It takes care of displaying stdout/stderr received from
- the shells.
- *on_stdout* *on_stderr* *on_exit*
-- The arguments passed to `JobHandler()` are:
-
- 0: The job id
- 1: If the event is "stdout" or "stderr", a list with lines read from the
- corresponding stream. For "exit", it is the status returned by the
- program.
- 2: The event type, which is "stdout", "stderr" or "exit".
+Description of what happens:
+ - Two bash shells are spawned by |jobstart()| with their stdin/stdout/stderr
+ streams connected to nvim.
+ - The first shell is idle, waiting to read commands from its stdin.
+ - The second shell is started with -c which executes the command (a for-loop
+ printing 0 through 9) and then exits.
+ - `JobHandler()` callback is passed to |jobstart()| to handle various job
+ events. It displays stdout/stderr data received from the shells.
+
+ *on_stdout*
+Arguments passed to on_stdout callback:
+ 0: |job-id|
+ 1: List of lines read from the stream. If the last item is not "" (empty
+ string), then it is an incomplete line that might be continued at the
+ next on_stdout invocation. See Note 2 below.
+ 2: Event type: "stdout"
+ *on_stderr*
+Arguments passed to on_stderr callback:
+ 0: |job-id|
+ 1: List of lines read from the stream. If the last item is not "" (empty
+ string), then it is an incomplete line that might be continued at the
+ next on_stderr invocation. See Note 2 below.
+ 2: Event type: "stderr"
+ *on_exit*
+Arguments passed to on_exit callback:
+ 0: |job-id|
+ 1: Exit-code of the process.
+ 2: Event type: "exit"
Note: Buffered stdout/stderr data which has not been flushed by the sender
- will not trigger the "stdout" callback (but if the process ends, the
- "exit" callback will be triggered).
+ will not trigger the on_stdout/on_stderr callback (but if the process
+ ends, the on_exit callback will be invoked).
For example, "ruby -e" buffers output, so small strings will be
buffered unless "auto-flushing" ($stdout.sync=true) is enabled. >
function! Receive(job_id, data, event)
@@ -97,9 +92,25 @@ Here's what is happening:
\ {'on_stdout': 'Receive'})
< https://github.com/neovim/neovim/issues/1592
-The options dictionary is passed as the "self" variable to the callback
-function. Here's a more object-oriented version of the above:
->
+ Note 2:
+ Job event handlers may receive partial (incomplete) lines. For a given
+ invocation of on_stdout/on_stderr, `a:data` is not guaranteed to end
+ with a newline.
+ - `abcdefg` may arrive as `['abc']`, `['defg']`.
+ - `abc\nefg` may arrive as `['abc', '']`, `['efg']` or `['abc']`,
+ `['','efg']`, or even `['ab']`, `['c','efg']`.
+ Easy way to deal with this: initialize a list as `['']`, then append
+ to it as follows: >
+ let s:chunks = ['']
+ func! s:on_stdout(job_id, data, event) dict
+ let s:chunks[-1] .= a:data[0]
+ call extend(s:chunks, a:data[1:])
+ endf
+<
+
+The |jobstart-options| dictionary is passed as |self| to the callback.
+The above example could be written in this "object-oriented" style: >
+
let Shell = {}
function Shell.on_stdout(_job_id, data, event)
@@ -126,19 +137,13 @@ function. Here's a more object-oriented version of the above:
let instance = Shell.new('bomb',
\ 'for i in $(seq 9 -1 1); do echo $i 1>&$((i % 2 + 1)); sleep 1; done')
<
-To send data to the job's stdin, one can use the |jobsend()| function, like
-this:
->
+To send data to the job's stdin, use |jobsend()|: >
:call jobsend(job1, "ls\n")
:call jobsend(job1, "invalid-command\n")
:call jobsend(job1, "exit\n")
<
-A job may be killed at any time with the |jobstop()| function:
->
+A job may be killed with |jobstop()|: >
:call jobstop(job1)
<
-When |jobstop()| is called, `SIGTERM` will be sent to the job. If a job does
-not exit after 2 seconds, `SIGKILL` will be sent.
-
==============================================================================
vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/map.txt b/runtime/doc/map.txt
index e78b4cc942..9b61fa6527 100644
--- a/runtime/doc/map.txt
+++ b/runtime/doc/map.txt
@@ -15,7 +15,7 @@ manual.
1. Key mapping *key-mapping* *mapping* *macro*
Key mapping is used to change the meaning of typed keys. The most common use
-is to define a sequence commands for a function key. Example: >
+is to define a sequence of commands for a function key. Example: >
:map <F2> a<C-R>=strftime("%c")<CR><Esc>
@@ -41,7 +41,7 @@ modes.
:im[ap] {lhs} {rhs} |mapmode-i| *:im* *:imap*
:lm[ap] {lhs} {rhs} |mapmode-l| *:lm* *:lmap*
:cm[ap] {lhs} {rhs} |mapmode-c| *:cm* *:cmap*
-:tm[ap] {lhs} {rhs} |mapmode-t| *:tm* *:tmap*
+:tma[p] {lhs} {rhs} |mapmode-t| *:tma* *:tmap*
Map the key sequence {lhs} to {rhs} for the modes
where the map command applies. The result, including
{rhs}, is then further scanned for mappings. This
@@ -75,7 +75,7 @@ modes.
:iu[nmap] {lhs} |mapmode-i| *:iu* *:iunmap*
:lu[nmap] {lhs} |mapmode-l| *:lu* *:lunmap*
:cu[nmap] {lhs} |mapmode-c| *:cu* *:cunmap*
-:tu[nmap] {lhs} |mapmode-t| *:tu* *:tunmap*
+:tunma[p] {lhs} |mapmode-t| *:tunma* *:tunmap*
Remove the mapping of {lhs} for the modes where the
map command applies. The mapping may remain defined
for other modes where it applies.
@@ -111,7 +111,7 @@ modes.
:im[ap] |mapmode-i|
:lm[ap] |mapmode-l|
:cm[ap] |mapmode-c|
-:tm[ap] |mapmode-t|
+:tma[p] |mapmode-t|
List all key mappings for the modes where the map
command applies. Note that ":map" and ":map!" are
used most often, because they include the other modes.
@@ -126,7 +126,7 @@ modes.
:im[ap] {lhs} |mapmode-i| *:imap_l*
:lm[ap] {lhs} |mapmode-l| *:lmap_l*
:cm[ap] {lhs} |mapmode-c| *:cmap_l*
-:tm[ap] {lhs} |mapmode-t| *:tmap_l*
+:tma[p] {lhs} |mapmode-t| *:tmap_l*
List the key mappings for the key sequences starting
with {lhs} in the modes where the map command applies.
@@ -175,7 +175,7 @@ that starts with ",". Then you need to type another character for Vim to know
whether to use the "," mapping or the longer one. To avoid this add the
<nowait> argument. Then the mapping will be used when it matches, Vim does
not wait for more characters to be typed. However, if the characters were
-already type they are used.
+already typed they are used.
*:map-<silent>* *:map-silent*
To define a mapping which will not be echoed on the command line, add
@@ -556,7 +556,8 @@ Upper and lowercase differences are ignored.
*map-comments*
It is not possible to put a comment after these commands, because the '"'
-character is considered to be part of the {lhs} or {rhs}.
+character is considered to be part of the {lhs} or {rhs}. However, one can
+use |", since this starts a new, empty command with a comment.
*map_bar* *map-bar*
Since the '|' character is used to separate a map command from the next
@@ -652,7 +653,7 @@ option). After that it assumes that the 'q' is to be interpreted as such. If
you type slowly, or your system is slow, reset the 'timeout' option. Then you
might want to set the 'ttimeout' option.
- *map-precedence*
+ *map-precedence*
Buffer-local mappings (defined using |:map-<buffer>|) take precedence over
global mappings. When a buffer-local mapping is the same as a global mapping,
Vim will use the buffer-local mapping. In addition, Vim will use a complete
diff --git a/runtime/doc/message.txt b/runtime/doc/message.txt
index 904b9dfce4..96c28009c4 100644
--- a/runtime/doc/message.txt
+++ b/runtime/doc/message.txt
@@ -625,6 +625,9 @@ starts. It can be fixed in one of these ways:
- Just write the file again the next day. Or set your clock to the next day,
write the file twice and set the clock back.
+If you get W11 all the time, you may need to disable "Acronis Active
+Protection" or register Vim as a trusted service/application.
+
*W12* >
Warning: File "{filename}" has changed and the buffer was changed in Vim as well
@@ -744,6 +747,13 @@ a user-defined command.
You tried to set an option after startup that only allows changes during
startup.
+ *E943* >
+ Command table needs to be updated, run 'make cmdidxs'
+
+This can only happen when changing the source code, when adding a command in
+src/ex_cmds.h. The lookup table then needs to be updated, by running: >
+ make cmdidxs
+
==============================================================================
3. Messages *messages*
diff --git a/runtime/doc/mlang.txt b/runtime/doc/mlang.txt
index 6453a96877..8284d38fa4 100644
--- a/runtime/doc/mlang.txt
+++ b/runtime/doc/mlang.txt
@@ -172,6 +172,7 @@ Send an e-mail to the Vim maintainer <maintainer@vim.org>.
special characters like "&" and "<Tab>" need to be
included. Spaces and dots need to be escaped with a
backslash, just like in other |:menu| commands.
+ Case in {english} is ignored.
See the $VIMRUNTIME/lang directory for examples.
diff --git a/runtime/doc/motion.txt b/runtime/doc/motion.txt
index 81137b6069..600eb3ab9e 100644
--- a/runtime/doc/motion.txt
+++ b/runtime/doc/motion.txt
@@ -184,7 +184,7 @@ l or *l*
*$* *<End>* *<kEnd>*
$ or <End> To the end of the line. When a count is given also go
- [count - 1] lines downward |inclusive|.
+ [count - 1] lines downward. |inclusive| motion.
In Visual mode the cursor goes to just after the last
character in the line.
When 'virtualedit' is active, "$" may move the cursor
diff --git a/runtime/doc/msgpack_rpc.txt b/runtime/doc/msgpack_rpc.txt
index 7af6e401da..a1453a6cc6 100644
--- a/runtime/doc/msgpack_rpc.txt
+++ b/runtime/doc/msgpack_rpc.txt
@@ -175,7 +175,7 @@ contains information that makes this task easier (see also |rpc-types|):
even more strongly-typed APIs.
- Functions that are considered to be methods that operate on instances of
Nvim special types (msgpack EXT) will have the `"method"` attribute set to
- `true`. The reciever type is the type of the first argument. The method
+ `true`. The receiver type is the type of the first argument. The method
names are prefixed with `nvim_` plus a shortened type name, e.g.
`nvim_buf_get_lines` represents the `get_lines` method of a Buffer instance.
- Global functions have `"method"` set to `false` and are prefixed with just
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 4df08ca5fb..f58532824c 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -311,7 +311,7 @@ Note: In the future more global options can be made global-local. Using
Setting the filetype
-:setf[iletype] {filetype} *:setf* *:setfiletype*
+:setf[iletype] [FALLBACK] {filetype} *:setf* *:setfiletype*
Set the 'filetype' option to {filetype}, but only if
not done yet in a sequence of (nested) autocommands.
This is short for: >
@@ -322,6 +322,12 @@ Setting the filetype
setting the 'filetype' option twice, causing different
settings and syntax files to be loaded.
+ When the optional FALLBACK argument is present, a
+ later :setfiletype command will override the
+ 'filetype'. This is to used for filetype detections
+ that are just a guess. |did_filetype()| will return
+ false after this command.
+
*option-window* *optwin*
:bro[wse] se[t] *:set-browse* *:browse-set* *:opt* *:options*
:opt[ions] Open a window for viewing and setting all options.
@@ -348,11 +354,22 @@ On Unix systems the form "${HOME}" can be used too. The name between {} can
contain non-id characters then. Note that if you want to use this for the
"gf" command, you need to add the '{' and '}' characters to 'isfname'.
+NOTE: expanding environment variables and "~/" is only done with the ":set"
+command, not when assigning a value to an option with ":let".
+
+ *$HOME-windows*
On MS-Windows, if $HOME is not defined as an environment variable, then
at runtime Vim will set it to the expansion of $HOMEDRIVE$HOMEPATH.
+If $HOMEDRIVE is not set then $USERPROFILE is used.
-NOTE: expanding environment variables and "~/" is only done with the ":set"
-command, not when assigning a value to an option with ":let".
+This expanded value is not exported to the environment, this matters when
+running an external command: >
+ :echo system('set | findstr ^HOME=')
+and >
+ :echo luaeval('os.getenv("HOME")')
+should echo nothing (an empty string) despite exists('$HOME') being true.
+When setting $HOME to a non-empty string it will be exported to the
+subprocesses.
Note the maximum length of an expanded option is limited. How much depends on
@@ -711,6 +728,13 @@ A jump table for the options with a short description can be found at |Q_op|.
< Vim will guess the value. In the GUI this should work correctly,
in other cases Vim might not be able to guess the right value.
+ When the |t_RB| option is set, Vim will use it to request the background
+ color from the terminal. If the returned RGB value is dark/light and
+ 'background' is not dark/light, 'background' will be set and the
+ screen is redrawn. This may have side effects, make t_BG empty in
+ your .vimrc if you suspect this problem. The response to |t_RB| can
+ be found in |v:termrbgresp|.
+
When starting the GUI, the default value for 'background' will be
"light". When the value is not set in the gvimrc, and Vim detects
that the background is actually quite dark, 'background' is set to
@@ -959,8 +983,8 @@ A jump table for the options with a short description can be found at |Q_op|.
wildmode More matches in |cmdline-completion| available
(depends on the 'wildmode' setting).
- This is most useful, to fine tune when in insert mode the bell should
- be rung. For normal mode and ex commands, the bell is often rung to
+ This is most useful to fine tune when in Insert mode the bell should
+ be rung. For Normal mode and Ex commands, the bell is often rung to
indicate that an error occurred. It can be silenced by adding the
"error" keyword.
@@ -1295,27 +1319,6 @@ A jump table for the options with a short description can be found at |Q_op|.
will additionally copy the text into register
'*'. See |clipboard|.
- *clipboard-autoselect*
- autoselect Works like the 'a' flag in 'guioptions': If present,
- then whenever Visual mode is started, or the Visual
- area extended, Vim tries to become the owner of the
- windowing system's global selection or put the
- selected text on the clipboard used by the selection
- register "*. See |guioptions_a| and |quotestar| for
- details. When the GUI is active, the 'a' flag in
- 'guioptions' is used, when the GUI is not active, this
- "autoselect" flag is used.
- Also applies to the modeless selection.
-
- *clipboard-autoselectplus*
- autoselectplus Like "autoselect" but using the + register instead of
- the * register. Compare to the 'P' flag in
- 'guioptions'.
-
- *clipboard-autoselectml*
- autoselectml Like "autoselect", but for the modeless selection
- only. Compare to the 'A' flag in 'guioptions'.
-
*'cmdheight'* *'ch'*
'cmdheight' 'ch' number (default 1)
global
@@ -2967,7 +2970,7 @@ A jump table for the options with a short description can be found at |Q_op|.
that this flag must be added in the vimrc file, before
switching on syntax or filetype recognition (when the |gvimrc|
file is sourced the system menu has already been loaded; the
- ":syntax on" and ":filetype on" commands load the menu too).
+ `:syntax on` and `:filetype on` commands load the menu too).
*'go-g'*
'g' Grey menu items: Make menu items that are not active grey. If
'g' is not included inactive menu items are not shown at all.
@@ -3094,34 +3097,6 @@ A jump table for the options with a short description can be found at |Q_op|.
WARNING: It's easy to forget that you have changes in hidden buffers.
Think twice when using ":q!" or ":qa!".
- *'highlight'* *'hl'*
-'highlight' 'hl' Removed. |vim-differences|
- global
- The builtin |highlight-groups| cannot be changed.
-
- *'hlsearch'* *'hls'* *'nohlsearch'* *'nohls'*
-'hlsearch' 'hls' boolean (default on)
- global
- {not available when compiled without the
- |+extra_search| feature}
- When there is a previous search pattern, highlight all its matches.
- The type of highlighting used can be set with the 'l' occasion in the
- 'highlight' option. This uses the "Search" highlight group by
- default. Note that only the matching text is highlighted, any offsets
- are not applied.
- See also: 'incsearch' and |:match|.
- When you get bored looking at the highlighted matches, you can turn it
- off with |:nohlsearch|. This does not change the option value, as
- soon as you use a search command, the highlighting comes back.
- 'redrawtime' specifies the maximum time spent on finding matches.
- When the search pattern can match an end-of-line, Vim will try to
- highlight all of the matched text. However, this depends on where the
- search starts. This will be the first line in the window or the first
- line below a closed fold. A match in a previous line which is not
- drawn may not continue in a newly drawn line.
- You can specify whether the highlight status is restored on startup
- with the 'h' flag in 'shada' |shada-h|.
-
*'history'* *'hi'*
'history' 'hi' number (Vim default: 10000, Vi default: 0)
global
@@ -3144,6 +3119,27 @@ A jump table for the options with a short description can be found at |Q_op|.
This is useful if you have a non-Hebrew keyboard.
See |rileft.txt|.
+ *'hlsearch'* *'hls'* *'nohlsearch'* *'nohls'*
+'hlsearch' 'hls' boolean (default on)
+ global
+ {not available when compiled without the
+ |+extra_search| feature}
+ When there is a previous search pattern, highlight all its matches.
+ The |hl-Search| highlight group determines the highlighting. Note that
+ only the matching text is highlighted, any offsets are not applied.
+ See also: 'incsearch' and |:match|.
+ When you get bored looking at the highlighted matches, you can turn it
+ off with |:nohlsearch|. This does not change the option value, as
+ soon as you use a search command, the highlighting comes back.
+ 'redrawtime' specifies the maximum time spent on finding matches.
+ When the search pattern can match an end-of-line, Vim will try to
+ highlight all of the matched text. However, this depends on where the
+ search starts. This will be the first line in the window or the first
+ line below a closed fold. A match in a previous line which is not
+ drawn may not continue in a newly drawn line.
+ You can specify whether the highlight status is restored on startup
+ with the 'h' flag in 'shada' |shada-h|.
+
*'icon'* *'noicon'*
'icon' boolean (default off, on when title can be restored)
global
@@ -3298,7 +3294,7 @@ A jump table for the options with a short description can be found at |Q_op|.
Vim only searches for about half a second. With a complicated
pattern and/or a lot of text the match may not be found. This is to
avoid that Vim hangs while you are typing the pattern.
- The highlighting can be set with the 'i' flag in 'highlight'.
+ The |hl-IncSearch| highlight group determines the highlighting.
See also: 'hlsearch'.
CTRL-L can be used to add one character from after the current match
to the command line. If 'ignorecase' and 'smartcase' are set and the
@@ -3843,7 +3839,7 @@ A jump table for the options with a short description can be found at |Q_op|.
:au FileType c,cpp,java set mps+==:;
< For a more advanced way of using "%", see the matchit.vim plugin in
- the $VIMRUNTIME/macros directory. |add-local-help|
+ the $VIMRUNTIME/plugin directory. |add-local-help|
*'matchtime'* *'mat'*
'matchtime' 'mat' number (default 5)
@@ -5346,8 +5342,7 @@ A jump table for the options with a short description can be found at |Q_op|.
< Only printable single-cell characters are allowed, excluding <Tab> and
comma (in a future version the comma might be used to separate the
part that is shown at the end and at the start of a line).
- The characters are highlighted according to the '@' flag in
- 'highlight'.
+ The |hl-NonText| highlight group determines the highlighting.
Note that tabs after the showbreak will be displayed differently.
If you want the 'showbreak' to appear in between line numbers, add the
"n" flag to 'cpoptions'.
@@ -5402,10 +5397,7 @@ A jump table for the options with a short description can be found at |Q_op|.
'showmode' 'smd' boolean (Vim default: on, Vi default: off)
global
If in Insert, Replace or Visual mode put a message on the last line.
- Use the 'M' flag in 'highlight' to set the type of highlighting for
- this message.
- When |XIM| may be used the message will include "XIM". But this
- doesn't mean XIM is really active.
+ The |hl-ModeMsg| highlight group determines the highlighting.
*'showtabline'* *'stal'*
'showtabline' 'stal' number (default 1)
@@ -5668,7 +5660,7 @@ A jump table for the options with a short description can be found at |Q_op|.
word. The expression must evaluate to a List of
Lists, each with a suggestion and a score.
Example:
- [['the', 33], ['that', 44]]
+ [['the', 33], ['that', 44]] ~
Set 'verbose' and use |z=| to see the scores that the
internal methods use. A lower score is better.
This may invoke |spellsuggest()| if you temporarily
@@ -6388,7 +6380,7 @@ A jump table for the options with a short description can be found at |Q_op|.
Save the whole buffer for undo when reloading it. This applies to the
":e!" command and reloading for when the buffer changed outside of
Vim. |FileChangedShell|
- The save only happens when this options is negative or when the number
+ The save only happens when this option is negative or when the number
of lines is smaller than the value of this option.
Set this option to zero to disable undo for a reload.
@@ -6759,7 +6751,7 @@ A jump table for the options with a short description can be found at |Q_op|.
Highlights of vertical separators are determined by the window to the
left of the separator. The highlight of a tabpage in |tabline| is
- determine by the last-focused window of the tabpage. Highlights of
+ determined by the last-focused window of the tabpage. Highlights of
the popupmenu are determined by the current window. Highlights in the
message area cannot be overridden.
diff --git a/runtime/doc/pattern.txt b/runtime/doc/pattern.txt
index 8243a3ca7d..ab78b8b71c 100644
--- a/runtime/doc/pattern.txt
+++ b/runtime/doc/pattern.txt
@@ -853,10 +853,13 @@ $ At end of pattern or in front of "\|", "\)" or "\n" ('magic' on):
\%V Match inside the Visual area. When Visual mode has already been
stopped match in the area that |gv| would reselect.
This is a |/zero-width| match. To make sure the whole pattern is
- inside the Visual area put it at the start and end of the pattern,
- e.g.: >
+ inside the Visual area put it at the start and just before the end of
+ the pattern, e.g.: >
+ /\%Vfoo.*ba\%Vr
+< This also works if only "foo bar" was Visually selected. This: >
/\%Vfoo.*bar\%V
-< Only works for the current buffer.
+< would match "foo bar" if the Visual selection continues after the "r".
+ Only works for the current buffer.
*/\%#* *cursor-position*
\%# Matches with the cursor position. Only works when matching in a
@@ -1055,12 +1058,16 @@ x A single character, with no special meaning, matches itself
":s/[/x/" searches for "[/x" and replaces it with nothing. It does
not search for "[" and replaces it with "x"!
+ *E944* *E945*
If the sequence begins with "^", it matches any single character NOT
in the collection: "[^xyz]" matches anything but 'x', 'y' and 'z'.
- If two characters in the sequence are separated by '-', this is
shorthand for the full list of ASCII characters between them. E.g.,
- "[0-9]" matches any decimal digit. Non-ASCII characters can be
- used, but the character values must not be more than 256 apart.
+ "[0-9]" matches any decimal digit. If the starting character exceeds
+ the ending character, e.g. [c-a], E944 occurs. Non-ASCII characters
+ can be used, but the character values must not be more than 256 apart
+ in the old regexp engine. For example, searching by [\u3000-\u4000]
+ after setting re=1 emits a E945 error. Prepending \%#=2 will fix it.
- A character class expression is evaluated to the set of characters
belonging to that character class. The following character classes
are supported:
diff --git a/runtime/doc/pi_health.txt b/runtime/doc/pi_health.txt
index 99ff519bb9..bb688770fc 100644
--- a/runtime/doc/pi_health.txt
+++ b/runtime/doc/pi_health.txt
@@ -23,11 +23,11 @@ Commands *health-commands*
*:checkhealth* *:CheckHealth*
:checkhealth Run all healthchecks.
*E5009*
- Nvim depends on the |$VIMRUNTIME| environment variable
- to find the standard "runtime files" for syntax
- highlighting, filetype-specific behavior, and standard
- plugins such as :checkhealth. If $VIMRUNTIME is invalid
- then those features will not work.
+ Nvim depends on |$VIMRUNTIME| and 'runtimepath' to find
+ the standard "runtime files" for syntax highlighting,
+ filetype-specific behavior, and standard plugins
+ (including :checkhealth). If the runtime files cannot
+ be found then those features will not work.
:checkhealth {plugins}
Run healthcheck(s) for one or more plugins. E.g. to run
diff --git a/runtime/doc/pi_matchit.txt b/runtime/doc/pi_matchit.txt
index c711cd588f..652734f7bb 100644
--- a/runtime/doc/pi_matchit.txt
+++ b/runtime/doc/pi_matchit.txt
@@ -1,6 +1,6 @@
*pi_matchit.txt* Extended "%" matching
-For Vim version 6.3. Last change: 2015 May 21
+For Vim version 6.3. Last change: 2017 May 14
*matchit* *matchit.vim*
@@ -211,7 +211,7 @@ Examples:
In LaTeX, since "%" is used as the comment character, you can >
:let b:match_skip = 'r:%'
< Unfortunately, this will skip anything after "\%", an escaped "%". To
- allow for this, and also "\\%" (an excaped backslash followed by the
+ allow for this, and also "\\%" (an escaped backslash followed by the
comment character) you can >
:let b:match_skip = 'r:\(^\|[^\\]\)\(\\\\\)*%'
<
@@ -356,7 +356,8 @@ The back reference '\'.d refers to the same thing as '\'.b:match_table[d] in
The various |:vmap|s defined in the script (%, |g%|, |[%|, |]%|, |a%|) may
have undesired effects in Select mode |Select-mode-mapping|. At least, if you
want to replace the selection with any character in "ag%[]" there will be a
-pause of |'updatetime'| first.
+pause of |'updatetime'| first. E.g., "yV%" would normally work linewise, but
+the plugin mapping makes it characterwise.
It would be nice if "\0" were recognized as the entire pattern. That is, it
would be nice if "foo:\end\0" had the same effect as "\(foo\):\end\1".
diff --git a/runtime/doc/pi_netrw.txt b/runtime/doc/pi_netrw.txt
index 3e19f0b4af..fd59f967ba 100644
--- a/runtime/doc/pi_netrw.txt
+++ b/runtime/doc/pi_netrw.txt
@@ -6,7 +6,7 @@
Author: Charles E. Campbell <NdrOchip@ScampbellPfamily.AbizM>
(remove NOSPAM from Campbell's email first)
-Copyright: Copyright (C) 2016 Charles E Campbell *netrw-copyright*
+Copyright: Copyright (C) 2017 Charles E Campbell *netrw-copyright*
The VIM LICENSE applies to the files in this package, including
netrw.vim, pi_netrw.txt, netrwFileHandlers.vim, netrwSettings.vim, and
syntax/netrw.vim. Like anything else that's free, netrw.vim and its
@@ -17,7 +17,6 @@ Copyright: Copyright (C) 2016 Charles E Campbell *netrw-copyright*
holder be liable for any damages resulting from the use of this
software. Use at your own risk!
-
*netrw*
*dav* *ftp* *netrw-file* *rcp* *scp*
*davs* *http* *netrw.vim* *rsync* *sftp*
@@ -73,7 +72,7 @@ Copyright: Copyright (C) 2016 Charles E Campbell *netrw-copyright*
Improving Browsing..................................|netrw-ssh-hack|
Listing Bookmarks And History.......................|netrw-qb|
Making A New Directory..............................|netrw-d|
- Making The Browsing Directory The Current Directory.|netrw-c|
+ Making The Browsing Directory The Current Directory.|netrw-cd|
Marking Files.......................................|netrw-mf|
Unmarking Files.....................................|netrw-mF|
Marking Files By Location List......................|netrw-qL|
@@ -83,6 +82,7 @@ Copyright: Copyright (C) 2016 Charles E Campbell *netrw-copyright*
Marked Files: Arbitrary Shell Command, En Bloc......|netrw-mX|
Marked Files: Arbitrary Vim Command.................|netrw-mv|
Marked Files: Argument List.........................|netrw-ma| |netrw-mA|
+ Marked Files: Buffer List...........................|netrw-cb| |netrw-cB|
Marked Files: Compression And Decompression.........|netrw-mz|
Marked Files: Copying...............................|netrw-mc|
Marked Files: Diff..................................|netrw-md|
@@ -153,7 +153,7 @@ Windows' ftp doesn't support .netrc; however, one may have in one's .vimrc: >
let g:netrw_ftp_cmd= 'c:\Windows\System32\ftp -s:C:\Users\MyUserName\MACHINE'
<
-Netrw will substitute the host's machine name for "MACHINE" from the url it is
+Netrw will substitute the host's machine name for "MACHINE" from the URL it is
attempting to open, and so one may specify >
userid
password
@@ -210,7 +210,7 @@ EXTERNAL APPLICATIONS AND PROTOCOLS *netrw-externapp* {{{2
http: g:netrw_http_cmd = "fetch" elseif fetch is available
http: *g:netrw_http_put_cmd* = "curl -T"
rcp: *g:netrw_rcp_cmd* = "rcp"
- rsync: *g:netrw_rsync_cmd* = "rsync -a"
+ rsync: *g:netrw_rsync_cmd* = "rsync" (see |g:netrw_rsync_sep|)
scp: *g:netrw_scp_cmd* = "scp -q"
sftp: *g:netrw_sftp_cmd* = "sftp"
file: *g:netrw_file_cmd* = "elinks" or "links"
@@ -221,7 +221,7 @@ EXTERNAL APPLICATIONS AND PROTOCOLS *netrw-externapp* {{{2
elinks : "-source >"
links : "-dump >"
- curl : "-o"
+ curl : "-L -o"
wget : "-q -O"
fetch : "-o"
<
@@ -236,7 +236,7 @@ EXTERNAL APPLICATIONS AND PROTOCOLS *netrw-externapp* {{{2
READING *netrw-read* *netrw-nread* {{{2
- Generally, one may just use the url notation with a normal editing
+ Generally, one may just use the URL notation with a normal editing
command, such as >
:e ftp://[user@]machine/path
@@ -258,7 +258,7 @@ READING *netrw-read* *netrw-nread* {{{2
WRITING *netrw-write* *netrw-nwrite* {{{2
- One may just use the url notation with a normal file writing
+ One may just use the URL notation with a normal file writing
command, such as >
:w ftp://[user@]machine/path
@@ -279,7 +279,7 @@ WRITING *netrw-write* *netrw-nwrite* {{{2
SOURCING *netrw-source* {{{2
- One may just use the url notation with the normal file sourcing
+ One may just use the URL notation with the normal file sourcing
command, such as >
:so ftp://[user@]machine/path
@@ -477,7 +477,7 @@ file using root-relative paths, use the full path:
==============================================================================
4. Network-Oriented File Transfer *netrw-xfer* {{{1
-Network-oriented file transfer under Vim is implemented by a VimL-based script
+Network-oriented file transfer under Vim is implemented by a vim script
(<netrw.vim>) using plugin techniques. It currently supports both reading and
writing across networks using rcp, scp, ftp or ftp+<.netrc>, scp, fetch,
dav/cadaver, rsync, or sftp.
@@ -530,7 +530,7 @@ variable (ex. scp uses the variable g:netrw_scp_cmd, which is defaulted to
let g:netrw_sftp_cmd= '"c:\Program Files\PuTTY\psftp.exe"'
<
(note: it has been reported that windows 7 with putty v0.6's "-batch" option
- doesn't work, so it's best to leave it off for that system)
+ doesn't work, so its best to leave it off for that system)
See |netrw-p8| for more about putty, pscp, psftp, etc.
@@ -732,11 +732,11 @@ such as netrw.
The usual read/write commands are supported. There are also a few
additional commands available. Often you won't need to use Nwrite or
Nread as shown in |netrw-transparent| (ie. simply use >
- :e url
- :r url
- :w url
+ :e URL
+ :r URL
+ :w URL
instead, as appropriate) -- see |netrw-urls|. In the explanations
-below, a {netfile} is an url to a remote file.
+below, a {netfile} is a URL to a remote file.
*:Nwrite* *:Nw*
:[range]Nw[rite] Write the specified lines to the current
@@ -866,9 +866,11 @@ variables listed below, and may be modified by the user.
g:netrw_http_cmd var ="fetch -o" if fetch is available
g:netrw_http_cmd var ="wget -O" else if wget is available
g:netrw_http_put_cmd var ="curl -T"
- |g:netrw_list_cmd| var ="ssh USEPORT HOSTNAME ls -Fa"
+ |g:netrw_list_cmd| var ="ssh USEPORT HOSTNAME ls -Fa"
g:netrw_rcp_cmd var ="rcp"
- g:netrw_rsync_cmd var ="rsync -a"
+ g:netrw_rsync_cmd var ="rsync"
+ *g:netrw_rsync_sep* var ="/" used to separate the hostname
+ from the file spec
g:netrw_scp_cmd var ="scp -q"
g:netrw_sftp_cmd var ="sftp" >
-------------------------------------------------------------------------
@@ -1005,7 +1007,7 @@ where [protocol] is typically scp or ftp. As an example, try: >
vim ftp://ftp.home.vim.org/pub/vim/
<
For local directories, the trailing slash is not required. Again, because it's
-easy to miss: to browse remote directories, the url must terminate with a
+easy to miss: to browse remote directories, the URL must terminate with a
slash!
If you'd like to avoid entering the password repeatedly for remote directory
@@ -1075,9 +1077,9 @@ QUICK REFERENCE: MAPS *netrw-browse-maps* {{{2
<c-r> Browse using a gvim server |netrw-ctrl-r|
<c-tab> Shrink/expand a netrw/explore window |netrw-c-tab|
- Makes Netrw go up one directory |netrw--|
- a Toggles between normal display, |netrw-a|
+ a Cycles between normal display, |netrw-a|
hiding (suppress display of files matching g:netrw_list_hide)
- showing (display only files which match g:netrw_list_hide)
+ and showing (display only files which match g:netrw_list_hide)
c Make browsing directory the current directory |netrw-c|
C Setting the editing window |netrw-C|
d Make a directory |netrw-d|
@@ -1088,6 +1090,7 @@ QUICK REFERENCE: MAPS *netrw-browse-maps* {{{2
gh Quick hide/unhide of dot-files |netrw-gh|
gn Make top of tree the directory below the cursor |netrw-gn|
i Cycle between thin, long, wide, and tree listings |netrw-i|
+ I Toggle the displaying of the banner |netrw-I|
mb Bookmark current directory |netrw-mb|
mc Copy marked files to marked-file target directory |netrw-mc|
md Apply diff to marked files (up to 3) |netrw-md|
@@ -1167,25 +1170,26 @@ QUICK REFERENCE: COMMANDS *netrw-explore-cmds* *netrw-browse-cmds* {{{2
BANNER DISPLAY *netrw-I*
-One may toggle the banner display on and off by pressing "I".
+One may toggle the displaying of the banner by pressing "I".
Also See: |g:netrw_banner|
-BOOKMARKING A DIRECTORY *netrw-mb* *netrw-bookmark* *netrw-bookmarks* {{{2
+BOOKMARKING A DIRECTORY *netrw-mb* *netrw-bookmark* *netrw-bookmarks* {{{2
One may easily "bookmark" the currently browsed directory by using >
mb
<
*.netrwbook*
-Bookmarks are retained in between sessions in a $HOME/.netrwbook file, and are
-kept in sorted order.
+Bookmarks are retained in between sessions of vim in a file called .netrwbook
+as a |List|, which is typically stored in the first directory on the user's
+'|runtimepath|'; entries are kept in sorted order.
If there are marked files and/or directories, mb will add them to the bookmark
list.
-*netrw-:NetrwMB*
+ *netrw-:NetrwMB*
Addtionally, one may use :NetrwMB to bookmark files or directories. >
:NetrwMB[!] [files/directories]
@@ -1204,7 +1208,7 @@ The :NetrwMB command is available outside of netrw buffers (once netrw has been
invoked in the session).
The file ".netrwbook" holds bookmarks when netrw (and vim) is not active. By
-default, it's stored on the first directory on the user's |'runtimepath'|.
+default, its stored on the first directory on the user's |'runtimepath'|.
Related Topics:
|netrw-gb| how to return (go) to a bookmark
@@ -1416,20 +1420,20 @@ Related Topics:
CHANGING TO A PREDECESSOR DIRECTORY *netrw-u* *netrw-updir* {{{2
-Every time you change to a new directory (new for the current session),
-netrw will save the directory in a recently-visited directory history
-list (unless |g:netrw_dirhistmax| is zero; by default, it's ten). With the
-"u" map, one can change to an earlier directory (predecessor). To do
-the opposite, see |netrw-U|.
+Every time you change to a new directory (new for the current session), netrw
+will save the directory in a recently-visited directory history list (unless
+|g:netrw_dirhistmax| is zero; by default, it holds ten entries). With the "u"
+map, one can change to an earlier directory (predecessor). To do the
+opposite, see |netrw-U|.
-The "u" map also accepts counts to go back in the history several slots.
-For your convenience, qb (see |netrw-qb|) lists the history number which may
-be used in that count.
+The "u" map also accepts counts to go back in the history several slots. For
+your convenience, qb (see |netrw-qb|) lists the history number which may be
+used in that count.
*.netrwhist*
See |g:netrw_dirhistmax| for how to control the quantity of history stack
slots. The file ".netrwhist" holds history when netrw (and vim) is not
-active. By default, it's stored on the first directory on the user's
+active. By default, its stored on the first directory on the user's
|'runtimepath'|.
Related Topics:
@@ -1465,10 +1469,10 @@ changing the top of the tree listing.
NETRW CLEAN *netrw-clean* *:NetrwClean* {{{2
-With NetrwClean one may easily remove netrw from one's home directory;
+With :NetrwClean one may easily remove netrw from one's home directory;
more precisely, from the first directory on your |'runtimepath'|.
-With NetrwClean!, netrw will attempt to remove netrw from all directories on
+With :NetrwClean!, netrw will attempt to remove netrw from all directories on
your |'runtimepath'|. Of course, you have to have write/delete permissions
correct to do this.
@@ -1500,7 +1504,7 @@ Netrw determines which special handler by the following method:
If g:netrw_browsex_viewer == '-', then netrwFileHandlers#Invoke() will be
used instead (see |netrw_filehandler|).
- * for Windows 32 or 64, the url and FileProtocolHandler dlls are used.
+ * for Windows 32 or 64, the URL and FileProtocolHandler dlls are used.
* for Gnome (with gnome-open): gnome-open is used.
* for KDE (with kfmclient) : kfmclient is used
* for Mac OS X : open is used.
@@ -1516,9 +1520,10 @@ will apply a special handler to it (like "x" works when in a netrw buffer).
One may also use visual mode (see |visual-start|) to select the text that the
special handler will use. Normally gx uses expand("<cfile>") to pick up the
text under the cursor; one may change what |expand()| uses via the
-|g:netrw_gx| variable. Alternatively, one may select the text to be used by
-gx via first making a visual selection (see |visual-block|) or by changing
-the |'isfname'| option (which is global, so netrw doesn't modify it).
+|g:netrw_gx| variable (options include "<cword>", "<cWORD>"). Note that
+expand("<cfile>") depends on the |'isfname'| setting. Alternatively, one may
+select the text to be used by gx by making a visual selection (see
+|visual-block|) and then pressing gx.
Associated setting variables:
|g:netrw_gx| control how gx picks up the text under the cursor
@@ -1610,6 +1615,11 @@ A further approach is to delete files which match a pattern.
This will cause the matching files to be marked. Then,
press "D".
+If your vim has 7.4 with patch#1107, then |g:netrw_localrmdir| no longer
+is used to remove directories; instead, vim's |delete()| is used with
+the "d" option. Please note that only empty directories may be deleted
+with the "D" mapping. Regular files are deleted with |delete()|, too.
+
The |g:netrw_rm_cmd|, |g:netrw_rmf_cmd|, and |g:netrw_rmdir_cmd| variables are
used to control the attempts to remove remote files and directories. The
g:netrw_rm_cmd is used with files, and its default value is:
@@ -1673,17 +1683,18 @@ DIRECTORY EXPLORATION COMMANDS {{{2
The [N] specifies a |g:netrw_winsize| just for the new :Lexplore
window.
- Those who like this method often also often like tree style displays;
+ Those who like this method often also like tree style displays;
see |g:netrw_liststyle|.
+:[N]Lexplore! [dir] is similar to :Lexplore, except that the full-height
+ Explorer window will open on the right hand side and an
+ uninitialized |g:netrw_chgwin| will be set to 1 (eg. edits will
+ preferentially occur in the leftmost window).
+
Also see: |netrw-C| |g:netrw_browse_split| |g:netrw_wiw|
|netrw-p| |netrw-P| |g:netrw_chgwin|
|netrw-c-tab| |g:netrw_winsize|
-:[N]Lexplore! is like :Lexplore, except that the full-height Explorer window
- will open on the right hand side and an uninitialized |g:netrw_chgwin|
- will be set to 1.
-
*netrw-:Sexplore*
:[N]Sexplore will always split the window before invoking the local-directory
browser. As with Explore, the splitting is normally done
@@ -1845,9 +1856,11 @@ EXECUTING FILE UNDER CURSOR VIA SYSTEM() *netrw-X* {{{2
Pressing X while the cursor is atop an executable file will yield a prompt
using the filename asking for any arguments. Upon pressing a [return], netrw
-will then call |system()| with that command and arguments. The result will
-be displayed by |:echomsg|, and so |:messages| will repeat display of the
-result. Ansi escape sequences will be stripped out.
+will then call |system()| with that command and arguments. The result will be
+displayed by |:echomsg|, and so |:messages| will repeat display of the result.
+Ansi escape sequences will be stripped out.
+
+See |cmdline-window| for directions for more on how to edit the arguments.
FORCING TREATMENT AS A FILE OR DIRECTORY *netrw-gd* *netrw-gf* {{{2
@@ -2070,7 +2083,7 @@ Associated setting variables: |g:netrw_localmkdir| |g:netrw_mkdir_cmd|
|g:netrw_remote_mkdir| |netrw-%|
-MAKING THE BROWSING DIRECTORY THE CURRENT DIRECTORY *netrw-c* {{{2
+MAKING THE BROWSING DIRECTORY THE CURRENT DIRECTORY *netrw-cd* {{{2
By default, |g:netrw_keepdir| is 1. This setting means that the current
directory will not track the browsing directory. (done for backwards
@@ -2085,6 +2098,9 @@ the two directories the same, use the "c" map (just type c). That map will
set Vim's notion of the current directory to netrw's current browsing
directory.
+*netrw-c* : This map's name has been changed from "c" to cd (see |netrw-cd|).
+ This change was done to allow for |netrw-cb| and |netrw-cB| maps.
+
Associated setting variable: |g:netrw_keepdir|
MARKING FILES *netrw-:MF* *netrw-mf* {{{2
@@ -2129,6 +2145,7 @@ The following netrw maps make use of marked files:
|netrw-mg| Apply vimgrep to marked files
|netrw-mm| Move marked files to target
|netrw-mp| Print marked files
+ |netrw-ms| Netrw will source marked files
|netrw-mt| Set target for |netrw-mm| and |netrw-mc|
|netrw-mT| Generate tags using marked files
|netrw-mv| Apply vim command to marked files
@@ -2203,6 +2220,9 @@ converts "*" into ".*" (see |regexp|) and marks files based on that. In the
future I may make it possible to use |regexp|s instead of glob()-style
expressions (yet-another-option).
+See |cmdline-window| for directions on more on how to edit the regular
+expression.
+
MARKED FILES, ARBITRARY VIM COMMAND *netrw-mv* {{{2
(See |netrw-mf| and |netrw-mr| for how to mark files)
@@ -2216,8 +2236,9 @@ the local marked file list, individually:
* run vim command
* sil! keepalt wq!
-A prompt, "Enter vim command: ", will be issued to elicit the vim command
-you wish used.
+A prompt, "Enter vim command: ", will be issued to elicit the vim command you
+wish used. See |cmdline-window| for directions for more on how to edit the
+command.
MARKED FILES, ARBITRARY SHELL COMMAND *netrw-mx* {{{2
@@ -2268,7 +2289,17 @@ MARKED FILES: ARGUMENT LIST *netrw-ma* *netrw-mA*
Using ma, one moves filenames from the marked file list to the argument list.
Using mA, one moves filenames from the argument list to the marked file list.
-See Also: |netrw-qF| |argument-list| |:args|
+See Also: |netrw-cb| |netrw-cB| |netrw-qF| |argument-list| |:args|
+
+
+MARKED FILES: BUFFER LIST *netrw-cb* *netrw-cB*
+ (See |netrw-mf| and |netrw-mr| for how to mark files)
+ (uses the global marked-file list)
+
+Using cb, one moves filenames from the marked file list to the buffer list.
+Using cB, one copies filenames from the buffer list to the marked file list.
+
+See Also: |netrw-ma| |netrw-mA| |netrw-qF| |buffer-list| |:buffers|
MARKED FILES: COMPRESSION AND DECOMPRESSION *netrw-mz* {{{2
@@ -2304,8 +2335,8 @@ One may also copy directories and their contents (local only) to a target
directory.
Associated setting variables:
- |g:netrw_localcopycmd|
- |g:netrw_localcopydircmd|
+ |g:netrw_localcopycmd| |g:netrw_localcopycmdopt|
+ |g:netrw_localcopydircmd| |g:netrw_localcopydircmdopt|
|g:netrw_ssh_cmd|
MARKED FILES: DIFF *netrw-md* {{{2
@@ -2450,8 +2481,8 @@ When a remote set of files are tagged, the resulting tags file is "obtained";
ie. a copy is transferred to the local system's directory. The now local tags
file is then modified so that one may use it through the network. The
modification made concerns the names of the files in the tags; each filename is
-preceded by the netrw-compatible url used to obtain it. When one subsequently
-uses one of the go to tag actions (|tags|), the url will be used by netrw to
+preceded by the netrw-compatible URL used to obtain it. When one subsequently
+uses one of the go to tag actions (|tags|), the URL will be used by netrw to
edit the desired file and go to the tag.
Associated setting variables: |g:netrw_ctags| |g:netrw_ssh_cmd|
@@ -2553,8 +2584,8 @@ your browsing preferences. (see also: |netrw-settings|)
editing. It will also use the specified tab
and window numbers to perform editing
(see |clientserver|, |netrw-ctrl-r|)
- This option does not affect |:Lexplore|
- windows.
+ This option does not affect the production of
+ |:Lexplore| windows.
Related topics:
|g:netrw_alto| |g:netrw_altv|
@@ -2713,6 +2744,7 @@ your browsing preferences. (see also: |netrw-settings|)
*g:netrw_home* The home directory for where bookmarks and
history are saved (as .netrwbook and
.netrwhist).
+ Netrw uses |expand()|on the string.
default: the first directory on the
|'runtimepath'|
@@ -2733,7 +2765,7 @@ your browsing preferences. (see also: |netrw-settings|)
default: (if ssh is executable)
"ssh HOSTNAME ls -FLa"
- *g:netrw_list_cmd_options* If this variable exists, then its contents are
+ *g:netrw_list_cmd_options* If this variable exists, then its contents are
appended to the g:netrw_list_cmd. For
example, use "2>/dev/null" to get rid of banner
messages on unix systems.
@@ -2759,26 +2791,52 @@ your browsing preferences. (see also: |netrw-settings|)
let g:netrw_list_hide= netrw_gitignore#Hide().'.*\.swp$'
default: ""
- *g:netrw_localcopycmd* ="cp" Linux/Unix/MacOS/Cygwin
- ="copy" Windows
+ *g:netrw_localcopycmd* ="cp" Linux/Unix/MacOS/Cygwin
+ =expand("$COMSPEC") Windows
Copies marked files (|netrw-mf|) to target
directory (|netrw-mt|, |netrw-mc|)
- *g:netrw_localcopydircmd* ="cp -R" Linux/Unix/MacOS/Cygwin
- ="xcopy /e /c /h/ /i /k" Windows
+ *g:netrw_localcopycmdopt* ='' Linux/Unix/MacOS/Cygwin
+ =' \c copy' Windows
+ Options for the |g:netrw_localcopycmd|
+
+ *g:netrw_localcopydircmd* ="cp" Linux/Unix/MacOS/Cygwin
+ =expand("$COMSPEC") Windows
Copies directories to target directory.
(|netrw-mc|, |netrw-mt|)
- *g:netrw_localmkdir* command for making a local directory
- default: "mkdir"
+ *g:netrw_localcopydircmdopt* =" -R" Linux/Unix/MacOS/Cygwin
+ =" /c xcopy /e /c /h/ /i /k" Windows
+ Options for |g:netrw_localcopydircmd|
- *g:netrw_localmovecmd* ="mv" Linux/Unix/MacOS/Cygwin
- ="move" Windows
+ *g:netrw_localmkdir* ="mkdir" Linux/Unix/MacOS/Cygwin
+ =expand("$COMSPEC") Windows
+ command for making a local directory
+
+ *g:netrw_localmkdiropt* ="" Linux/Unix/MacOS/Cygwin
+ =" /c mkdir" Windows
+ Options for |g:netrw_localmkdir|
+
+ *g:netrw_localmovecmd* ="mv" Linux/Unix/MacOS/Cygwin
+ =expand("$COMSPEC") Windows
Moves marked files (|netrw-mf|) to target
directory (|netrw-mt|, |netrw-mm|)
- *g:netrw_localrmdir* remove directory command (rmdir)
- default: "rmdir"
+ *g:netrw_localmovecmdopt* ="" Linux/Unix/MacOS/Cygwin
+ =" /c move" Windows
+ Options for |g:netrw_localmovecmd|
+
+ *g:netrw_localrmdir* ="rmdir" Linux/Unix/MacOS/Cygwin
+ =expand("$COMSPEC") Windows
+ Remove directory command (rmdir)
+ This variable is only used if your vim is
+ earlier than 7.4 or if your vim doesn't
+ have patch#1107. Otherwise, |delete()|
+ is used with the "d" option.
+
+ *g:netrw_localrmdiropt* ="" Linux/Unix/MacOS/Cygwin
+ =" /c rmdir" Windows
+ Options for |g:netrw_localrmdir|
*g:netrw_maxfilenamelen* =32 by default, selected so as to make long
listings fit on 80 column displays.
@@ -2891,17 +2949,23 @@ your browsing preferences. (see also: |netrw-settings|)
netrwTilde : *
netrwTmp : tmp* *tmp
- These syntax highlighting groups are linked
- to Folded or DiffChange by default
- (see |hl-Folded| and |hl-DiffChange|), but
- one may put lines like >
+ In addition, those groups mentioned in
+ |'suffixes'| are also added to the special
+ file highlighting group.
+ These syntax highlighting groups are linked
+ to netrwGray or Folded by default
+ (see |hl-Folded|), but one may put lines like >
hi link netrwCompress Visual
< into one's <.vimrc> to use one's own
preferences. Alternatively, one may
- put such specifications into
- .vim/after/syntax/netrw.vim.
-
- As an example, I myself use a dark-background
+ put such specifications into >
+ .vim/after/syntax/netrw.vim.
+< The netrwGray highlighting is set up by
+ netrw when >
+ * netrwGray has not been previously
+ defined
+ * the gui is running
+< As an example, I myself use a dark-background
colorscheme with the following in
.vim/after/syntax/netrw.vim: >
@@ -3136,8 +3200,8 @@ If there are no marked files: (see |netrw-mf|)
Renaming files and directories involves moving the cursor to the
file/directory to be moved (renamed) and pressing "R". You will then be
- queried for what you want the file/directory to be renamed to You may select
- a range of lines with the "V" command (visual selection), and then
+ queried for what you want the file/directory to be renamed to. You may
+ select a range of lines with the "V" command (visual selection), and then
press "R"; you will be queried for each file as to what you want it
renamed to.
@@ -3169,16 +3233,20 @@ If there are marked files: (see |netrw-mf|)
Note that moving files is a dangerous operation; copies are safer. That's
because a "move" for remote files is actually a copy + delete -- and if
- the copy fails and the delete does not, you may lose the file.
+ the copy fails and the delete succeeds you may lose the file.
Use at your own risk.
-The g:netrw_rename_cmd variable is used to implement remote renaming. By
-default its value is:
+The *g:netrw_rename_cmd* variable is used to implement remote renaming. By
+default its value is: >
ssh HOSTNAME mv
-
+<
One may rename a block of files and directories by selecting them with
-V (|linewise-visual|) when using thin style
+V (|linewise-visual|) when using thin style.
+
+See |cmdline-editing| for more on how to edit the command line; in particular,
+you'll find <ctrl-f> (initiates cmdline window editing) and <ctrl-c> (uses the
+command line under the cursor) useful in conjunction with the R command.
SELECTING SORTING STYLE *netrw-s* *netrw-sort* {{{2
@@ -3199,8 +3267,8 @@ number. Subsequent selection of a file to edit (|netrw-cr|) will use that
window.
* C : by itself, will select the current window holding a netrw buffer
- for editing via |netrw-cr|. The C mapping is only available while in
- netrw buffers.
+ for subsequent editing via |netrw-cr|. The C mapping is only available
+ while in netrw buffers.
* [count]C : the count will be used as the window number to be used
for subsequent editing via |netrw-cr|.
@@ -3213,7 +3281,7 @@ window.
Using >
let g:netrw_chgwin= -1
will restore the default editing behavior
-(ie. editing will use the current window).
+(ie. subsequent editing will use the current window).
Related topics: |netrw-cr| |g:netrw_browse_split|
Associated setting variables: |g:netrw_chgwin|
@@ -3234,9 +3302,9 @@ only if your terminal supports differentiating <c-tab> from a plain
* Else bring up a |:Lexplore| window
-If |g:netrw_usetab| exists or is zero, or if there is a pre-existing mapping
+If |g:netrw_usetab| exists and is zero, or if there is a pre-existing mapping
for <c-tab>, then the <c-tab> will not be mapped. One may map something other
-than a <c-tab>, too: (but you'll still need to have had g:netrw_usetab set) >
+than a <c-tab>, too: (but you'll still need to have had |g:netrw_usetab| set). >
nmap <unique> (whatever) <Plug>NetrwShrink
<
@@ -3269,9 +3337,10 @@ The user function is passed one argument; it resembles >
fun! ExampleUserMapFunc(islocal)
<
-where a:islocal is 1 if it's a local-directory system call or 0 when
+where a:islocal is 1 if its a local-directory system call or 0 when
remote-directory system call.
+ *netrw-call* *netrw-expose* *netrw-modify*
Use netrw#Expose("varname") to access netrw-internal (script-local)
variables.
Use netrw#Modify("varname",newvalue) to change netrw-internal variables.
@@ -3593,7 +3662,7 @@ Example: Clear netrw's marked file list via a mapping on gu >
*netrw-p16*
P16. When editing remote files (ex. :e ftp://hostname/path/file),
- under Windows I get an |E303| message complaining that it's unable
+ under Windows I get an |E303| message complaining that its unable
to open a swap file.
(romainl) It looks like you are starting Vim from a protected
@@ -3647,7 +3716,7 @@ Example: Clear netrw's marked file list via a mapping on gu >
P21. I've made a directory (or file) with an accented character, but
netrw isn't letting me enter that directory/read that file:
- It's likely that the shell or o/s is using a different encoding
+ Its likely that the shell or o/s is using a different encoding
than you have vim (netrw) using. A patch to vim supporting
"systemencoding" may address this issue in the future; for
now, just have netrw use the proper encoding. For example: >
@@ -3763,6 +3832,102 @@ netrw:
==============================================================================
12. History *netrw-history* {{{1
+ v162: Sep 19, 2016 * (haya14busa) pointed out two syntax errors
+ with a patch; these are now fixed.
+ Oct 26, 2016 * I started using mate-terminal and found that
+ x and gx (|netrw-x| and |netrw-gx|) were no
+ longer working. Fixed (using atril when
+ $DESKTOP_SESSION is "mate").
+ Nov 04, 2016 * (Martin Vuille) pointed out that @+ was
+ being restored with keepregstar rather than
+ keepregplus.
+ Nov 09, 2016 * Broke apart the command from the options,
+ mostly for Windows. Introduced new netrw
+ settings: |g:netrw_localcopycmdopt|
+ |g:netrw_localcopydircmdopt| |g:netrw_localmkdiropt|
+ |g:netrw_localmovecmdopt| |g:netrw_localrmdiropt|
+ Nov 21, 2016 * (mattn) provided a patch for preview; swapped
+ winwidth() with winheight()
+ Nov 22, 2016 * (glacambre) reported that files containing
+ spaces weren't being obtained properly via
+ scp. Fix: apparently using single quotes
+ such as with 'file name' wasn't enough; the
+ spaces inside the quotes also had to be
+ escaped (ie. 'file\ name').
+ * Also fixed obtain (|netrw-O|) to be able to
+ obtain files with spaces in their names
+ Dec 20, 2016 * (xc1427) Reported that using "I" (|netrw-I|)
+ when atop "Hiding" in the banner also caused
+ the active-banner hiding control to occur
+ Jan 03, 2017 * (Enno Nagel) reported that attempting to
+ apply netrw to a directory that was without
+ read permission caused a syntax error.
+ Jan 13, 2017 * (Ingo Karkat) provided a patch which makes
+ using netrw#Call() better. Now returns
+ value of internal routines return, for example.
+ Jan 13, 2017 * (Ingo Karkat) changed netrw#FileUrlRead to
+ use |:edit| instead of |:read|. I also
+ changed the routine name to netrw#FileUrlEdit.
+ Jan 16, 2017 * (Sayem) reported a problem where :Lexplore
+ could generate a new listing buffer and
+ window instead of toggling the netrw display.
+ Unfortunately, the directions for eliciting
+ the problem weren't complete, so I may or
+ may not have fixed that issue.
+ Feb 06, 2017 * Implemented cb and cB. Changed "c" to "cd".
+ (see |netrw-cb|, |netrw-cB|, and |netrw-cd|)
+ Mar 21, 2017 * previously, netrw would specify (safe) settings
+ even when the setting was already safe for
+ netrw. Netrw now attempts to leave such
+ already-netrw-safe settings alone.
+ (affects s:NetrwOptionRestore() and
+ s:NetrwSafeOptions(); also introduced
+ s:NetrwRestoreSetting())
+ Jun 26, 2017 * (Christian Brabandt) provided a patch to
+ allow curl to follow redirects (ie. -L
+ option)
+ Jun 26, 2017 * (Callum Howard) reported a problem with
+ :Lexpore not removing the Lexplore window
+ after a change-directory
+ Aug 30, 2017 * (Ingo Karkat) one cannot switch to the
+ previously edited file (e.g. with CTRL-^)
+ after editing a file:// URL. Patch to
+ have a "keepalt" included.
+ Oct 17, 2017 * (Adam Faryna) reported that gn (|netrw-gn|)
+ did not work on directories in the current
+ tree
+ v157: Apr 20, 2016 * (Nicola) had set up a "nmap <expr> ..." with
+ a function that returned a 0 while silently
+ invoking a shell command. The shell command
+ activated a ShellCmdPost event which in turn
+ called s:LocalBrowseRefresh(). That looks
+ over all netrw buffers for changes needing
+ refreshes. However, inside a |:map-<expr>|,
+ tab and window changes are disallowed. Fixed.
+ (affects netrw's s:LocalBrowseRefresh())
+ * |g:netrw_localrmdir| not used any more, but
+ the relevant patch that causes |delete()| to
+ take over was #1107 (not #1109).
+ * |expand()| is now used on |g:netrw_home|;
+ consequently, g:netrw_home may now use
+ environment variables
+ * s:NetrwLeftmouse and s:NetrwCLeftmouse will
+ return without doing anything if invoked
+ when inside a non-netrw window
+ Jun 15, 2016 * gx now calls netrw#GX() which returns
+ the word under the cursor. The new
+ wrinkle: if one is in a netrw buffer,
+ then netrw's s:NetrwGetWord().
+ Jun 22, 2016 * Netrw was executing all its associated
+ Filetype commands silently; I'm going
+ to try doing that "noisily" and see if
+ folks have a problem with that.
+ Aug 12, 2016 * Changed order of tool selection for
+ handling http://... viewing.
+ (Nikolay Aleksandrovich Pavlov)
+ Aug 21, 2016 * Included hiding/showing/all for tree
+ listings
+ * Fixed refresh (^L) for tree listings
v156: Feb 18, 2016 * Changed =~ to =~# where appropriate
Feb 23, 2016 * s:ComposePath(base,subdir) now uses
fnameescape() on the base portion
@@ -3794,9 +3959,9 @@ netrw:
tell me how they're useful and should be
retained?
Nov 20, 2015 * Added |netrw-ma| and |netrw-mA| support
- Nov 20, 2015 * gx (|netrw-gx|) on an url downloaded the
+ Nov 20, 2015 * gx (|netrw-gx|) on a URL downloaded the
file in addition to simply bringing up the
- url in a browser. Fixed.
+ URL in a browser. Fixed.
Nov 23, 2015 * Added |g:netrw_sizestyle| support
Nov 27, 2015 * Inserted a lot of <c-u>s into various netrw
maps.
diff --git a/runtime/doc/print.txt b/runtime/doc/print.txt
index 72625a450a..3ffb52b5ae 100644
--- a/runtime/doc/print.txt
+++ b/runtime/doc/print.txt
@@ -87,25 +87,25 @@ If the option is empty, then vim will use the system default printer for
Macintosh: mac-roman,
HPUX: hp-roman8)
global
-Sets the character encoding used when printing. This option tells VIM which
+Sets the character encoding used when printing. This option tells Vim which
print character encoding file from the "print" directory in 'runtimepath' to
use.
This option will accept any value from |encoding-names|. Any recognized names
-are converted to VIM standard names - see 'encoding' for more details. Names
-not recognized by VIM will just be converted to lower case and underscores
+are converted to Vim standard names - see 'encoding' for more details. Names
+not recognized by Vim will just be converted to lower case and underscores
replaced with '-' signs.
-If 'printencoding' is empty or VIM cannot find the file then it will use
-'encoding' (if VIM is compiled with |+multi_byte| and it is set an 8-bit
-encoding) to find the print character encoding file. If VIM is unable to find
+If 'printencoding' is empty or Vim cannot find the file then it will use
+'encoding' (if Vim is compiled with |+multi_byte| and it is set an 8-bit
+encoding) to find the print character encoding file. If Vim is unable to find
a character encoding file then it will use the "latin1" print character
encoding file.
-When 'encoding' is set to a multi-byte encoding, VIM will try to convert
+When 'encoding' is set to a multi-byte encoding, Vim will try to convert
characters to the printing encoding for printing (if 'printencoding' is empty
then the conversion will be to latin1). Conversion to a printing encoding
-other than latin1 will require VIM to be compiled with the |+iconv| feature.
+other than latin1 will require Vim to be compiled with the |+iconv| feature.
If no conversion is possible then printing will fail. Any characters that
cannot be converted will be replaced with upside down question marks.
@@ -186,7 +186,7 @@ header is used when this option is empty.
'printmbcharset' 'pmbcs' string (default "")
global
Sets the CJK character set to be used when generating CJK output from
-|:hardcopy|. The following predefined values are currently recognised by VIM:
+|:hardcopy|. The following predefined values are currently recognised by Vim:
Value Description ~
Chinese GB_2312-80
@@ -253,7 +253,7 @@ Japanese text you would do the following; >
If 'printmbcharset' is not one of the above values then it is assumed to
specify a custom multi-byte character set and no check will be made that it is
-compatible with the value for 'printencoding'. VIM will look for a file
+compatible with the value for 'printencoding'. Vim will look for a file
defining the character set in the "print" directory in 'runtimepath'.
*pmbfn-option*
@@ -403,10 +403,10 @@ There are currently a number of limitations with PostScript printing:
possible to get all the characters in an encoding to print by installing a
new version of the Courier font family.
-- Multi-byte support - Currently VIM will try to convert multi-byte characters
+- Multi-byte support - Currently Vim will try to convert multi-byte characters
to the 8-bit encoding specified by 'printencoding' (or latin1 if it is
empty). Any characters that are not successfully converted are shown as
- unknown characters. Printing will fail if VIM cannot convert the multi-byte
+ unknown characters. Printing will fail if Vim cannot convert the multi-byte
to the 8-bit encoding.
==============================================================================
@@ -417,11 +417,11 @@ you need to define your own PostScript font encoding vector. Details on how
to define a font encoding vector is beyond the scope of this help file, but
you can find details in the PostScript Language Reference Manual, 3rd Edition,
published by Addison-Wesley and available in PDF form at
-http://www.adobe.com/. The following describes what you need to do for VIM to
+http://www.adobe.com/. The following describes what you need to do for Vim to
locate and use your print character encoding.
i. Decide on a unique name for your encoding vector, one that does not clash
- with any of the recognized or standard encoding names that VIM uses (see
+ with any of the recognized or standard encoding names that Vim uses (see
|encoding-names| for a list), and that no one else is likely to use.
ii. Copy $VIMRUNTIME/print/latin1.ps to the print subdirectory in your
'runtimepath' and rename it with your unique name.
@@ -429,23 +429,23 @@ iii. Edit your renamed copy of latin1.ps, replacing all occurrences of latin1
with your unique name (don't forget the line starting %%Title:), and
modify the array of glyph names to define your new encoding vector. The
array must have exactly 256 entries or you will not be able to print!
-iv. Within VIM, set 'printencoding' to your unique encoding name and then
- print your file. VIM will now use your custom print character encoding.
+iv. Within Vim, set 'printencoding' to your unique encoding name and then
+ print your file. Vim will now use your custom print character encoding.
-VIM will report an error with the resource file if you change the order or
+Vim will report an error with the resource file if you change the order or
content of the first 3 lines, other than the name of the encoding on the line
starting %%Title: or the version number on the line starting %%Version:.
-[Technical explanation for those that know PostScript - VIM looks for a file
+[Technical explanation for those that know PostScript - Vim looks for a file
with the same name as the encoding it will use when printing. The file
defines a new PostScript Encoding resource called /VIM-name, where name is the
-print character encoding VIM will use.]
+print character encoding Vim will use.]
==============================================================================
5. PostScript CJK Printing *postscript-cjk-printing*
*E673* *E674* *E675*
-VIM supports printing of Chinese, Japanese, and Korean files. Setting up VIM
+Vim supports printing of Chinese, Japanese, and Korean files. Setting up Vim
to correctly print CJK files requires setting up a few more options.
Each of these countries has many standard character sets and encodings which
@@ -466,7 +466,7 @@ option allows you to specify different fonts to use when printing characters
which are syntax highlighted with the font styles normal, italic, bold and
bold-italic.
-No CJK fonts are supplied with VIM. There are some free Korean, Japanese, and
+No CJK fonts are supplied with Vim. There are some free Korean, Japanese, and
Traditional Chinese fonts available at:
http://examples.oreilly.com/cjkvinfo/adobe/samples/
@@ -481,7 +481,7 @@ CJK fonts can be large containing several thousand glyphs, and it is not
uncommon to find that they only contain a subset of a national standard. It
is not unusual to find the fonts to not include characters for codes in the
ASCII code range. If you find half-width Roman characters are not appearing
-in your printout then you should configure VIM to use the Courier font the
+in your printout then you should configure Vim to use the Courier font the
half-width ASCII characters with 'printmbfont'. If your font does not include
other characters then you will need to find another font that does.
@@ -489,7 +489,7 @@ Another issue with ASCII characters, is that the various national character
sets specify a couple of different glyphs in the ASCII code range. If you
print ASCII text using the national character set you may see some unexpected
characters. If you want true ASCII code printing then you need to configure
-VIM to output ASCII characters for the ASCII code range with 'printmbfont'.
+Vim to output ASCII characters for the ASCII code range with 'printmbfont'.
It is possible to define your own multi-byte character set although this
should not be attempted lightly. A discussion on the process if beyond the
@@ -508,13 +508,13 @@ print job completing.
There are a number of possible causes as to why the printing may have failed:
- Wrong version of the prolog resource file. The prolog resource file
- contains some PostScript that VIM needs to be able to print. Each version
- of VIM needs one particular version. Make sure you have correctly installed
+ contains some PostScript that Vim needs to be able to print. Each version
+ of Vim needs one particular version. Make sure you have correctly installed
the runtime files, and don't have any old versions of a file called prolog
in the print directory in your 'runtimepath' directory.
- Paper size. Some PostScript printers will abort printing a file if they do
- not support the requested paper size. By default VIM uses A4 paper. Find
+ not support the requested paper size. By default Vim uses A4 paper. Find
out what size paper your printer normally uses and set the appropriate paper
size with 'printoptions'. If you cannot find the name of the paper used,
measure a sheet and compare it with the table of supported paper sizes listed
@@ -645,7 +645,7 @@ complex print document creation.
N-UP PRINTING
-The psnup utility takes an existing PostScript file generated from VIM and
+The psnup utility takes an existing PostScript file generated from Vim and
convert it to an n-up version. The simplest way to create a 2-up printout is
to first create a PostScript file with: >
@@ -701,16 +701,16 @@ There are a couple of points to bear in mind:
==============================================================================
8. Formfeed Characters *printing-formfeed*
-By default VIM does not do any special processing of |formfeed| control
-characters. Setting the 'printoptions' formfeed item will make VIM recognize
+By default Vim does not do any special processing of |formfeed| control
+characters. Setting the 'printoptions' formfeed item will make Vim recognize
formfeed characters and continue printing the current line at the beginning
of the first line on a new page. The use of formfeed characters provides
rudimentary print control but there are certain things to be aware of.
-VIM will always start printing a line (including a line number if enabled)
+Vim will always start printing a line (including a line number if enabled)
containing a formfeed character, even if it is the first character on the
line. This means if a line starting with a formfeed character is the first
-line of a page then VIM will print a blank page.
+line of a page then Vim will print a blank page.
Since the line number is printed at the start of printing the line containing
the formfeed character, the remainder of the line printed on the new page
@@ -719,7 +719,7 @@ lines of a long line when wrap in 'printoptions' is enabled).
If the formfeed character is the last character on a line, then printing will
continue on the second line of the new page, not the first. This is due to
-VIM processing the end of the line after the formfeed character and moving
+Vim processing the end of the line after the formfeed character and moving
down a line to continue printing.
Due to the points made above it is recommended that when formfeed character
diff --git a/runtime/doc/provider.txt b/runtime/doc/provider.txt
index 02f3fcab6c..b806b08f95 100644
--- a/runtime/doc/provider.txt
+++ b/runtime/doc/provider.txt
@@ -133,8 +133,8 @@ registers. Nvim looks for these clipboard tools, in order of priority:
- |g:clipboard|
- pbcopy/pbpaste (macOS)
- - xclip
- - xsel (newer alternative to xclip)
+ - xsel (if $DISPLAY is set)
+ - xclip (if $DISPLAY is set)
- lemonade (for SSH) https://github.com/pocke/lemonade
- doitclient (for SSH) http://www.chiark.greenend.org.uk/~sgtatham/doit/
- win32yank (Windows)
@@ -162,13 +162,11 @@ process has not died, the cached selection is applied.
==============================================================================
X11 selection mechanism *clipboard-x11* *x11-selection*
-The clipboard providers for X11 store text in what is known as "selections".
-Selections are "owned" by an application, so when the application is closed,
-the selection text is lost.
-
+X11 clipboard providers store text in "selections". Selections are owned by an
+application, so when the application gets closed, the selection text is lost.
The contents of selections are held by the originating application (e.g., upon
-a copy), and only passed on to another application when that other application
-asks for them (e.g., upon a paste).
+a copy), and only passed to another application when that other application
+requests them (e.g., upon a paste).
*quoteplus* *quote+*
diff --git a/runtime/doc/quickfix.txt b/runtime/doc/quickfix.txt
index a647318347..da167c0f5b 100644
--- a/runtime/doc/quickfix.txt
+++ b/runtime/doc/quickfix.txt
@@ -31,11 +31,21 @@ From inside Vim an easy way to run a command and handle the output is with the
The 'errorformat' option should be set to match the error messages from your
compiler (see |errorformat| below).
+ *quickfix-ID*
+Each quickfix list has a unique identifier called the quickfix ID and this
+number will not change within a Vim session. The getqflist() function can be
+used to get the identifier assigned to a list. There is also a quickfix list
+number which may change whenever more than ten lists are added to a quickfix
+stack.
+
*location-list* *E776*
-A location list is similar to a quickfix list and contains a list of positions
-in files. A location list is associated with a window and each window can
-have a separate location list. A location list can be associated with only
-one window. The location list is independent of the quickfix list.
+A location list is a window-local quickfix list. You get one after commands
+like `:lvimgrep`, `:lgrep`, `:lhelpgrep`, `:lmake`, etc., which create a
+location list instead of a quickfix list as the corresponding `:vimgrep`,
+`:grep`, `:helpgrep`, `:make` do.
+A location list is associated with a window and each window can have a
+separate location list. A location list can be associated with only one
+window. The location list is independent of the quickfix list.
When a window with a location list is split, the new window gets a copy of the
location list. When there are no longer any references to a location list,
@@ -1362,7 +1372,7 @@ prints information about entering a directory in the form "Making all in dir".
Making all in dir2 ./dir1/dir2
This can be solved by printing absolute directories in the "enter directory"
- message or by printing "leave directory" messages..
+ message or by printing "leave directory" messages.
To avoid this problem, ensure to print absolute directory names and "leave
directory" messages.
diff --git a/runtime/doc/quickref.txt b/runtime/doc/quickref.txt
index c4c3dcad88..b22d2afa7e 100644
--- a/runtime/doc/quickref.txt
+++ b/runtime/doc/quickref.txt
@@ -721,7 +721,6 @@ Short explanation of each option: *option-list*
'helpheight' 'hh' minimum height of a new help window
'helplang' 'hlg' preferred help languages
'hidden' 'hid' don't unload buffer when it is |abandon|ed
-'highlight' 'hl' sets highlighting mode for various occasions
'hlsearch' 'hls' highlight matches with last search pattern
'history' 'hi' number of command-lines that are remembered
'hkmap' 'hk' Hebrew keyboard mapping
@@ -1254,6 +1253,7 @@ Context-sensitive completion on the command-line:
|:sfind| :sf[ind] {file} split window, find {file} in 'path'
and edit it
+|:terminal| :terminal {cmd} open a terminal window
|CTRL-W_]| CTRL-W ] split window and jump to tag under
cursor
|CTRL-W_f| CTRL-W f split window and edit file name under
diff --git a/runtime/doc/remote.txt b/runtime/doc/remote.txt
index 67bfb0b48e..039d8b582e 100644
--- a/runtime/doc/remote.txt
+++ b/runtime/doc/remote.txt
@@ -87,7 +87,7 @@ Tell the remote server "BLA" to write all files and exit: >
vim --servername BLA --remote-send '<C-\><C-N>:wqa<CR>'
-SERVER NAME
+SERVER NAME *client-server-name*
By default Vim will try to register the name under which it was invoked (gvim,
egvim ...). This can be overridden with the --servername argument. If the
@@ -137,6 +137,7 @@ the description in |eval.txt| or use CTRL-] on the function name to jump to
the full explanation.
synopsis explanation ~
+ remote_startserver( name) run a server
remote_expr( server, string, idvar) send expression
remote_send( server, string, idvar) send key sequence
serverlist() get a list of available servers
diff --git a/runtime/doc/scroll.txt b/runtime/doc/scroll.txt
index 56af9ab75e..99ebd26db3 100644
--- a/runtime/doc/scroll.txt
+++ b/runtime/doc/scroll.txt
@@ -211,7 +211,7 @@ past its buffer's limits.
However, if a 'scrollbind' window that has a relative offset that is past its
buffer's limits is given the cursor focus, the other 'scrollbind' windows must
jump to a location where the current window's relative offset is valid. This
-behavior can be changed by clearing the 'jump' flag from the 'scrollopt'
+behavior can be changed by clearing the "jump" flag from the 'scrollopt'
option.
*syncbind* *:syncbind* *:sync*
diff --git a/runtime/doc/spell.txt b/runtime/doc/spell.txt
index f2be25097c..718b5d4c1f 100644
--- a/runtime/doc/spell.txt
+++ b/runtime/doc/spell.txt
@@ -459,7 +459,7 @@ Vim uses a binary file format for spelling. This greatly speeds up loading
the word list and keeps it small.
*.aff* *.dic* *Myspell*
You can create a Vim spell file from the .aff and .dic files that Myspell
-uses. Myspell is used by OpenOffice.org and Mozilla. The OpenOffice .oxt
+uses. Myspell is used by OpenOffice.org and Mozilla. The OpenOffice .oxt
files are zip files which contain the .aff and .dic files. You should be able
to find them here:
http://extensions.services.openoffice.org/dictionary
@@ -704,7 +704,7 @@ Additionally the following items are recognized:
= Case must match exactly.
? Rare word.
! Bad (wrong) word.
- digit A region in which the word is valid. If no regions are
+ 1 to 9 A region in which the word is valid. If no regions are
specified the word is valid in all regions.
Example:
@@ -1594,7 +1594,7 @@ COMPOUNDSYLLABLE (Hunspell) *spell-COMPOUNDSYLLABLE*
KEY (Hunspell) *spell-KEY*
Define characters that are close together on the keyboard.
Used to give better suggestions. Not supported.
-
+
LANG (Hunspell) *spell-LANG*
This specifies language-specific behavior. This actually
moves part of the language knowledge into the program,
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index cbaa2916e6..85330f3dec 100644
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -39,10 +39,12 @@ fine. If it doesn't, try setting the VIM environment variable to the
directory where the Vim stuff is located. For example, if your syntax files
are in the "/usr/vim/vim50/syntax" directory, set $VIMRUNTIME to
"/usr/vim/vim50". You must do this in the shell, before starting Vim.
+This command also sources the |menu.vim| script when the GUI is running or
+will start soon. See |'go-M'| about avoiding that.
*:syn-on* *:syntax-on*
-The ":syntax enable" command will keep your current color settings. This
-allows using ":highlight" commands to set your preferred colors before or
+The `:syntax enable` command will keep your current color settings. This
+allows using `:highlight` commands to set your preferred colors before or
after using this command. If you want Vim to overrule your settings with the
defaults, use: >
:syntax on
@@ -788,12 +790,9 @@ See |mysyntaxfile-add| for installing script languages permanently.
APACHE *apache.vim* *ft-apache-syntax*
-The apache syntax file provides syntax highlighting depending on Apache HTTP
-server version, by default for 1.3.x. Set "apache_version" to Apache version
-(as a string) to get highlighting for another version. Example: >
+The apache syntax file provides syntax highlighting for Apache HTTP server
+version 2.2.3.
- :let apache_version = "2.0"
-<
*asm.vim* *asmh8300.vim* *nasm.vim* *masm.vim* *asm68k*
ASSEMBLY *ft-asm-syntax* *ft-asmh8300-syntax* *ft-nasm-syntax*
@@ -2108,6 +2107,16 @@ set "msql_minlines" to the value you desire. Example: >
:let msql_minlines = 200
+N1QL *n1ql.vim* *ft-n1ql-syntax*
+
+N1QL is a SQL-like declarative language for manipulating JSON documents in
+Couchbase Server databases.
+
+Vim syntax highlights N1QL statements, keywords, operators, types, comments,
+and special values. Vim ignores syntactical elements specific to SQL or its
+many dialects, like COLUMN or CHAR, that don't exist in N1QL.
+
+
NCF *ncf.vim* *ft-ncf-syntax*
There is one option for NCF syntax highlighting.
@@ -2616,9 +2625,9 @@ later, and part earlier) adds.
RESTRUCTURED TEXT *rst.vim* *ft-rst-syntax*
-You may set what syntax definitions should be used for code blocks via
+You may set what syntax definitions should be used for code blocks via >
let rst_syntax_code_list = ['vim', 'lisp', ...]
-
+<
REXX *rexx.vim* *ft-rexx-syntax*
@@ -4543,12 +4552,11 @@ is mostly used, because it looks better.
==============================================================================
12. Highlight command *:highlight* *:hi* *E28* *E411* *E415*
-There are three types of highlight groups:
+There are two types of highlight groups:
+- The built-in |highlight-groups|.
- The ones used for specific languages. For these the name starts with the
name of the language. Many of these don't have any attributes, but are
linked to a group of the second type.
-- The ones used for all syntax languages.
-- The ones used for the 'highlight' option.
*hitest.vim*
You can see all the groups currently active with this command: >
:so $VIMRUNTIME/syntax/hitest.vim
@@ -4758,10 +4766,11 @@ ctermbg={color-nr} *highlight-ctermbg*
Example: >
:highlight Normal ctermfg=grey ctermbg=darkblue
< When setting the "ctermbg" color for the Normal group, the
- 'background' option will be adjusted automatically. This causes the
- highlight groups that depend on 'background' to change! This means
- you should set the colors for Normal first, before setting other
- colors.
+ 'background' option will be adjusted automatically, under the
+ condition that the color is recognized and 'background' was not set
+ explicitly. This causes the highlight groups that depend on
+ 'background' to change! This means you should set the colors for
+ Normal first, before setting other colors.
When a colorscheme is being used, changing 'background' causes it to
be reloaded, which may reset all colors (including Normal). First
delete the "g:colors_name" variable when you don't want this.
@@ -4920,7 +4929,7 @@ NonText '@' at the end of the window, characters from 'showbreak'
*hl-Normal*
Normal normal text
*hl-NormalNC*
-NormalNC normal text in non-current window
+NormalNC normal text in non-current windows
*hl-Pmenu*
Pmenu Popup menu: normal item.
*hl-PmenuSel*
@@ -5080,8 +5089,6 @@ defaults back: >
It is a bit of a wrong name, since it does not reset any syntax items, it only
affects the highlighting.
-This doesn't change the colors for the 'highlight' option.
-
Note that the syntax colors that you set in your vimrc file will also be reset
back to their Vim default.
Note that if you are using a color scheme, the colors defined by the color
diff --git a/runtime/doc/tagsrch.txt b/runtime/doc/tagsrch.txt
index 1ceb602512..f0ad2cfd43 100644
--- a/runtime/doc/tagsrch.txt
+++ b/runtime/doc/tagsrch.txt
@@ -189,6 +189,7 @@ the same entry.
information in the tags file(s).
When [ident] is not given, the last tag name from the
tag stack is used.
+ See |tag-!| for [!].
With a '>' in the first column is indicated which is
the current position in the list (if there is one).
[ident] can be a regexp pattern, see |tag-regexp|.
diff --git a/runtime/doc/ui.txt b/runtime/doc/ui.txt
index deac1609c0..685019aed7 100644
--- a/runtime/doc/ui.txt
+++ b/runtime/doc/ui.txt
@@ -28,6 +28,7 @@ a dictionary with these (optional) keys:
`ext_popupmenu` Externalize the popupmenu. |ui-popupmenu|
`ext_tabline` Externalize the tabline. |ui-tabline|
`ext_cmdline` Externalize the cmdline. |ui-cmdline|
+ `ext_wildmenu` Externalize the wildmenu. |ui-ext-wildmenu|
Nvim will then send msgpack-rpc notifications, with the method name "redraw"
and a single argument, an array of screen update events.
@@ -201,21 +202,21 @@ Popupmenu Events *ui-popupmenu*
Only sent if `ext_popupmenu` option is set in |ui-options|
["popupmenu_show", items, selected, row, col]
- `items` is an array of the items to show, the
- items are themselves arrays of the form [word, kind, menu, info]
- as defined at |complete-items|, except that `word` is replaced by
- `abbr` if present. `selected` is the initially selected item, either a
- zero-based index into the array of items, or -1 if no item is
- selected. `row` and `col` is the anchor position, where the first
- character of the completed word will be.
+ Show |popupmenu-completion|. `items` is an array of completion items
+ to show; each item is an array of the form [word, kind, menu, info] as
+ defined at |complete-items|, except that `word` is replaced by `abbr`
+ if present. `selected` is the initially-selected item, a zero-based
+ index into the array of items (-1 if no item is selected). `row` and
+ `col` give the anchor position, where the first character of the
+ completed word will be.
["popupmenu_select", selected]
- An item in the currently displayed popupmenu is selected. `selected`
- is either a zero-based index into the array of items from the last
- `popupmenu_show` event, or -1 if no item is selected.
+ Select an item in the current popupmenu. `selected` is a zero-based
+ index into the array of items from the last popupmenu_show event, or
+ -1 if no item is selected.
["popupmenu_hide"]
- The popupmenu is hidden.
+ Hide the popupmenu.
==============================================================================
Tabline Events *ui-tabline*
@@ -237,7 +238,7 @@ Only sent if `ext_cmdline` option is set in |ui-options|
content: List of [attrs, string]
[[{}, "t"], [attrs, "est"], ...]
- Triggered when the user types in the cmdline.
+ Triggered when the cmdline is displayed or changed.
The `content` is the full content that should be displayed in the
cmdline, and the `pos` is the position of the cursor that in the
cmdline. The content is divided into chunks with different highlight
@@ -265,7 +266,7 @@ Only sent if `ext_cmdline` option is set in |ui-options|
`shift` is true the text after the cursor should be shifted, otherwise
it should overwrite the char at the cursor.
- Should be hidden at next cmdline_pos.
+ Should be hidden at next cmdline_show.
["cmdline_hide"]
Hide the cmdline.
@@ -287,4 +288,21 @@ Only sent if `ext_cmdline` option is set in |ui-options|
Hide the block.
==============================================================================
+Wildmenu Events *ui-wildmenu*
+
+Only sent if `ext_wildmenu` option is set in |ui-options|
+
+["wildmenu_show", items]
+ Activate the wildmenu (command-line completion). `items` is an array
+ with the completion items.
+
+["wildmenu_select", selected]
+ Select an item in the current wildmenu. `selected` is a zero-based
+ index into the array of items from the last wildmenu_show event, or -1
+ if no item is selected.
+
+["wildmenu_hide"]
+ Hide the wildmenu.
+
+==============================================================================
vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/usr_02.txt b/runtime/doc/usr_02.txt
index b738cdc48b..a1e3d606ec 100644
--- a/runtime/doc/usr_02.txt
+++ b/runtime/doc/usr_02.txt
@@ -543,7 +543,7 @@ Summary: *help-summary* >
8) Ex-commands always start with ":", so to go to the :s command help: >
:help :s
-9) Commands specifically for debugging start with ">". To go to to the help
+9) Commands specifically for debugging start with ">". To go to the help
for the "cont" debug command: >
:help >cont
@@ -652,7 +652,7 @@ Summary: *help-summary* >
22) Autocommand events can be found by their name: >
:help BufWinLeave
< To see all possible events: >
- :help autocommands-events
+ :help autocommand-events
23) Command-line switches always start with "-". So for the help of the -f
command switch of Vim use: >
diff --git a/runtime/doc/usr_03.txt b/runtime/doc/usr_03.txt
index 5a7f0cb0e5..989914687f 100644
--- a/runtime/doc/usr_03.txt
+++ b/runtime/doc/usr_03.txt
@@ -353,7 +353,7 @@ The "?" command works like "/" but searches backwards: >
?word
The "N" command repeats the last search the opposite direction. Thus using
-"N" after a "/" command search backwards, using "N" after "?" searches
+"N" after a "/" command searches backwards, using "N" after "?" searches
forward.
@@ -508,7 +508,7 @@ only if it is at the beginning of a line.
The $ character matches the end of a line. Therefore, "was$" matches the
word was only if it is at the end of a line.
-Let's mark the places where "the" matches in this example line with "x"s:
+Let's mark the places where "/the" matches in this example line with "x"s:
the solder holding one of the chips melted and the ~
xxx xxx xxx
diff --git a/runtime/doc/usr_07.txt b/runtime/doc/usr_07.txt
index 3fc600d977..683c9879a7 100644
--- a/runtime/doc/usr_07.txt
+++ b/runtime/doc/usr_07.txt
@@ -221,7 +221,7 @@ and write the file with ":w". You edit several other files, and then use
":edit one.txt" to come back to "one.txt". If you now use `" Vim jumps to the
last line of the file. Using `. takes you to the position where you deleted
the character. Even when you move around in the file `" and `. will take you
-to the remembered position, at least until you make another change or leave
+to the remembered position. At least until you make another change or leave
the file.
@@ -233,8 +233,8 @@ another file and place marks there, these are specific for that file. Thus
each file has its own set of marks, they are local to the file.
So far we were using marks with a lowercase letter. There are also marks
with an uppercase letter. These are global, they can be used from any file.
-For example suppose that we are editing the file "foo.txt". Go to halfway of
-the file ("50%") and place the F mark there (F for foo): >
+For example suppose that we are editing the file "foo.txt". Go to halfway
+down the file ("50%") and place the F mark there (F for foo): >
50%mF
@@ -355,7 +355,7 @@ a sentence to the f register (f for First): >
"fyas
The "yas" command yanks a sentence like before. It's the "f that tells Vim
-the text should be place in the f register. This must come just before the
+the text should be placed in the f register. This must come just before the
yank command.
Now yank three whole lines to the l register (l for line): >
diff --git a/runtime/doc/usr_08.txt b/runtime/doc/usr_08.txt
index 575921fc4f..ef91bf9c0a 100644
--- a/runtime/doc/usr_08.txt
+++ b/runtime/doc/usr_08.txt
@@ -45,7 +45,7 @@ top one:
+----------------------------------+
What you see here is two windows on the same file. The line with "====" is
-that status line. It displays information about the window above it. (In
+the status line. It displays information about the window above it. (In
practice the status line will be in reverse video.)
The two windows allow you to view two parts of the same file. For example,
you could make the top window show the variable declarations of a program, and
diff --git a/runtime/doc/usr_09.txt b/runtime/doc/usr_09.txt
index 1ff3d93329..f53076a2ec 100644
--- a/runtime/doc/usr_09.txt
+++ b/runtime/doc/usr_09.txt
@@ -21,7 +21,7 @@ Table of contents: |usr_toc.txt|
==============================================================================
*09.1* Parts of the GUI
-You might have an icon on your desktop that starts gVim. Otherwise, one of
+You might have an icon on your desktop that starts gvim. Otherwise, one of
these commands should do it: >
gvim file.txt
@@ -60,7 +60,7 @@ THE WINDOW TITLE
At the very top is the window title. This is drawn by your window system.
Vim will set the title to show the name of the current file. First comes the
name of the file. Then some special characters and the directory of the file
-in parens. These special character can be present:
+in parens. These special characters can be present:
- The file cannot be modified (e.g., a help file)
+ The file contains changes
@@ -180,14 +180,14 @@ currently highlighted. In Vim this is the Visual area (this assumes you are
using the default option settings). You can paste this selection in another
application without any further action.
For example, in this text select a few words with the mouse. Vim will
-switch to Visual mode and highlight the text. Now start another gVim, without
+switch to Visual mode and highlight the text. Now start another gvim, without
a file name argument, so that it displays an empty window. Click the middle
mouse button. The selected text will be inserted.
The "current selection" will only remain valid until some other text is
-selected. After doing the paste in the other gVim, now select some characters
+selected. After doing the paste in the other gvim, now select some characters
in that window. You will notice that the words that were previously selected
-in the other gVim window are displayed differently. This means that it no
+in the other gvim window are displayed differently. This means that it no
longer is the current selection.
You don't need to select text with the mouse, using the keyboard commands for
@@ -200,10 +200,10 @@ Now for the other place with which text can be exchanged. We call this the
"real clipboard", to avoid confusion. Often both the "current selection" and
the "real clipboard" are called clipboard, you'll have to get used to that.
To put text on the real clipboard, select a few different words in one of
-the gVims you have running. Then use the Edit/Copy menu entry. Now the text
+the gvims you have running. Then use the Edit/Copy menu entry. Now the text
has been copied to the real clipboard. You can't see this, unless you have
-some application that shows the clipboard contents (e.g., KDE's klipper).
- Now select the other gVim, position the cursor somewhere and use the
+some application that shows the clipboard contents (e.g., KDE's Klipper).
+ Now select the other gvim, position the cursor somewhere and use the
Edit/Paste menu. You will see the text from the real clipboard is inserted.
@@ -211,7 +211,7 @@ USING BOTH
This use of both the "current selection" and the "real clipboard" might sound
a bit confusing. But it is very useful. Let's show this with an example.
-Use one gVim with a text file and perform these actions:
+Use one gvim with a text file and perform these actions:
- Select two words in Visual mode.
- Use the Edit/Copy menu to get these words onto the clipboard.
diff --git a/runtime/doc/usr_12.txt b/runtime/doc/usr_12.txt
index 9078f4748a..e87ed81c97 100644
--- a/runtime/doc/usr_12.txt
+++ b/runtime/doc/usr_12.txt
@@ -278,7 +278,7 @@ command: >
The line range "%" is used, thus this works on the whole file. The pattern
that the ":substitute" command matches with is "\s\+$". This finds white
space characters (\s), 1 or more of them (\+), before the end-of-line ($).
-Later will be explained how you write patterns like this |usr_27.txt|.
+Later will be explained how you write patterns like this, see |usr_27.txt|.
The "to" part of the substitute command is empty: "//". Thus it replaces
with nothing, effectively deleting the matched white space.
diff --git a/runtime/doc/usr_41.txt b/runtime/doc/usr_41.txt
index acb6fd0fa4..51d8143440 100644
--- a/runtime/doc/usr_41.txt
+++ b/runtime/doc/usr_41.txt
@@ -95,7 +95,7 @@ Then there is the ":let i += 1" command. This does the same thing as
to the same variable.
The example was given to explain the commands, but would you really want to
-make such a loop it can be written much more compact: >
+make such a loop, it can be written much more compact: >
:for i in range(1, 4)
: echo "count is" i
@@ -692,6 +692,7 @@ Other computation: *bitwise-function*
Variables: *var-functions*
type() type of a variable
islocked() check if a variable is locked
+ funcref() get a Funcref for a function reference
function() get a Funcref for a function name
getbufvar() get a variable value from a specific buffer
setbufvar() set a variable in a specific buffer
@@ -883,9 +884,11 @@ GUI: *gui-functions*
getfontname() get name of current font being used
getwinposx() X position of the GUI Vim window
getwinposy() Y position of the GUI Vim window
+ balloon_show() set the balloon content
Vim server: *server-functions*
serverlist() return the list of server names
+ remote_startserver() run a server
remote_send() send command characters to a Vim server
remote_expr() evaluate an expression in a Vim server
server2client() send a reply to a client of a Vim server
@@ -1541,7 +1544,7 @@ WHITE SPACE
Blank lines are allowed and ignored.
Leading whitespace characters (blanks and TABs) are always ignored. The
-whitespaces between parameters (e.g. between the 'set' and the 'cpoptions' in
+whitespaces between parameters (e.g. between the "set" and the "cpoptions" in
the example below) are reduced to one blank character and plays the role of a
separator, the whitespaces after the last (visible) character may or may not
be ignored depending on the situation, see below.
@@ -2224,8 +2227,8 @@ plugin for the mail filetype: >
endif
Two global variables are used:
-no_plugin_maps disables mappings for all filetype plugins
-no_mail_maps disables mappings for a specific filetype
+|no_plugin_maps| disables mappings for all filetype plugins
+|no_mail_maps| disables mappings for the "mail" filetype
USER COMMANDS
diff --git a/runtime/doc/usr_44.txt b/runtime/doc/usr_44.txt
index fcd6b71219..b06557b950 100644
--- a/runtime/doc/usr_44.txt
+++ b/runtime/doc/usr_44.txt
@@ -686,7 +686,7 @@ that included files do this too, you might have to reset "b:current_syntax" if
you include two files.
If you want your syntax file to work with Vim 5.x, add a check for v:version.
-See yacc.vim for an example.
+Find an syntax file in the Vim 7.2 distribution for an example.
Do not include anything that is a user preference. Don't set 'tabstop',
'expandtab', etc. These belong in a filetype plugin.
diff --git a/runtime/doc/various.txt b/runtime/doc/various.txt
index 9150f3a809..baac72c106 100644
--- a/runtime/doc/various.txt
+++ b/runtime/doc/various.txt
@@ -102,8 +102,7 @@ g8 Print the hex values of the bytes used in the
*:nu* *:number*
:[range]nu[mber] [count] [flags]
Same as :print, but precede each line with its line
- number. (See also 'highlight' and 'numberwidth'
- option).
+ number. (See also |hl-LineNr| and 'numberwidth').
See |ex-flags| for [flags].
*:#*
@@ -325,7 +324,7 @@ N *+cindent* |'cindent'|, C indenting
N *+clientserver* Unix and Win32: Remote invocation |clientserver|
*+clipboard* |clipboard| support
N *+cmdline_compl* command line completion |cmdline-completion|
-N *+cmdline_hist* command line history |cmdline-history|
+S *+cmdline_hist* command line history |cmdline-history|
N *+cmdline_info* |'showcmd'| and |'ruler'|
N *+comments* |'comments'| support
B *+conceal* "conceal" support, see |conceal| |:syn-conceal| etc.
@@ -348,7 +347,7 @@ N *+gettext* message translations |multi-lang|
*+iconv* Compiled with the |iconv()| function
*+iconv/dyn* Likewise |iconv-dynamic| |/dyn|
N *+insert_expand* |insert_expand| Insert mode completion
-N *+jumplist* |jumplist|
+S *+jumplist* |jumplist|
B *+keymap* |'keymap'|
N *+lambda* |lambda| and |closure|
B *+langmap* |'langmap'|
@@ -397,14 +396,14 @@ N *+timers* the |timer_start()| function
N *+title* Setting the window 'title' and 'icon'
N *+toolbar* |gui-toolbar|
N *+user_commands* User-defined commands. |user-commands|
-N *+vertsplit* Vertically split windows |:vsplit|
+ *+vertsplit* Vertically split windows |:vsplit|
N *+virtualedit* |'virtualedit'|
S *+visual* Visual mode |Visual-mode| Always enabled since 7.4.200.
N *+visualextra* extra Visual mode commands |blockwise-operators|
N *+vreplace* |gR| and |gr|
N *+wildignore* |'wildignore'|
N *+wildmenu* |'wildmenu'|
-S *+windows* more than one window
+ *+windows* more than one window
m *+writebackup* |'writebackup'| is default on
m *+xim* X input method |xim|
*+xfontset* X fontset support |xfontset|
diff --git a/runtime/doc/vim_diff.txt b/runtime/doc/vim_diff.txt
index c92fcd8994..026ff6a0fb 100644
--- a/runtime/doc/vim_diff.txt
+++ b/runtime/doc/vim_diff.txt
@@ -60,14 +60,17 @@ a complete and centralized reference of those differences.
MAJOR COMPONENTS ~
-Embedded terminal emulator |terminal|
-RPC API |RPC|
-Shared data |shada|
-XDG base directories |xdg|
+API |API|
+Lua scripting |lua|
Job control |job-control|
Remote plugins |remote-plugin|
-Python plugins |provider-python|
-Clipboard integration |provider-clipboard|
+Providers
+ Clipboard |provider-clipboard|
+ Python plugins |provider-python|
+ Ruby plugins |provider-ruby|
+Shared data |shada|
+Embedded terminal |terminal|
+XDG base directories |xdg|
USER EXPERIENCE ~
@@ -87,6 +90,16 @@ Working intuitively and consistently is a major goal of Nvim.
- Vim's internal test functions (test_autochdir(), test_settime(), etc.) are
not exposed (nor implemented); instead Nvim has a robust API.
+- Behaviors, options, documentation are removed if they cost users more time
+ than they save.
+
+Usability details have been improved where the benefit outweighs any
+backwards-compatibility cost. Some examples:
+
+- |K| in help documents can be used like |CTRL-]|.
+- Directories for 'directory' and 'undodir' are auto-created.
+- Terminal features such as 'guicursor' are enabled where possible.
+
ARCHITECTURE ~
External plugins run in separate processes. |remote-plugin| This improves
@@ -130,6 +143,7 @@ Commands:
|:checkhealth|
|:drop| is available on all platforms
|:Man| is available by default, with many improvements such as completion
+ |:tchdir| tab-local |current-directory|
Functions:
|dictwatcheradd()| notifies a callback whenever a |Dict| is modified
@@ -145,6 +159,7 @@ Events:
|TextYankPost|
Highlight groups:
+ |hl-NormalNC| highlights non-current windows
|hl-QuickFixLine|
|hl-Substitute|
|hl-TermCursor|
@@ -284,6 +299,8 @@ Highlight groups:
|hl-ColorColumn|, |hl-CursorColumn| are lower priority than most other
groups
+The variable name "count" is no fallback for |v:count| anymore.
+
==============================================================================
5. Missing legacy features *nvim-features-missing*
@@ -363,7 +380,7 @@ Other options:
'esckeys'
'guioptions' "t" flag was removed
*'guipty'* (Nvim uses pipes and PTYs consistently on all platforms.)
- 'highlight' (the builtin |highlight-groups| cannot be changed)
+ 'highlight' (Names of builtin |highlight-groups| cannot be changed.)
*'imactivatefunc'* *'imaf'*
*'imactivatekey'* *'imak'*
*'imstatusfunc'* *'imsf'*
diff --git a/runtime/doc/visual.txt b/runtime/doc/visual.txt
index 6c4d44edb6..176ce562d8 100644
--- a/runtime/doc/visual.txt
+++ b/runtime/doc/visual.txt
@@ -25,8 +25,7 @@ Using Visual mode consists of three parts:
3. Type an operator command.
The highlighted characters will be operated upon.
-The 'highlight' option can be used to set the display mode to use for
-highlighting in Visual mode.
+The |hl-Visual| group determines the highlighting of the visual selection.
The 'virtualedit' option can be used to allow positioning the cursor to
positions where there is no actual character.
diff --git a/runtime/doc/windows.txt b/runtime/doc/windows.txt
index c37362a497..e83377471c 100644
--- a/runtime/doc/windows.txt
+++ b/runtime/doc/windows.txt
@@ -106,18 +106,10 @@ This option can be local to the window, so that you can have a different
status line in each window.
Normally, inversion is used to display the status line. This can be changed
-with the 's' character in the 'highlight' option. For example, "sb" sets it to
-bold characters. If no highlighting is used for the status line ("sn"), the
-'^' character is used for the current window, and '=' for other windows. If
-the mouse is supported and enabled with the 'mouse' option, a status line can
-be dragged to resize windows.
-
-Note: If you expect your status line to be in reverse video and it isn't,
-check if the 'highlight' option contains "si". In version 3.0, this meant to
-invert the status line. Now it should be "sr", reverse the status line, as
-"si" now stands for italic! If italic is not available on your terminal, the
-status line is inverted anyway; you will only see this problem on terminals
-that have |terminfo| capabilities for italics.
+with the |hl-StatusLine| highlight group. If no highlighting is used for the
+status line, the '^' character is used for the current window, and '=' for
+other windows. If 'mouse' is enabled, a status line can be dragged to resize
+windows.
==============================================================================
3. Opening and closing a window *opening-window* *E36*
@@ -319,8 +311,9 @@ CTRL-W CTRL-C *CTRL-W_CTRL-C*
*:hide*
:hid[e]
:{count}hid[e]
- Quit the current window, unless it is the last window on the
- screen. For {count} see |:quit|.
+ Without {count}: Quit the current window, unless it is the
+ last window on the screen.
+ If {count} is given quit the {count} window.
The buffer becomes hidden (unless there is another window
editing it or 'bufhidden' is `unload`, `delete` or `wipe`).
@@ -594,7 +587,8 @@ The minimal height and width of a window is set with 'winminheight' and
41. :buffers list of buffers
The meaning of [N] depends on the command:
- [N] is number of buffers to go forward/backward on ?2, ?3, and ?4
+ [N] is the number of buffers to go forward/backward on 2/12/22/32,
+ 3/13/23/33, and 4/14/24/34
[N] is an argument number, defaulting to current argument, for 1 and 21
[N] is a buffer number, defaulting to current buffer, for 11 and 31
[N] is a count for 19 and 39
@@ -1002,6 +996,9 @@ list of buffers. |unlisted-buffer|
displayed in a window |hidden-buffer|
- a buffer with 'modifiable' off
= a readonly buffer
+ R a terminal buffer with a running job
+ F a terminal buffer with a finished job
+ ? a terminal buffer without a job: `:terminal NONE`
+ a modified buffer
x a buffer with read errors
@@ -1246,6 +1243,9 @@ help Contains a help file. Will only be created with the |:help|
and can't be changed. The 'buflisted' option will be reset
for a help buffer.
+terminal A terminal window buffer, see |terminal|. The contents cannot
+ be read or changed until the job ends.
+
directory Displays directory contents. Can be used by a file explorer
plugin. The buffer is created with these settings: >
:setlocal buftype=nowrite