aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile4
-rw-r--r--man/nvim.137
-rw-r--r--runtime/CMakeLists.txt6
-rw-r--r--runtime/doc/api.txt39
-rw-r--r--runtime/doc/autocmd.txt4
-rw-r--r--runtime/doc/cmdline.txt2
-rw-r--r--runtime/doc/debug.txt8
-rw-r--r--runtime/doc/deprecated.txt5
-rw-r--r--runtime/doc/eval.txt4
-rw-r--r--runtime/doc/help.txt3
-rw-r--r--runtime/doc/if_lua.txt5
-rw-r--r--runtime/doc/index.txt1
-rw-r--r--runtime/doc/intro.txt157
-rw-r--r--runtime/doc/options.txt8
-rw-r--r--runtime/doc/pi_msgpack.txt2
-rw-r--r--runtime/doc/remote.txt5
-rw-r--r--runtime/doc/sign.txt1
-rw-r--r--runtime/doc/sponsor.txt216
-rw-r--r--runtime/doc/ui.txt2
-rw-r--r--runtime/doc/usr_01.txt6
-rw-r--r--runtime/doc/usr_05.txt2
-rw-r--r--runtime/doc/usr_45.txt3
-rw-r--r--runtime/doc/various.txt2
-rw-r--r--runtime/plugin/README.txt19
-rw-r--r--runtime/plugin/rrhelper.vim48
-rwxr-xr-xscripts/vim-patch.sh4
-rw-r--r--src/nvim/api/buffer.c20
-rw-r--r--src/nvim/api/vim.c2
28 files changed, 142 insertions, 473 deletions
diff --git a/Makefile b/Makefile
index a741c564e2..717cf2f68d 100644
--- a/Makefile
+++ b/Makefile
@@ -103,6 +103,10 @@ endif
helptags: | nvim
+$(BUILD_CMD) -C build helptags
+# Builds help HTML _and_ checks for invalid help tags.
+helphtml: | nvim helptags
+ +$(BUILD_CMD) -C build doc_html
+
functionaltest: | nvim
+$(BUILD_CMD) -C build functionaltest
diff --git a/man/nvim.1 b/man/nvim.1
index cfaa3ef3aa..2621036e26 100644
--- a/man/nvim.1
+++ b/man/nvim.1
@@ -20,10 +20,21 @@
.Sh DESCRIPTION
.Nm
is a text editor based on Vim.
-Commands in this program start with colon
+Start
+.Nm
+followed by any number of options and/or files:
+.Pp
+.Dl nvim [options] [filelist]
+.Pp
+Commands in
+.Nm
+begin with colon
.Pq Sq \&: .
-Use the :help command to get help, for example ":help quickref"
-is a condensed overview of almost all commands.
+Type ":help subject" to get help on a specific subject.
+Use <Tab> and CTRL-D to complete subjects (":help cmdline\-completion").
+.Pp
+The "quickref" help section is a condensed reference of editor features:
+.Dl :help quickref
.Pp
If you are new to Vim/Nvim, start with the 30-minute tutorial:
.Dl :Tutor
@@ -34,28 +45,25 @@ After installing/updating Nvim, it's a good idea to run the self-check:
.Bl -tag -width Fl
.It Ar file ...
File(s) to edit.
-If none are specified, open an empty buffer.
-If multiple files are specified, open one buffer for each file.
+Opens one buffer per file.
To switch between buffers, use the
.Ic :next
and
.Ic :previous
commands.
.It Fl
-Read text from standard input until
+Reads text from standard input until
.Dv EOF ,
-then open a buffer with that text.
+then opens a buffer with that text.
User input is read from standard error, which should be a terminal.
+.Sh OPTIONS
+.Bl -tag -width Fl
.It Fl t Ar tag
-The file to edit and the initial cursor position depends on a
-tag, a sort of goto label.
+Finds
.Ar tag
-is looked up in the tags file, the associated file becomes the current
+in the tags file, the associated file becomes the current
file and the associated command is executed.
-If
-.Ar tag
-is a function name, the file containing that function is opened
-with the cursor positioned at the start of the function.
+Cursor is positioned at the tag location in the file.
.Ic ":help tag-commands"
.It Fl q Op Ar errorfile
QuickFix mode.
@@ -69,7 +77,6 @@ Further errors can be jumped to with the
.Ic :cnext
command.
.Ic ":help quickfix"
-.It There are a number of other options:
.It Fl -
End of options.
Remaining arguments are treated as literal file names, including filenames starting with hyphen
diff --git a/runtime/CMakeLists.txt b/runtime/CMakeLists.txt
index 70e4ca2eec..ad706af087 100644
--- a/runtime/CMakeLists.txt
+++ b/runtime/CMakeLists.txt
@@ -68,9 +68,9 @@ foreach(DF ${DOCFILES})
endforeach()
add_custom_target(helptags
- COMMAND ${CMAKE_COMMAND} -E remove ${GENERATED_RUNTIME_DIR}/doc/*
+ COMMAND ${CMAKE_COMMAND} -E remove doc/*
COMMAND ${CMAKE_COMMAND} -E copy_directory
- ${PROJECT_SOURCE_DIR}/runtime/doc ${GENERATED_RUNTIME_DIR}/doc
+ ${PROJECT_SOURCE_DIR}/runtime/doc doc
COMMAND "${PROJECT_BINARY_DIR}/bin/nvim"
-u NONE -i NONE -e --headless -c "helptags ++t doc" -c quit
DEPENDS
@@ -87,7 +87,7 @@ add_custom_command(OUTPUT ${GENERATED_HELP_TAGS}
add_custom_target(doc_html
COMMAND make html
DEPENDS
- ${GENERATED_HELP_TAGS}
+ helptags
WORKING_DIRECTORY "${GENERATED_RUNTIME_DIR}/doc"
)
diff --git a/runtime/doc/api.txt b/runtime/doc/api.txt
index e816d0ae76..e16b6b7e75 100644
--- a/runtime/doc/api.txt
+++ b/runtime/doc/api.txt
@@ -97,7 +97,7 @@ nvim_buf_lines_event[{buf}, {changedtick}, {firstline}, {lastline}, {linedata},
When {changedtick} is |v:null| this means the screen lines (display) changed
but not the buffer contents. {linedata} contains the changed screen lines.
- This happens when |inccommand| shows a buffer preview.
+ This happens when 'inccommand' shows a buffer preview.
Properties:~
{buf} API buffer handle (buffer number)
@@ -138,7 +138,7 @@ nvim_buf_changedtick_event[{buf}, {changedtick}] *nvim_buf_changedtick_event*
nvim_buf_detach_event[{buf}] *nvim_buf_detach_event*
When buffer is detached (i.e. updates are disabled). Triggered explicitly by
- |nvim_buf_detach| or implicitly in these cases:
+ |nvim_buf_detach()| or implicitly in these cases:
- Buffer was |abandon|ed and 'hidden' is not set.
- Buffer was reloaded, e.g. with |:edit| or an external change triggered
|:checktime| or 'autoread'.
@@ -638,7 +638,7 @@ nvim_set_client_info({name}, {version}, {type}, {methods},
Clients might define their own keys, but the
following are suggested: "website" Website
of client (for instance github repository)
- "license" Informal descripton of the
+ "license" Informal description of the
license, such as "Apache 2", "GPLv3" or
"MIT" "logo" URI or path to image,
preferably small logo or icon. .png or .svg
@@ -862,8 +862,7 @@ nvim_buf_line_count({buffer}) *nvim_buf_line_count()*
{buffer} Buffer handle
Return: ~
- Line count, or `0` if the buffer has been unloaded (see
- |api-buffer|).
+ Line count, or 0 for unloaded buffer. |api-buffer|
nvim_buf_attach({buffer}, {send_buffer}, {opts}) *nvim_buf_attach()*
Activate updates from this buffer to the current channel.
@@ -912,8 +911,7 @@ nvim_buf_get_lines({buffer}, {start}, {end}, {strict_indexing})
error.
Return: ~
- Array of lines. If the buffer has been unloaded then an
- empty array will be returned instead. (See |api-buffer|.)
+ Array of lines, or empty array for unloaded buffer.
*nvim_buf_set_lines()*
nvim_buf_set_lines({buffer}, {start}, {end}, {strict_indexing},
@@ -940,6 +938,25 @@ nvim_buf_set_lines({buffer}, {start}, {end}, {strict_indexing},
error.
{replacement} Array of lines to use as replacement
+nvim_buf_get_offset({buffer}, {index}) *nvim_buf_get_offset()*
+ Returns the byte offset for a line.
+
+ Line 1 (index=0) has offset 0. UTF-8 bytes are counted. EOL is
+ one byte. 'fileformat' and 'fileencoding' are ignored. The
+ line index just after the last line gives the total byte-count
+ of the buffer. A final EOL byte is counted if it would be
+ written, see 'eol'.
+
+ Unlike |line2byte()|, throws error for out-of-bounds indexing.
+ Returns -1 for unloaded buffer.
+
+ Parameters: ~
+ {buffer} Buffer handle
+ {index} Line index
+
+ Return: ~
+ Integer byte offset, or -1 for unloaded buffer.
+
nvim_buf_get_var({buffer}, {name}) *nvim_buf_get_var()*
Gets a buffer-scoped (b:) variable.
@@ -1106,8 +1123,8 @@ nvim_buf_add_highlight({buffer}, {src_id}, {hl_group}, {line},
*nvim_buf_clear_highlight()*
nvim_buf_clear_highlight({buffer}, {src_id}, {line_start}, {line_end})
- Clears highlights from a given source group and a range of
- lines
+ Clears highlights and virtual text from a given source id and
+ range of lines
To clear a source group in the entire buffer, pass in 0 and -1
to line_start and line_end respectively.
@@ -1132,6 +1149,10 @@ nvim_buf_set_virtual_text({buffer}, {src_id}, {line}, {chunks},
the right of the ordinary text, this will contain the |lcs-
eol| char if set, otherwise just be a space.
+ The same src_id can be used for both virtual text and
+ highlights added by nvim_buf_add_highlight. Virtual text is
+ cleared using nvim_buf_clear_highlight.
+
Parameters: ~
{buffer} Buffer handle
{src_id} Source group to use or 0 to use a new group, or
diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt
index 75a26bf614..a2772e2485 100644
--- a/runtime/doc/autocmd.txt
+++ b/runtime/doc/autocmd.txt
@@ -278,7 +278,7 @@ Name triggered by ~
|VimEnter| after doing all the startup stuff
|GUIEnter| after starting the GUI successfully
|GUIFailed| after starting the GUI failed
-|TermResponse| after the terminal response to |t_RV| is received
+|TermResponse| after the terminal response to t_RV is received
|QuitPre| when using `:quit`, before deciding whether to exit
|ExitPre| when using a command that may make Vim exit
|VimLeavePre| before exiting Nvim, before writing the shada file
@@ -989,7 +989,7 @@ TermClose When a |terminal| job ends.
TermOpen When a |terminal| job is starting. Can be
used to configure the terminal buffer.
*TermResponse*
-TermResponse After the response to |t_RV| is received from
+TermResponse After the response to t_RV is received from
the terminal. The value of |v:termresponse|
can be used to do things depending on the
terminal version. Note that this event may be
diff --git a/runtime/doc/cmdline.txt b/runtime/doc/cmdline.txt
index d4f8d170ef..3f22fcb504 100644
--- a/runtime/doc/cmdline.txt
+++ b/runtime/doc/cmdline.txt
@@ -212,7 +212,7 @@ CTRL-\ e {expr} *c_CTRL-\_e*
*c_CTRL-Y*
CTRL-Y When there is a modeless selection, copy the selection into
- the clipboard. |modeless-selection|
+ the clipboard.
If there is no selection CTRL-Y is inserted as a character.
CTRL-M or CTRL-J *c_CTRL-M* *c_CTRL-J* *c_<NL>* *c_<CR>* *c_CR*
diff --git a/runtime/doc/debug.txt b/runtime/doc/debug.txt
index 441d31c7b9..835b35b388 100644
--- a/runtime/doc/debug.txt
+++ b/runtime/doc/debug.txt
@@ -162,12 +162,8 @@ In WinDbg: choose Open Crash Dump on the File menu. Follow the instructions in
*get-ms-debuggers*
3.5 Obtaining Microsoft Debugging Tools ~
-The Debugging Tools for Windows (including WinDbg) can be downloaded from
- http://www.microsoft.com/whdc/devtools/debugging/default.mspx
-This includes the WinDbg debugger.
-
-Visual C++ 2005 Express Edition can be downloaded for free from:
- http://msdn.microsoft.com/vstudio/express/visualC/default.aspx
+Visual Studio 2017 Community Edition can be downloaded for free from:
+ https://visualstudio.microsoft.com/downloads/
=========================================================================
vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/deprecated.txt b/runtime/doc/deprecated.txt
index 7c98b81867..92a6bd6b4f 100644
--- a/runtime/doc/deprecated.txt
+++ b/runtime/doc/deprecated.txt
@@ -42,10 +42,11 @@ Functions ~
*last_buffer_nr()* Obsolete name for bufnr("$").
Modifiers ~
+*cpo-<*
*:menu-<special>*
-*:menu-special* <> notation is always enabled. |cpo-<|
+*:menu-special* <> notation is always enabled.
*:map-<special>*
-*:map-special* <> notation is always enabled. |cpo-<|
+*:map-special* <> notation is always enabled.
Normal commands ~
*]f*
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index f03189485c..91986a9442 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -2925,7 +2925,7 @@ confirm({msg} [, {choices} [, {default} [, {type}]]])
made. It returns the number of the choice. For the first
choice this is 1.
- {msg} is displayed in a |dialog| with {choices} as the
+ {msg} is displayed in a dialog with {choices} as the
alternatives. When {choices} is missing or empty, "&OK" is
used (and translated).
{msg} is a String, use '\n' to include a newline. Only on
@@ -8560,7 +8560,7 @@ tag_old_static Compiled with support for old static tags
|tag-old-static|.
tag_any_white Compiled with support for any white characters in tags
files |tag-any-white|.
-termresponse Compiled with support for |t_RV| and |v:termresponse|.
+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'|.
diff --git a/runtime/doc/help.txt b/runtime/doc/help.txt
index 976402c915..c2ad25aeda 100644
--- a/runtime/doc/help.txt
+++ b/runtime/doc/help.txt
@@ -160,6 +160,9 @@ Versions ~
*standard-plugin-list*
Standard plugins ~
|pi_gzip.txt| Reading and writing compressed files
+|pi_health.txt| Healthcheck framework
+|pi_matchit.txt| Extended "%" matching
+|pi_msgpack.txt| msgpack utilities
|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
diff --git a/runtime/doc/if_lua.txt b/runtime/doc/if_lua.txt
index 17c1a8a329..9dbbf87995 100644
--- a/runtime/doc/if_lua.txt
+++ b/runtime/doc/if_lua.txt
@@ -229,8 +229,7 @@ shared between command calls. All Lua default libraries are available. In
addition, Lua "print" function has its output redirected to the Nvim message
area, with arguments separated by a white space instead of a tab.
-Lua uses the "vim" module (see |lua-vim|) to issue commands to Nvim
-and manage buffers (|lua-buffer|) and windows (|lua-window|). However,
+Lua uses the "vim" module (see |lua-vim|) to issue commands to Nvim. However,
procedures that alter buffer content, open new buffers, and change cursor
position are restricted when the command is executed in the |sandbox|.
@@ -261,7 +260,7 @@ vim.stricmp(a, b) *lua-vim.stricmp*
greater then b or a is lesser then b respectively.
vim.type_idx *lua-vim.type_idx*
- Type index for use in |lua-special-tables|. Specifying one of the
+ Type index for use in |lua-special-tbl|. Specifying one of the
values from |lua-vim.types| allows typing the empty table (it is
unclear whether empty lua table represents empty list or empty array)
and forcing integral numbers to be |Float|. See |lua-special-tbl| for
diff --git a/runtime/doc/index.txt b/runtime/doc/index.txt
index ed3f9a1776..7024a57333 100644
--- a/runtime/doc/index.txt
+++ b/runtime/doc/index.txt
@@ -1472,7 +1472,6 @@ tag command action ~
|:sfind| :sf[ind] split current window and edit file in 'path'
|:sfirst| :sfir[st] split window and go to first file in the
argument list
-|:simalt| :sim[alt] Win32 GUI: simulate Windows ALT key
|:sign| :sig[n] manipulate signs
|:silent| :sil[ent] run a command silently
|:sleep| :sl[eep] do nothing for a few seconds
diff --git a/runtime/doc/intro.txt b/runtime/doc/intro.txt
index bf2e86ae46..b74079e74e 100644
--- a/runtime/doc/intro.txt
+++ b/runtime/doc/intro.txt
@@ -1,7 +1,7 @@
*intro.txt* Nvim
- VIM REFERENCE MANUAL by Bram Moolenaar
+ NVIM REFERENCE MANUAL
Introduction to Vim *ref* *reference*
@@ -9,7 +9,7 @@ Introduction to Vim *ref* *reference*
Type |gO| to see the table of contents.
==============================================================================
-1. Introduction *intro*
+Introduction *intro*
Vim stands for Vi IMproved. It used to be Vi IMitation, but there are so many
improvements that a name change was appropriate. Vim is a text editor which
@@ -28,8 +28,8 @@ is not located in the default place. You can jump to subjects like with tags:
Use CTRL-] to jump to a subject under the cursor, use CTRL-T to jump back.
*pronounce*
-Vim is pronounced as one word, like Jim, not vi-ai-em. It's written with a
-capital, since it's a name, again like Jim.
+Vim is pronounced as one word, like Jim. Nvim is pronounced as N-vim, or,
+continuing with the Jim simile, N-Jim, which sounds like Ninja.
This manual is a reference for all the Vim commands and options. This is not
an introduction to the use of Vi or Vim, it gets a bit complicated here and
@@ -37,134 +37,67 @@ there. For beginners, there is a hands-on |tutor|. To learn using Vim, read
the user manual |usr_toc.txt|.
*book*
-There are many books on Vi that contain a section for beginners. There are
-two books I can recommend:
+There are many books on Vi and Vim. We recommend these books:
- "Vim - Vi Improved" by Steve Oualline
+ "Practical Vim" by Drew Neil
+ "Modern Vim" by Drew Neil
+ https://vimcasts.org/publications/
-This is the very first book completely dedicated to Vim. It is very good for
-beginners. The most often used commands are explained with pictures and
-examples. The less often used commands are also explained, the more advanced
-features are summarized. There is a comprehensive index and a quick
-reference. Parts of this book have been included in the user manual
-|frombook|.
-Published by New Riders Publishing. ISBN: 0735710015
-For more information try one of these:
- http://iccf-holland.org/click5.html
- http://www.vim.org/iccf/click5.html
+"Practical Vim" is a popular because of its focus on quickly learning common
+editing tasks with Vim. "Modern Vim" explores new features introduced by Nvim
+and Vim 8.
- "Learning the Vi editor" by Linda Lamb and Arnold Robbins
+ "Vim - Vi Improved" by Steve Oualline
-This is a book about Vi that includes a chapter on Vim (in the sixth edition).
-The first steps in Vi are explained very well. The commands that Vim adds are
-only briefly mentioned. There is also a German translation.
-Published by O'Reilly. ISBN: 1-56592-426-6.
+This is the first book dedicated to Vim. Parts of it were included in the
+user manual. |frombook| ISBN: 0735710015
+For more information try one of these:
+ https://iccf-holland.org/click5.html
+ https://www.vim.org/iccf/click5.html
==============================================================================
-2. Vim on the internet *internet*
+Nvim on the interwebs *internet*
*www* *WWW* *faq* *FAQ* *distribution* *download*
-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/
- Downloading: ftp://ftp.vim.org/pub/vim/MIRRORS
-
-
-Usenet News group where Vim is discussed: *news* *usenet*
- comp.editors
-This group is also for other editors. If you write about Vim, don't forget to
-mention that.
-
- *mail-list* *maillist*
-There are several mailing lists for Vim:
-<vim@vim.org> *vim-use* *vim_use*
- For discussions about using existing versions of Vim: Useful mappings,
- questions, answers, where to get a specific version, etc. There are
- quite a few people watching this list and answering questions, also
- for beginners. Don't hesitate to ask your question here.
-<vim-dev@vim.org> *vim-dev* *vim_dev* *vimdev*
- For discussions about changing Vim: New features, porting, patches,
- beta-test versions, etc.
-<vim-announce@vim.org> *vim-announce* *vim_announce*
- Announcements about new versions of Vim; also for beta-test versions
- and ports to different systems. This is a read-only list.
-<vim-mac@vim.org> *vim-mac* *vim_mac*
- For discussions about using and improving the Macintosh version of
- Vim.
-
-See http://www.vim.org/maillist.php for the latest information.
-
-NOTE:
-- You can only send messages to these lists if you have subscribed!
-- You need to send the messages from the same location as where you subscribed
- from (to avoid spam mail).
-- Maximum message size is 40000 characters.
-
- *subscribe-maillist*
-If you want to join, send a message to
- <vim-subscribe@vim.org>
-Make sure that your "From:" address is correct. Then the list server will
-give you help on how to subscribe.
-
- *maillist-archive*
-For more information and archives look on the Vim maillist page:
-http://www.vim.org/maillist.php
+
+ Nvim home page: https://neovim.io/
+ Nvim FAQ: https://github.com/neovim/neovim/wiki/FAQ
+ Downloads: https://github.com/neovim/neovim/releases
+ Vim FAQ: https://vimhelp.appspot.com/vim_faq.txt.html
+ Vim home page: https://www.vim.org/
Bug reports: *bugs* *bug-reports* *bugreport.vim*
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 trigger the bug.
+Be brief, yet complete. Always give a reproducible 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?).
+If Nvim crashes, try to get a backtrace. See |debug.txt|.
-Send me patches if you can!
+==============================================================================
+Sponsor Vim/Nvim development *sponsor* *register*
-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: >
- :so $VIMRUNTIME/bugreport.vim
-This will create a file "bugreport.txt" in the current directory, with a lot
-of information of your environment. Before sending this out, check if it
-doesn't contain any confidential information!
+Fixing bugs and adding new features takes a lot of time and effort. To show
+your appreciation for the work and motivate Bram and others to continue
+working on Vim please send a donation.
-If Vim crashes, please try to find out where. You can find help on this here:
-|debug.txt|.
+Since Bram is back to a paid job the money will now be used to help children
+in Uganda. See |uganda|. But at the same time donations increase Bram's
+motivation to keep working on Vim!
-In case of doubt or when you wonder if the problem has already been fixed but
-you can't find a fix for it, become a member of the vim-dev maillist and ask
-your question there. |maillist|
+For the most recent information about sponsoring look on the Vim web site:
- *year-2000* *Y2K*
-Since Vim internally doesn't use dates for editing, there is no year 2000
-problem to worry about. Vim does use the time in the form of seconds since
-January 1st 1970. It is used for a time-stamp check of the edited file and
-the swap file, which is not critical and should only cause warning messages.
+ https://www.vim.org/sponsor/
-There might be a year 2038 problem, when the seconds don't fit in a 32 bit int
-anymore. This depends on the compiler, libraries and operating system.
-Specifically, time_t and the ctime() function are used. And the time_t is
-stored in four bytes in the swap file. But that's only used for printing a
-file date/time for recovery, it will never affect normal editing.
-The Vim strftime() function directly uses the strftime() system function.
-localtime() uses the time() system function. getftime() uses the time
-returned by the stat() system function. If your system libraries are year
-2000 compliant, Vim is too.
+Neovim development is funded separately from Vim:
-The user may create scripts for Vim that use external commands. These might
-introduce Y2K problems, but those are not really part of Vim itself.
+ https://neovim.io/sponsors/
==============================================================================
-3. Credits *credits* *author* *Bram* *Moolenaar*
+Credits *credits* *author* *Bram* *Moolenaar*
Most of Vim was written by Bram Moolenaar <Bram@vim.org>.
@@ -273,7 +206,7 @@ Elvis Another Vi clone, made by Steve Kirkendall. Very compact but isn't
freely available.
==============================================================================
-4. Notation *notation*
+Notation *notation*
When syntax highlighting is used to read this, text that is not typed
literally is often highlighted with the Special group. These are items in [],
@@ -494,7 +427,7 @@ examples and use them directly. Or type them literally, including the '<' and
":autocmd"!
==============================================================================
-5. Modes, introduction *vim-modes-intro* *vim-modes*
+Modes, introduction *vim-modes-intro* *vim-modes*
Vim has seven BASIC modes:
@@ -579,7 +512,7 @@ Insert Select mode Entered when starting Select mode from Insert mode.
is shown at the bottom of the window.
==============================================================================
-6. Switching from mode to mode *mode-switching*
+Switching from mode to mode *mode-switching*
If for any reason you do not know which mode you are in, you can always get
back to Normal mode by typing <Esc> twice. This doesn't work for Ex mode
@@ -650,7 +583,7 @@ Q or gQ Switch to Ex mode. This is like typing ":" commands
Use the ":vi" command |:visual| to exit this mode.
==============================================================================
-7. The window contents *window-contents*
+The window contents *window-contents*
In Normal mode and Insert/Replace mode the screen window will show the current
contents of the buffer: What You See Is What You Get. There are two
@@ -773,7 +706,7 @@ On most Unix systems, resizing the window is recognized and handled correctly
by Vim.
==============================================================================
-8. Definitions *definitions*
+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
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 7cf3aa1d60..d1e84c5aec 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1485,7 +1485,7 @@ A jump table for the options with a short description can be found at |Q_op|.
global
When 'confirm' is on, certain operations that would normally
fail because of unsaved changes to a buffer, e.g. ":q" and ":e",
- instead raise a |dialog| asking if you wish to save the current
+ instead raise a dialog asking if you wish to save the current
file(s). You can still use a ! to unconditionally |abandon| a buffer.
If 'confirm' is off you can still activate confirmation for one
command only (this is most useful in mappings) with the |:confirm|
@@ -2803,8 +2803,7 @@ A jump table for the options with a short description can be found at |Q_op|.
:set guifont=*
< will bring up a font requester, where you can pick the font you want.
- The font name depends on the GUI used. See |setting-guifont| for a
- way to set 'guifont' for various systems.
+ The font name depends on the GUI used.
For Mac OSX you can use something like this: >
:set guifont=Monaco:h10
@@ -6586,8 +6585,7 @@ A jump table for the options with a short description can be found at |Q_op|.
menu. This conflicts with the use of the ALT key for mappings and
entering special characters. This option tells what to do:
no Don't use ALT keys for menus. ALT key combinations can be
- mapped, but there is no automatic handling. This can then be
- done with the |:simalt| command.
+ mapped, but there is no automatic handling.
yes ALT key handling is done by the windowing system. ALT key
combinations cannot be mapped.
menu Using ALT in combination with a character that is a menu
diff --git a/runtime/doc/pi_msgpack.txt b/runtime/doc/pi_msgpack.txt
index 2484a13878..951b897f55 100644
--- a/runtime/doc/pi_msgpack.txt
+++ b/runtime/doc/pi_msgpack.txt
@@ -1,4 +1,4 @@
-*pi_msgpack.txt* Nvim
+*pi_msgpack.txt* msgpack utilities
Author: Nikolay Pavlov <kp-pav@yandex.ru>
Copyright: (c) 2015 by Nikolay Pavlov
diff --git a/runtime/doc/remote.txt b/runtime/doc/remote.txt
index 142d7b492a..6c2ceb45be 100644
--- a/runtime/doc/remote.txt
+++ b/runtime/doc/remote.txt
@@ -167,11 +167,6 @@ a client and send strings to other instances of Vim on the same X11 display.
When an X11 GUI Vim (gvim) is started, it will try to register a send-server
name on the 'VimRegistry' property on the root window.
-A non GUI Vim with access to the X11 display (|xterm-clipboard| enabled), can
-also act as a command server if a server name is explicitly given with the
---servername argument, or when Vim was build with the |+autoservername|
-feature.
-
An empty --servername argument will cause the command server to be disabled.
To send commands to a Vim server from another application, read the source
diff --git a/runtime/doc/sign.txt b/runtime/doc/sign.txt
index a26c0a3ac9..273d2b984c 100644
--- a/runtime/doc/sign.txt
+++ b/runtime/doc/sign.txt
@@ -79,7 +79,6 @@ DEFINING A SIGN. *:sign-define* *E255* *E160* *E612*
will cause redraw problems.
toolkit supports ~
Win32 .bmp, .ico, .cur
- pixmap (.xpm) |+xpm_w32|
linehl={group}
Highlighting group used for the whole line the sign is placed
diff --git a/runtime/doc/sponsor.txt b/runtime/doc/sponsor.txt
deleted file mode 100644
index cb6bdad358..0000000000
--- a/runtime/doc/sponsor.txt
+++ /dev/null
@@ -1,216 +0,0 @@
-*sponsor.txt* Nvim
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
-
-
-
-SPONSOR VIM DEVELOPMENT *sponsor*
-
-Fixing bugs and adding new features takes a lot of time and effort. To show
-your appreciation for the work and motivate Bram and others to continue
-working on Vim please send a donation.
-
-Since Bram is back to a paid job the money will now be used to help children
-in Uganda. See |uganda|. But at the same time donations increase Bram's
-motivation to keep working on Vim!
-
-For the most recent information about sponsoring look on the Vim web site:
-
- http://www.vim.org/sponsor/
-
-More explanations can be found in the |sponsor-faq|.
-
-
-REGISTERED VIM USER *register*
-
-You can become a registered Vim user by sending at least 10 euro. This works
-similar to sponsoring Vim, see |sponsor| above. Registration was made
-possible for the situation where your boss or bookkeeper may be willing to
-register software, but does not like the terms "sponsoring" and "donation".
-
-More explanations can be found in the |register-faq|.
-
-
-VOTE FOR FEATURES *vote-for-features*
-
-To give registered Vim users and sponsors an advantage over lurkers they can
-vote for the items Bram should work on. How does this voting work?
-
-1. You send at least 10 euro. See below for ways to transfer money
- |send-money|.
-
-2. You will be e-mailed a registration key. Enter this key on your account
- page on the Vim website. You can easily create an account if you don't
- have one yet.
-
-3. You can enter your votes on the voting page. There is a link to that page
- on your account page after entering a registration key. Your votes will
- be counted for two years.
-
-4. The voting results appear on the results page, which is visible for
- everybody: http://www.vim.org/sponsor/vote_results.php
-
-Additionally, once you have sent 100 euro or more in total, your name appears
-in the "Vim hall of honour": http://www.vim.org/sponsor/hall_of_honour.php
-But only if you enable this on your account page.
-
-
-HOW TO SEND MONEY *send-money*
-
-Credit card Through PayPal, see the PayPal site for information:
- https://www.paypal.com/en_US/mrb/pal=XAC62PML3GF8Q
- The e-mail address for sending sponsorship money is:
- donate@vim.org
- The e-mail address for Vim registration is:
- register@vim.org
- Using Euro is preferred, other currencies are also accepted.
- In Euro countries a bank transfer is preferred, this has lower
- costs.
-
-Other methods See |iccf-donations|.
- Include "Vim sponsor" or "Vim registration" in the comment of
- your money transfer. Send me an e-mail that mentions the
- amount you transferred if you want to vote for features and
- show others you are a registered Vim user or sponsor.
-
-Cash Small amounts can be sent with ordinary mail. Put something
- around the money, so that it's not noticeable from the
- outside. Mention your e-mail address if you want to vote for
- features and show others you are a registered Vim user or
- sponsor.
-
-You can use this permanent address:
- Bram Moolenaar
- Finsterruetihof 1
- 8134 Adliswil
- Switzerland
-
-
-
-QUESTIONS AND ANSWERS *sponsor-faq* *register-faq*
-
-Why should I give money?
-
-If you do not show your appreciation for Vim then Bram will be less motivated
-to fix bugs and add new features. He will do something else instead.
-
-
-How much money should I send?
-
-That is up to you. The more you give, the more children will be helped.
-An indication for individuals that use Vim at home: 10 Euro per year. For
-professional use: 30 Euro per year per person. Send at least 10 euro to be
-able to vote for features.
-
-
-What do I get in return?
-
-Each registered Vim user and sponsor who donates at least 10 euro will be able
-to vote for new features. These votes will give priority to the work on Vim.
-The votes are valid for two years. The more money you send the more your
-votes count |votes-counted|.
-
-If you send 100 Euro or more in total you will be mentioned on the "Vim hall
-of honour" page on the Vim web site. But only if you enable this on your
-account page. You can also select whether the amount will be visible.
-
-
-How do I become a Vim sponsor or registered Vim user?
-
-Send money, as explained above |send-money| and include your e-mail address.
-When the money has been received you will receive a unique registration key.
-This key can be used on the Vim website to activate voting on your Vim
-account. You will then get an extra page where you can vote for features and
-choose whether others will be able to see that you donated. There is a link
-to this page on your "My Account" page.
-
-
-What is the difference between sponsoring and registering?
-
-It has a different name. Use the term "registration" if your boss doesn't
-like "sponsoring" or "donation". The benefits are the same.
-
-
-How can I send money?
-
-See |send-money|. Check the web site for the most recent information:
-http://www.vim.org/sponsor/
-
-
-Why don't you use the SourceForge donation system?
-
-SourceForge takes 5% of the donations for themselves. If you want to support
-SourceForge you can send money to them directly.
-
-
-I cannot afford to send money, may I still use Vim?
-
-Yes.
-
-
-I did not register Vim, can I use all available features?
-
-Yes.
-
-
-I noticed a bug, do I need to register before I can report it?
-
-No, suggestions for improving Vim can always be given. For improvements use
-the developer |maillist|, for reporting bugs see |bugs|.
-
-
-How are my votes counted? *votes-counted*
-
-You may vote when you send 10 euro or more. You can enter up to ten votes.
-You can select the same item several times to give it more points. You can
-also enter three counter votes, these count as negative points.
-
-When you send 30 euro or more the points are doubled. Above 100 euro they
-count four times, above 300 euro they count six times, above 1000 euro ten
-times.
-
-
-Can I change my votes?
-
-You can change your votes any time you like, up to two years after you
-sent money. The points will be counted right away.
-
-
-Can I add an item to vote on?
-
-Not directly. You can suggest items to vote on to Bram. He will consider
-fitting your item into the list.
-
-
-How about Charityware?
-
-Currently the Vim donations go to |uganda| anyway. Thus it doesn't matter if
-you sponsor Vim or ICCF. Except that Vim sponsoring will allow you to vote
-for features.
-
-
-I donated $$$, now please add feature XYZ!
-
-There is no direct relation between your donation and the work Bram does.
-Otherwise you would be paying for work and we would have to pay tax over the
-donation. If you want to hire Bram for specific work, contact him directly,
-don't use the donation system.
-
-
-Are the donations tax deductible?
-
-That depends on your country. The donations to help the children in |Uganda|
-are tax deductible in Holland, Germany, Canada and in the USA. See the ICCF
-website http://iccf-holland.org/donate.html. You must send an e-mail to Bram
-to let him know that the donation is done because of the use of Vim.
-
-
-Can you send me a bill?
-
-No, because there is no relation between the money you send and the work that
-is done. But a receipt is possible.
-
-
-
- vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/ui.txt b/runtime/doc/ui.txt
index a0f1b0770e..3477e53545 100644
--- a/runtime/doc/ui.txt
+++ b/runtime/doc/ui.txt
@@ -167,7 +167,7 @@ the editor.
mouse support is active. Some options like 'ambiwidth' have already
taken effect on the grid, where appropriate empty cells are added,
however a UI might still use such options when rendering raw text
- sent from Nvim, like for |ui-ext-cmdline|.
+ sent from Nvim, like for |ui-cmdline|.
["mode_change", mode, mode_idx]
The mode changed. The first parameter `mode` is a string representing
diff --git a/runtime/doc/usr_01.txt b/runtime/doc/usr_01.txt
index f96043c409..3deaf181e5 100644
--- a/runtime/doc/usr_01.txt
+++ b/runtime/doc/usr_01.txt
@@ -68,9 +68,9 @@ For more info see |vimrc|.
==============================================================================
*01.3* Using the Vim tutor *tutor* *vimtutor*
-Instead of reading the text (boring!) you can use the vimtutor to learn your
-first Vim commands. This is a 30 minute tutorial that teaches the most basic
-Vim functionality hands-on.
+Instead of reading the text (boring!) you can use :Tutor to learn your first
+Vim commands. This is a 30 minute tutorial that teaches the most basic Vim
+functionality hands-on.
To start the tutorial, execute >
diff --git a/runtime/doc/usr_05.txt b/runtime/doc/usr_05.txt
index 38e858801b..af17d75656 100644
--- a/runtime/doc/usr_05.txt
+++ b/runtime/doc/usr_05.txt
@@ -321,7 +321,7 @@ Where can you find plugins?
- Some come with Vim. You can find them in the directory $VIMRUNTIME/macros
and its sub-directories and under $VIM/vimfiles/pack/dist/opt/.
- Download from the net. There is a large collection on http://www.vim.org.
-- They are sometimes posted in a Vim |maillist|.
+- They are sometimes posted in a Vim maillist.
- You could write one yourself, see |write-plugin|.
diff --git a/runtime/doc/usr_45.txt b/runtime/doc/usr_45.txt
index ae2aae7596..be33f0be6d 100644
--- a/runtime/doc/usr_45.txt
+++ b/runtime/doc/usr_45.txt
@@ -203,8 +203,7 @@ USING UNICODE IN A UNICODE TERMINAL
There are terminals that support Unicode directly. The standard xterm that
comes with XFree86 is one of them. Let's use that as an example.
- First of all, the xterm must have been compiled with Unicode support. See
-|UTF8-xterm| how to check that and how to compile it when needed.
+ First of all, the xterm must have been compiled with Unicode support.
Start the xterm with the "-u8" argument. You might also need so specify a
font. Example: >
diff --git a/runtime/doc/various.txt b/runtime/doc/various.txt
index 11ee8f8ca9..5f40ccf2ec 100644
--- a/runtime/doc/various.txt
+++ b/runtime/doc/various.txt
@@ -381,7 +381,7 @@ T *+tag_binary* binary searching in tags file |tag-binary-search|
N *+tag_old_static* old method for static tags |tag-old-static|
m *+tag_any_white* any white space allowed in tags file |tag-any-white|
B *+termguicolors* 24-bit color in xterm-compatible terminals support
-N *+termresponse* support for |t_RV| and |v:termresponse|
+N *+termresponse* support for t_RV and |v:termresponse|
N *+textobjects* |text-objects| selection
N *+timers* the |timer_start()| function
N *+title* Setting the window 'title' and 'icon'
diff --git a/runtime/plugin/README.txt b/runtime/plugin/README.txt
deleted file mode 100644
index 37e22e57c0..0000000000
--- a/runtime/plugin/README.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-The plugin directory is for standard Vim plugin scripts.
-
-All files here ending in .vim will be sourced by Vim when it starts up.
-Look in the file for hints on how it can be disabled without deleting it.
-
-getscriptPlugin.vim get latest version of Vim scripts
-gzip.vim edit compressed files
-matchparen.vim highlight paren matching the one under the cursor
-netrwPlugin.vim edit files over a network and browse (remote) directories
-rrhelper.vim used for --remote-wait editing
-spellfile.vim download a spellfile when it's missing
-tarPlugin.vim edit (compressed) tar files
-tohtml.vim convert a file with syntax highlighting to HTML
-vimballPlugin.vim create and unpack .vba files
-zipPlugin.vim edit zip archives
-
-Note: the explorer.vim plugin is no longer here, the netrw.vim plugin has
-taken over browsing directories (also for remote directories).
-
diff --git a/runtime/plugin/rrhelper.vim b/runtime/plugin/rrhelper.vim
deleted file mode 100644
index b09cbc10b9..0000000000
--- a/runtime/plugin/rrhelper.vim
+++ /dev/null
@@ -1,48 +0,0 @@
-" Vim plugin with helper function(s) for --remote-wait
-" Maintainer: Flemming Madsen <fma@cci.dk>
-" Last Change: 2008 May 29
-
-" Has this already been loaded?
-if exists("loaded_rrhelper") || !has("clientserver")
- finish
-endif
-let loaded_rrhelper = 1
-
-" Setup answers for a --remote-wait client who will assume
-" a SetupRemoteReplies() function in the command server
-
-function SetupRemoteReplies()
- let cnt = 0
- let max = argc()
-
- let id = expand("<client>")
- if id == 0
- return
- endif
- while cnt < max
- " Handle same file from more clients and file being more than once
- " on the command line by encoding this stuff in the group name
- let uniqueGroup = "RemoteReply_".id."_".cnt
-
- " Path separators are always forward slashes for the autocommand pattern.
- " Escape special characters with a backslash.
- let f = substitute(argv(cnt), '\\', '/', "g")
- if exists('*fnameescape')
- let f = fnameescape(f)
- else
- let f = escape(f, " \t\n*?[{`$\\%#'\"|!<")
- endif
- execute "augroup ".uniqueGroup
- execute "autocmd ".uniqueGroup." BufUnload ". f ." call DoRemoteReply('".id."', '".cnt."', '".uniqueGroup."', '". f ."')"
- let cnt = cnt + 1
- endwhile
- augroup END
-endfunc
-
-function DoRemoteReply(id, cnt, group, file)
- call server2client(a:id, a:cnt)
- execute 'autocmd! '.a:group.' BufUnload '.a:file
- execute 'augroup! '.a:group
-endfunc
-
-" vim: set sw=2 sts=2 :
diff --git a/scripts/vim-patch.sh b/scripts/vim-patch.sh
index de0d040b47..725863102a 100755
--- a/scripts/vim-patch.sh
+++ b/scripts/vim-patch.sh
@@ -149,8 +149,8 @@ preprocess_patch() {
local na_src='proto\|Make*\|gui_*\|if_lua\|if_mzsch\|if_olepp\|if_ole\|if_perl\|if_py\|if_ruby\|if_tcl\|if_xcmdsrv'
2>/dev/null $nvim --cmd 'set dir=/tmp' +'g@^diff --git a/src/\S*\<\%(testdir/\)\@<!\%('${na_src}'\)@norm! d/\v(^diff)|%$ ' +w +q "$file"
- # Remove channel.txt, netbeans.txt, os_*.txt, term.txt, todo.txt, version*.txt, tags
- local na_doc='channel\.txt\|netbeans\.txt\|os_\w\+\.txt\|term\.txt\|todo\.txt\|version\d\.txt\|tags'
+ # Remove unwanted Vim doc files.
+ local na_doc='channel\.txt\|netbeans\.txt\|os_\w\+\.txt\|term\.txt\|todo\.txt\|version\d\.txt\|sponsor\.txt\|intro\.txt\|tags'
2>/dev/null $nvim --cmd 'set dir=/tmp' +'g@^diff --git a/runtime/doc/\<\%('${na_doc}'\)\>@norm! d/\v(^diff)|%$ ' +w +q "$file"
# Remove "Last change ..." changes in doc files.
diff --git a/src/nvim/api/buffer.c b/src/nvim/api/buffer.c
index 39330690e8..487a912882 100644
--- a/src/nvim/api/buffer.c
+++ b/src/nvim/api/buffer.c
@@ -51,8 +51,7 @@
///
/// @param buffer Buffer handle
/// @param[out] err Error details, if any
-/// @return Line count, or \`0` if the buffer has been unloaded (see
-/// |api-buffer|).
+/// @return Line count, or 0 for unloaded buffer. |api-buffer|
Integer nvim_buf_line_count(Buffer buffer, Error *err)
FUNC_API_SINCE(1)
{
@@ -227,8 +226,7 @@ ArrayOf(String) buffer_get_line_slice(Buffer buffer,
/// @param end Last line index (exclusive)
/// @param strict_indexing Whether out-of-bounds should be an error.
/// @param[out] err Error details, if any
-/// @return Array of lines. If the buffer has been unloaded then an empty array
-/// will be returned instead. (See |api-buffer|.)
+/// @return Array of lines, or empty array for unloaded buffer.
ArrayOf(String) nvim_buf_get_lines(uint64_t channel_id,
Buffer buffer,
Integer start,
@@ -491,12 +489,12 @@ end:
try_end(err);
}
-/// Return the byte offset for a line.
-//
-/// The first line returns 0. UTF-8 bytes are counted, and EOL counts as one
-/// byte. 'fileformat' and 'fileencoding' are ignored. Sending in the index
-/// just below the last line gives the total byte count for the entire buffer.
-/// A final EOL is included if it would be written, see 'eol'.
+/// Returns the byte offset for a line.
+///
+/// Line 1 (index=0) has offset 0. UTF-8 bytes are counted. EOL is one byte.
+/// 'fileformat' and 'fileencoding' are ignored. The line index just after the
+/// last line gives the total byte-count of the buffer. A final EOL byte is
+/// counted if it would be written, see 'eol'.
///
/// Unlike |line2byte()|, throws error for out-of-bounds indexing.
/// Returns -1 for unloaded buffer.
@@ -504,7 +502,7 @@ end:
/// @param buffer Buffer handle
/// @param index Line index
/// @param[out] err Error details, if any
-/// @return Integer Byte offset
+/// @return Integer byte offset, or -1 for unloaded buffer.
Integer nvim_buf_get_offset(Buffer buffer, Integer index, Error *err)
FUNC_API_SINCE(5)
{
diff --git a/src/nvim/api/vim.c b/src/nvim/api/vim.c
index fed20a272a..7fcccfd988 100644
--- a/src/nvim/api/vim.c
+++ b/src/nvim/api/vim.c
@@ -1028,7 +1028,7 @@ Array nvim_get_api_info(uint64_t channel_id)
/// @param attributes Informal attributes describing the client. Clients might
/// define their own keys, but the following are suggested:
/// - "website" Website of client (for instance github repository)
-/// - "license" Informal descripton of the license, such as "Apache 2",
+/// - "license" Informal description of the license, such as "Apache 2",
/// "GPLv3" or "MIT"
/// - "logo" URI or path to image, preferably small logo or icon.
/// .png or .svg format is preferred.