docs: graduate intro.txt to "flow layout" #31462

- move credits and backers to credits.txt
This commit is contained in:
Justin M. Keyes 2024-12-05 07:18:27 -08:00 committed by GitHub
parent 845e563421
commit 12901447cb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 512 additions and 508 deletions

View File

@ -1,11 +1,118 @@
*backers.txt* Nvim *credits.txt* Nvim
NVIM REFERENCE MANUAL NVIM REFERENCE MANUAL
============================================================================== ==============================================================================
Fundraiser Backers Credits *credits*
Most of Vim was written by Bram Moolenaar <Bram@vim.org> |Bram-Moolenaar|.
Parts of the documentation come from several Vi manuals, written by:
W.N. Joy
Alan P.W. Hewett
Mark Horton
The Vim editor is based on Stevie and includes (ideas from) other software,
worked on by the people mentioned here. Other people helped by sending me
patches, suggestions and giving feedback about what is good and bad in Vim.
Vim would never have become what it is now, without the help of these people!
Ron Aaron Win32 GUI changes
Mohsin Ahmed encryption
Zoltan Arpadffy work on VMS port
Tony Andrews Stevie
Gert van Antwerpen changes for DJGPP on MS-DOS
Berkeley DB(3) ideas for swap file implementation
Keith Bostic Nvi
Walter Briscoe Makefile updates, various patches
Ralf Brown SPAWNO library for MS-DOS
Robert Colon many useful remarks
Marcin Dalecki GTK+ GUI port, toolbar icons, gettext()
Kayhan Demirel sent me news in Uganda
Chris & John Downey xvi (ideas for multi-windows version)
Henk Elbers first VMS port
Daniel Elstner GTK+ 2 port
Eric Fischer Mac port, 'cindent', and other improvements
Benji Fisher Answering lots of user questions
Bill Foster Athena GUI port (later removed)
Google Let Bram work on Vim one day a week
Loic Grenie xvim (ideas for multi windows version)
Sven Guckes Vim promoter and previous WWW page maintainer
Darren Hiebert Exuberant ctags
Jason Hildebrand GTK+ 2 port
Bruce Hunsaker improvements for VMS port
Andy Kahn Cscope support, GTK+ GUI port
Oezguer Kesim Maintainer of Vim Mailing Lists
Axel Kielhorn work on the Macintosh port
Steve Kirkendall Elvis
Roger Knobbe original port to Windows NT
Sergey Laskavy Vim's help from Moscow
Felix von Leitner Previous maintainer of Vim Mailing Lists
David Leonard Port of Python extensions to Unix
Avner Lottem Edit in right-to-left windows
Flemming Madsen X11 client-server, various features and patches
Tony Mechelynck answers many user questions
Paul Moore Python interface extensions, many patches
Katsuhito Nagano Work on multibyte versions
Sung-Hyun Nam Work on multibyte versions
Vince Negri Win32 GUI and generic console enhancements
Steve Oualline Author of the first Vim book |frombook|
Dominique Pelle Valgrind reports and many fixes
A.Politz Many bug reports and some fixes
George V. Reilly Win32 port, Win32 GUI start-off
Stephen Riehm bug collector
Stefan Roemer various patches and help to users
Ralf Schandl IBM OS/390 port
Olaf Seibert DICE and BeBox version, regexp improvements
Mortaza Shiran Farsi patches
Peter da Silva termlib
Paul Slootman OS/2 port
Henry Spencer regular expressions
Dany St-Amant Macintosh port
Tim Thompson Stevie
G. R. (Fred) Walter Stevie
Sven Verdoolaege Perl interface
Robert Webb Command-line completion, GUI versions, and
lots of patches
Ingo Wilken Tcl interface
Mike Williams PostScript printing
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.
Yegappan Lakshmanan many quickfix features
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
the ideas from all these people: They keep Vim alive!
*love* *peace* *friendship* *gross-national-happiness*
Documentation may refer to other versions of Vi:
*Vi* *vi*
Vi "the original". Without further remarks this is the version
of Vi that appeared in Sun OS 4.x. ":version" returns
"Version 3.7, 6/7/85". Source code only available with a license.
*Nvi*
Nvi The "New" Vi. The version of Vi that comes with BSD 4.4 and FreeBSD.
Very good compatibility with the original Vi, with a few extensions.
The version used is 1.79. ":version" returns "Version 1.79
(10/23/96)". Source code is freely available.
*Elvis*
Elvis Another Vi clone, made by Steve Kirkendall. Very compact but isn't
as flexible as Vim. Source code is freely available.
Vim Nvim is based on Vim. https://www.vim.org/
==============================================================================
Neovim fundraiser backers *backers.txt*
Thank you to everyone who backed the original Neovim Fundraiser. Thank you to everyone who backed the original Neovim Fundraiser.

View File

@ -25,35 +25,40 @@ Use CTRL-] to jump to a subject under the cursor, use CTRL-T to jump back.
Vim is pronounced as one word, like Jim. So Nvim is "En-Vim", two syllables. Vim is pronounced as one word, like Jim. So Nvim is "En-Vim", two syllables.
This manual is a reference for all Nvim editor and API features. It is not an This manual is a reference for all Nvim editor and API features. It is not an
introduction; instead for beginners, there is a hands-on |tutor| and a user introduction; instead for beginners, there is a hands-on |tutor|, |lua-guide|,
manual |usr_toc.txt|. and |user-manual|.
*book* ------------------------------------------------------------------------------
There are many books on Vi and Vim. We recommend: Resources *resources*
"Practical Vim" by Drew Neil *internet* *www* *distribution*
"Modern Vim" by Drew Neil
https://vimcasts.org/publications/
"Practical Vim" is acclaimed for its focus on quickly learning common editing
tasks with Vim. "Modern Vim" explores new features in Nvim and Vim 8.
"Vim - Vi Improved" by Steve Oualline
This was 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
==============================================================================
Nvim on the interwebs *internet*
*www* *distribution*
- Nvim home page: https://neovim.io/ - Nvim home page: https://neovim.io/
- Vim FAQ: https://vimhelp.org/vim_faq.txt.html - Vim FAQ: https://vimhelp.org/vim_faq.txt.html
*download* *upgrade* *install* *ubuntu* *book*
There are many resources to learn Vi, Vim, and Nvim. We recommend:
- "Practical Vim" by Drew Neil. Acclaimed for its focus on quickly learning
common editing tasks with Vim.
- "Modern Vim" by Drew Neil. Explores new features in Nvim and Vim 8.
- https://vimcasts.org/publications/
- "Vim - Vi Improved" by Steve Oualline. This was the first book dedicated to
Vim. Parts of it were included in the Vim 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
*bugs* *bug-report* *feature-request*
Report bugs and request features here: https://github.com/neovim/neovim/issues
Be brief, yet complete. Always give a reproducible example and try to find
out which settings or other things trigger the bug. If Nvim crashed, try to
get a backtrace (see |dev-tools-backtrace|).
==============================================================================
Installing Nvim *install*
*download* *upgrade* *ubuntu*
To install or upgrade Nvim, you can... To install or upgrade Nvim, you can...
- Download a pre-built archive: - Download a pre-built archive:
https://github.com/neovim/neovim/releases https://github.com/neovim/neovim/releases
@ -62,14 +67,8 @@ To install or upgrade Nvim, you can...
- Build from source: - Build from source:
https://github.com/neovim/neovim/blob/master/INSTALL.md#install-from-source https://github.com/neovim/neovim/blob/master/INSTALL.md#install-from-source
*bugs* *bug-report* *feature-request*
Report bugs and request features here: https://github.com/neovim/neovim/issues
Be brief, yet complete. Always give a reproducible example and try to find
out which settings or other things trigger the bug. If Nvim crashed, try to
get a backtrace (see |dev-tools-backtrace|).
*uninstall* *uninstall*
To un-install Nvim: To uninstall Nvim:
- If you downloaded a pre-built archive or built Nvim from source (e.g. `make - If you downloaded a pre-built archive or built Nvim from source (e.g. `make
install`), just delete its files, typically located in: > install`), just delete its files, typically located in: >
/usr/local/bin/nvim /usr/local/bin/nvim
@ -101,112 +100,6 @@ Nvim development is funded separately from Vim:
https://neovim.io/#sponsor https://neovim.io/#sponsor
==============================================================================
Credits *credits*
Most of Vim was written by Bram Moolenaar <Bram@vim.org> |Bram-Moolenaar|.
Parts of the documentation come from several Vi manuals, written by:
W.N. Joy
Alan P.W. Hewett
Mark Horton
The Vim editor is based on Stevie and includes (ideas from) other software,
worked on by the people mentioned here. Other people helped by sending me
patches, suggestions and giving feedback about what is good and bad in Vim.
Vim would never have become what it is now, without the help of these people!
Ron Aaron Win32 GUI changes
Mohsin Ahmed encryption
Zoltan Arpadffy work on VMS port
Tony Andrews Stevie
Gert van Antwerpen changes for DJGPP on MS-DOS
Berkeley DB(3) ideas for swap file implementation
Keith Bostic Nvi
Walter Briscoe Makefile updates, various patches
Ralf Brown SPAWNO library for MS-DOS
Robert Colon many useful remarks
Marcin Dalecki GTK+ GUI port, toolbar icons, gettext()
Kayhan Demirel sent me news in Uganda
Chris & John Downey xvi (ideas for multi-windows version)
Henk Elbers first VMS port
Daniel Elstner GTK+ 2 port
Eric Fischer Mac port, 'cindent', and other improvements
Benji Fisher Answering lots of user questions
Bill Foster Athena GUI port (later removed)
Google Let Bram work on Vim one day a week
Loic Grenie xvim (ideas for multi windows version)
Sven Guckes Vim promoter and previous WWW page maintainer
Darren Hiebert Exuberant ctags
Jason Hildebrand GTK+ 2 port
Bruce Hunsaker improvements for VMS port
Andy Kahn Cscope support, GTK+ GUI port
Oezguer Kesim Maintainer of Vim Mailing Lists
Axel Kielhorn work on the Macintosh port
Steve Kirkendall Elvis
Roger Knobbe original port to Windows NT
Sergey Laskavy Vim's help from Moscow
Felix von Leitner Previous maintainer of Vim Mailing Lists
David Leonard Port of Python extensions to Unix
Avner Lottem Edit in right-to-left windows
Flemming Madsen X11 client-server, various features and patches
Tony Mechelynck answers many user questions
Paul Moore Python interface extensions, many patches
Katsuhito Nagano Work on multibyte versions
Sung-Hyun Nam Work on multibyte versions
Vince Negri Win32 GUI and generic console enhancements
Steve Oualline Author of the first Vim book |frombook|
Dominique Pelle Valgrind reports and many fixes
A.Politz Many bug reports and some fixes
George V. Reilly Win32 port, Win32 GUI start-off
Stephen Riehm bug collector
Stefan Roemer various patches and help to users
Ralf Schandl IBM OS/390 port
Olaf Seibert DICE and BeBox version, regexp improvements
Mortaza Shiran Farsi patches
Peter da Silva termlib
Paul Slootman OS/2 port
Henry Spencer regular expressions
Dany St-Amant Macintosh port
Tim Thompson Stevie
G. R. (Fred) Walter Stevie
Sven Verdoolaege Perl interface
Robert Webb Command-line completion, GUI versions, and
lots of patches
Ingo Wilken Tcl interface
Mike Williams PostScript printing
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.
Yegappan Lakshmanan many quickfix features
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
the ideas from all these people: They keep Vim alive!
*love* *peace* *friendship* *gross-national-happiness*
Documentation may refer to other versions of Vi:
*Vi* *vi*
Vi "the original". Without further remarks this is the version
of Vi that appeared in Sun OS 4.x. ":version" returns
"Version 3.7, 6/7/85". Source code only available with a license.
*Nvi*
Nvi The "New" Vi. The version of Vi that comes with BSD 4.4 and FreeBSD.
Very good compatibility with the original Vi, with a few extensions.
The version used is 1.79. ":version" returns "Version 1.79
(10/23/96)". Source code is freely available.
*Elvis*
Elvis Another Vi clone, made by Steve Kirkendall. Very compact but isn't
as flexible as Vim. Source code is freely available.
Vim Nvim is based on Vim. https://www.vim.org/
============================================================================== ==============================================================================
Bram Moolenaar *Bram* *Moolenaar* *Bram-Moolenaar* *brammool* Bram Moolenaar *Bram* *Moolenaar* *Bram-Moolenaar* *brammool*
@ -217,8 +110,8 @@ On August 3, 2023, he passed away at the age of 62. If Vim or Nvim have been
of use to you in your life, please read |Uganda| and consider honoring his of use to you in your life, please read |Uganda| and consider honoring his
memory however you may see fit. memory however you may see fit.
Obituary Articles: https://github.com/vim/vim/discussions/12742 - Obituary Articles: https://github.com/vim/vim/discussions/12742
Say Farewell: https://github.com/vim/vim/discussions/12737 - Say Farewell: https://github.com/vim/vim/discussions/12737
============================================================================== ==============================================================================
Notation *notation* Notation *notation*
@ -231,10 +124,10 @@ Note that Vim uses all possible characters in commands. Sometimes the [], {}
and <> are part of what you type, the context should make this clear. and <> are part of what you type, the context should make this clear.
[] Characters in square brackets are optional. - [] Characters in square brackets are optional.
*count* *[count]* *count* *[count]*
[count] An optional number that may precede the command to multiply - [count] An optional number that may precede the command to multiply
or iterate the command. If no number is given, a count of one or iterate the command. If no number is given, a count of one
is used, unless otherwise noted. Note that in this manual the is used, unless otherwise noted. Note that in this manual the
[count] is not mentioned in the description of the command, [count] is not mentioned in the description of the command,
@ -244,7 +137,7 @@ and <> are part of what you type, the context should make this clear.
window. You can use <Del> to erase the last digit (|N<Del>|). window. You can use <Del> to erase the last digit (|N<Del>|).
*[quotex]* *[quotex]*
["x] An optional register designation where text can be stored. - ["x] An optional register designation where text can be stored.
See |registers|. The x is a single character between 'a' and See |registers|. The x is a single character between 'a' and
'z' or 'A' and 'Z' or '"', and in some cases (with the put 'z' or 'A' and 'Z' or '"', and in some cases (with the put
command) between '0' and '9', '%', '#', or others. The command) between '0' and '9', '%', '#', or others. The
@ -255,29 +148,30 @@ and <> are part of what you type, the context should make this clear.
with """" the stored text is put into the unnamed register. with """" the stored text is put into the unnamed register.
*{}* *{}*
{} Curly braces denote parts of the command which must appear, - {} Curly braces denote parts of the command which must appear,
but which can take a number of different values. The but which can take a number of different values. The
differences between Vim and Vi are also given in curly braces differences between Vim and Vi are also given in curly braces
(this will be clear from the context). (this will be clear from the context).
*{char1-char2}* *{char1-char2}*
{char1-char2} A single character from the range char1 to char2. For - {char1-char2} A single character from the range char1 to char2. For
example: {a-z} is a lowercase letter. Multiple ranges may be example: {a-z} is a lowercase letter. Multiple ranges may be
concatenated. For example, {a-zA-Z0-9} is any alphanumeric concatenated. For example, {a-zA-Z0-9} is any alphanumeric
character. character.
*{motion}* *movement* *{motion}* *movement*
{motion} A command that moves the cursor. These are explained in - {motion} A command that moves the cursor. These are explained in
|motion.txt|. Examples: |motion.txt|.
w to start of next word - Examples:
b to begin of current word - `w` to start of next word
4j four lines down - `b` to begin of current word
/The<CR> to next occurrence of "The" - `4j` four lines down
This is used after an |operator| command to move over the text - `/The<CR>` to next occurrence of "The"
that is to be operated upon. - This is used after an |operator| command to move over the
- If the motion includes a count and the operator also has a text that is to be operated upon.
count, the two counts are multiplied. For example: "2d3w" - If the motion includes a count and the operator also has
deletes six words. a count, the two counts are multiplied. For example:
"2d3w" deletes six words.
- The motion can be backwards, e.g. "db" to delete to the - The motion can be backwards, e.g. "db" to delete to the
start of the word. start of the word.
- The motion can also be a mouse click. The mouse is not - The motion can also be a mouse click. The mouse is not
@ -286,18 +180,18 @@ and <> are part of what you type, the context should make this clear.
operator is pending. operator is pending.
- Ex commands can be used to move the cursor. This can be - Ex commands can be used to move the cursor. This can be
used to call a function that does some complicated motion. used to call a function that does some complicated motion.
The motion is always charwise exclusive, no matter The motion is always charwise exclusive, no matter what
what ":" command is used. This means it's impossible to ":" command is used. This means it's impossible to
include the last character of a line without the line break include the last character of a line without the line
(unless 'virtualedit' is set). break (unless 'virtualedit' is set). If the Ex command
If the Ex command changes the text before where the operator changes the text before where the operator starts or jumps
starts or jumps to another buffer the result is to another buffer the result is unpredictable. It is
unpredictable. It is possible to change the text further possible to change the text further down. Jumping to
down. Jumping to another buffer is possible if the current another buffer is possible if the current buffer is not
buffer is not unloaded. unloaded.
*{Visual}* *{Visual}*
{Visual} A selected text area. It is started with the "v", "V", or - {Visual} A selected text area. It is started with the "v", "V", or
CTRL-V command, then any cursor movement command can be used CTRL-V command, then any cursor movement command can be used
to change the end of the selected text. to change the end of the selected text.
This is used before an |operator| command to highlight the This is used before an |operator| command to highlight the
@ -305,14 +199,14 @@ and <> are part of what you type, the context should make this clear.
See |Visual-mode|. See |Visual-mode|.
*<character>* *<character>*
<character> A special character from the table below, optionally with - <character> A special character from the table below, optionally with
modifiers, or a single ASCII character with modifiers. modifiers, or a single ASCII character with modifiers.
*'character'* *'character'*
'c' A single ASCII character. - 'c' A single ASCII character.
*CTRL-{char}* *CTRL-{char}*
CTRL-{char} {char} typed as a control character; that is, typing {char} - CTRL-{char} {char} typed as a control character; that is, typing {char}
while holding the CTRL key down. The case of {char} is while holding the CTRL key down. The case of {char} is
ignored; thus CTRL-A and CTRL-a are equivalent. But in ignored; thus CTRL-A and CTRL-a are equivalent. But in
some terminals and environments, using the SHIFT key will some terminals and environments, using the SHIFT key will
@ -321,13 +215,13 @@ CTRL-{char} {char} typed as a control character; that is, typing {char}
such as CTRL-A. such as CTRL-A.
*'option'* *'option'*
'option' An option, or parameter, that can be set to a value, is - 'option' An option, or parameter, that can be set to a value, is
enclosed in single quotes. See |options|. enclosed in single quotes. See |options|.
*quotecommandquote* *quotecommandquote*
"command" A reference to a command that you can type is enclosed in - "command" A reference to a command that you can type is enclosed in
double quotes. double quotes.
`command` New style command, this distinguishes it from other quoted - `command` New style command, this distinguishes it from other quoted
text and strings. text and strings.
*key-notation* *key-codes* *keycodes* *key-notation* *key-codes* *keycodes*
@ -335,7 +229,6 @@ These names for keys are used in the documentation. They can also be used
with the ":map" command. with the ":map" command.
notation meaning equivalent decimal value(s) ~ notation meaning equivalent decimal value(s) ~
----------------------------------------------------------------------- ~
<Nul> zero CTRL-@ 0 (stored as 10) *<Nul>* <Nul> zero CTRL-@ 0 (stored as 10) *<Nul>*
<BS> backspace CTRL-H 8 *backspace* <BS> backspace CTRL-H 8 *backspace*
<Tab> tab CTRL-I 9 *tab* *Tab* <Tab> tab CTRL-I 9 *tab* *Tab*
@ -401,7 +294,7 @@ notation meaning equivalent decimal value(s) ~
<A-…> same as <M-…> *<A-* <A-…> same as <M-…> *<A-*
<T-…> meta-key when it's not alt *<T-* <T-…> meta-key when it's not alt *<T-*
<D-…> command-key or "super" key *<D-* <D-…> command-key or "super" key *<D-*
----------------------------------------------------------------------- ~
Note: Note:
@ -425,13 +318,13 @@ the ":map" command. The rules are:
3. Literal "<" is represented with "\<" or "<lt>". When there is no 3. Literal "<" is represented with "\<" or "<lt>". When there is no
confusion possible, "<" can be used directly. confusion possible, "<" can be used directly.
4. "<key>" means the special key typed (see the table above). Examples: 4. "<key>" means the special key typed (see the table above). Examples:
<Esc> Escape key - <Esc> Escape key
<C-G> CTRL-G - <C-G> CTRL-G
<Up> cursor up key - <Up> cursor up key
<C-LeftMouse> Control- left mouse click - <C-LeftMouse> Control- left mouse click
<S-F11> Shifted function key 11 - <S-F11> Shifted function key 11
<M-a> Meta- a ('a' with bit 8 set) - <M-a> Meta- a ('a' with bit 8 set)
<M-A> Meta- A ('A' with bit 8 set) - <M-A> Meta- A ('A' with bit 8 set)
The <> notation uses <lt> to escape the special meaning of key names. Using a The <> notation uses <lt> to escape the special meaning of key names. Using a
backslash also works, but only when 'cpoptions' does not include the 'B' flag. backslash also works, but only when 'cpoptions' does not include the 'B' flag.
@ -454,40 +347,40 @@ Modes, introduction *vim-modes-intro* *vim-modes*
Vim has seven BASIC modes: Vim has seven BASIC modes:
*Normal* *Normal-mode* *command-mode* *Normal* *Normal-mode* *command-mode*
Normal mode In Normal mode you can enter all the normal editor - Normal mode: In Normal mode you can enter all the normal editor
commands. If you start the editor you are in this commands. If you start the editor you are in this
mode. This is also known as command mode. mode. This is also known as command mode.
Visual mode This is like Normal mode, but the movement commands - Visual mode: This is like Normal mode, but the movement commands
extend a highlighted area. When a non-movement extend a highlighted area. When a non-movement
command is used, it is executed for the highlighted command is used, it is executed for the highlighted
area. See |Visual-mode|. area. See |Visual-mode|.
If the 'showmode' option is on "-- VISUAL --" is shown If the 'showmode' option is on "-- VISUAL --" is shown
at the bottom of the window. at the bottom of the window.
Select mode This looks most like the MS-Windows selection mode. - Select mode: This looks most like the MS-Windows selection mode.
Typing a printable character deletes the selection Typing a printable character deletes the selection
and starts Insert mode. See |Select-mode|. and starts Insert mode. See |Select-mode|.
If the 'showmode' option is on "-- SELECT --" is shown If the 'showmode' option is on "-- SELECT --" is shown
at the bottom of the window. at the bottom of the window.
Insert mode In Insert mode the text you type is inserted into the - Insert mode: In Insert mode the text you type is inserted into the
buffer. See |Insert-mode|. buffer. See |Insert-mode|.
If the 'showmode' option is on "-- INSERT --" is shown If the 'showmode' option is on "-- INSERT --" is shown
at the bottom of the window. at the bottom of the window.
Command-line mode In Command-line mode (also called Cmdline mode) you - Cmdline mode: In Command-line mode (also called Cmdline mode) you
Cmdline mode can enter one line of text at the bottom of the can enter one line of text at the bottom of the
window. This is for the Ex commands, ":", the pattern window. This is for the Ex commands, ":", the pattern
search commands, "?" and "/", and the filter command, search commands, "?" and "/", and the filter command,
"!". |Cmdline-mode| "!". |Cmdline-mode|
Ex mode Like Command-line mode, but after entering a command - Ex mode: Like Command-line mode, but after entering a command
you remain in Ex mode. Very limited editing of the you remain in Ex mode. Very limited editing of the
command line. |Ex-mode| command line. |Ex-mode|
*Terminal-mode* *Terminal-mode*
Terminal mode In Terminal mode all input (except CTRL-\) is sent to - Terminal mode: In Terminal mode all input (except CTRL-\) is sent to
the process running in the current |terminal| buffer. the process running in the current |terminal| buffer.
If CTRL-\ is pressed, the next key is sent unless it If CTRL-\ is pressed, the next key is sent unless it
is CTRL-N (|CTRL-\_CTRL-N|) or CTRL-O (|t_CTRL-\_CTRL-O|). is CTRL-N (|CTRL-\_CTRL-N|) or CTRL-O (|t_CTRL-\_CTRL-O|).
@ -497,37 +390,37 @@ Terminal mode In Terminal mode all input (except CTRL-\) is sent to
There are six ADDITIONAL modes. These are variants of the BASIC modes: There are six ADDITIONAL modes. These are variants of the BASIC modes:
*Operator-pending* *Operator-pending-mode* *Operator-pending* *Operator-pending-mode*
Operator-pending mode This is like Normal mode, but after an operator - Operator-pending mode: This is like Normal mode, but after an operator
command has started, and Vim is waiting for a {motion} command has started, and Vim is waiting for a {motion}
to specify the text that the operator will work on. to specify the text that the operator will work on.
Replace mode Replace mode is a special case of Insert mode. You - Replace mode: Replace mode is a special case of Insert mode. You
can do the same things as in Insert mode, but for can do the same things as in Insert mode, but for
each character you enter, one character of the existing each character you enter, one character of the existing
text is deleted. See |Replace-mode|. text is deleted. See |Replace-mode|.
If the 'showmode' option is on "-- REPLACE --" is If the 'showmode' option is on "-- REPLACE --" is
shown at the bottom of the window. shown at the bottom of the window.
Virtual Replace mode Virtual Replace mode is similar to Replace mode, but - Virtual Replace mode: Virtual Replace mode is similar to Replace mode, but
instead of file characters you are replacing screen instead of file characters you are replacing screen
real estate. See |Virtual-Replace-mode|. real estate. See |Virtual-Replace-mode|.
If the 'showmode' option is on "-- VREPLACE --" is If the 'showmode' option is on "-- VREPLACE --" is
shown at the bottom of the window. shown at the bottom of the window.
Insert Normal mode Entered when CTRL-O is typed in Insert mode (see - Insert Normal mode: Entered when CTRL-O is typed in Insert mode (see
|i_CTRL-O|). This is like Normal mode, but after |i_CTRL-O|). This is like Normal mode, but after
executing one command Vim returns to Insert mode. executing one command Vim returns to Insert mode.
If the 'showmode' option is on "-- (insert) --" is If the 'showmode' option is on "-- (insert) --" is
shown at the bottom of the window. shown at the bottom of the window.
Insert Visual mode Entered when starting a Visual selection from Insert - Insert Visual mode: Entered when starting a Visual selection from Insert
mode, e.g., by using CTRL-O and then "v", "V" or mode, e.g., by using CTRL-O and then "v", "V" or
CTRL-V. When the Visual selection ends, Vim returns CTRL-V. When the Visual selection ends, Vim returns
to Insert mode. to Insert mode.
If the 'showmode' option is on "-- (insert) VISUAL --" If the 'showmode' option is on "-- (insert) VISUAL --"
is shown at the bottom of the window. is shown at the bottom of the window.
Insert Select mode Entered when starting Select mode from Insert mode. - Insert Select mode: Entered when starting Select mode from Insert mode.
E.g., by dragging the mouse or <S-Right>. E.g., by dragging the mouse or <S-Right>.
When the Select mode ends, Vim returns to Insert mode. When the Select mode ends, Vim returns to Insert mode.
If the 'showmode' option is on "-- (insert) SELECT --" If the 'showmode' option is on "-- (insert) SELECT --"
@ -545,7 +438,8 @@ CTRL-O in Insert mode you get a beep but you are still in Insert mode, type
<Esc> again. <Esc> again.
*i_esc* *i_esc*
FROM mode TO mode ~ >
FROM mode TO mode
Normal Visual Select Insert Replace Cmd-line Ex > Normal Visual Select Insert Replace Cmd-line Ex >
Normal v V ^V *4 *1 R gR : / ? ! Q Normal v V ^V *4 *1 R gR : / ? ! Q
Visual *2 ^G c C -- : -- Visual *2 ^G c C -- : --
@ -556,13 +450,14 @@ CTRL-O in Insert mode you get a beep but you are still in Insert mode, type
Ex :vi -- -- -- -- -- Ex :vi -- -- -- -- --
-- not possible -- not possible
<
* 1 Go from Normal mode to Insert mode by giving the command "i", "I", "a", - 1 Go from Normal mode to Insert mode by giving the command "i", "I", "a",
"A", "o", "O", "c", "C", "s" or S". "A", "o", "O", "c", "C", "s" or S".
* 2 Go from Visual mode to Normal mode by giving a non-movement command, which - 2 Go from Visual mode to Normal mode by giving a non-movement command, which
causes the command to be executed, or by hitting <Esc> "v", "V" or "CTRL-V" causes the command to be executed, or by hitting <Esc> "v", "V" or "CTRL-V"
(see |v_v|), which just stops Visual mode without side effects. (see |v_v|), which just stops Visual mode without side effects.
* 3 Go from Command-line mode to Normal mode by: - 3 Go from Command-line mode to Normal mode by:
- Hitting <CR> or <NL>, which causes the entered command to be executed. - Hitting <CR> or <NL>, which causes the entered command to be executed.
- Deleting the complete line (e.g., with CTRL-U) and giving a final <BS>. - Deleting the complete line (e.g., with CTRL-U) and giving a final <BS>.
- Hitting CTRL-C or <Esc>, which quits the command-line without executing - Hitting CTRL-C or <Esc>, which quits the command-line without executing
@ -570,15 +465,15 @@ CTRL-O in Insert mode you get a beep but you are still in Insert mode, type
In the last case <Esc> may be the character defined with the 'wildchar' In the last case <Esc> may be the character defined with the 'wildchar'
option, in which case it will start command-line completion. You can option, in which case it will start command-line completion. You can
ignore that and type <Esc> again. ignore that and type <Esc> again.
* 4 Go from Normal to Select mode by: - 4 Go from Normal to Select mode by:
- use the mouse to select text while 'selectmode' contains "mouse" - use the mouse to select text while 'selectmode' contains "mouse"
- use a non-printable command to move the cursor while keeping the Shift - use a non-printable command to move the cursor while keeping the Shift
key pressed, and the 'selectmode' option contains "key" key pressed, and the 'selectmode' option contains "key"
- use "v", "V" or "CTRL-V" while 'selectmode' contains "cmd" - use "v", "V" or "CTRL-V" while 'selectmode' contains "cmd"
- use "gh", "gH" or "g CTRL-H" |g_CTRL-H| - use "gh", "gH" or "g CTRL-H" |g_CTRL-H|
* 5 Go from Select mode to Normal mode by using a non-printable command to move - 5 Go from Select mode to Normal mode by using a non-printable command to move
the cursor, without keeping the Shift key pressed. the cursor, without keeping the Shift key pressed.
* 6 Go from Select mode to Insert mode by typing a printable character. The - 6 Go from Select mode to Insert mode by typing a printable character. The
selection is deleted and the character is inserted. selection is deleted and the character is inserted.
*CTRL-\_CTRL-N* *i_CTRL-\_CTRL-N* *c_CTRL-\_CTRL-N* *CTRL-\_CTRL-N* *i_CTRL-\_CTRL-N* *c_CTRL-\_CTRL-N*
@ -681,7 +576,7 @@ position on the screen. The cursor can only be positioned on the first one.
If you set the 'number' option, all lines will be preceded with their If you set the 'number' option, all lines will be preceded with their
number. Tip: If you don't like wrapping lines to mix with the line numbers, number. Tip: If you don't like wrapping lines to mix with the line numbers,
set the 'showbreak' option to eight spaces: set the 'showbreak' option to eight spaces: >
":set showbreak=\ \ \ \ \ \ \ \ " ":set showbreak=\ \ \ \ \ \ \ \ "
If you set the 'list' option, <Tab> characters will not be shown as several If you set the 'list' option, <Tab> characters will not be shown as several
@ -693,9 +588,9 @@ display of the buffer contents is updated as soon as you go back to Command
mode. mode.
The last line of the window is used for status and other messages. The The last line of the window is used for status and other messages. The
status messages will only be used if an option is on: status messages will only be used if an option is on: >
status message option default Unix default ~ status message option default Unix default
current mode 'showmode' on on current mode 'showmode' on on
command characters 'showcmd' on off command characters 'showcmd' on off
cursor position 'ruler' off off cursor position 'ruler' off off
@ -722,12 +617,11 @@ to be able to read most messages on the last line.
============================================================================== ==============================================================================
Definitions *definitions* *jargon* Definitions *definitions* *jargon*
buffer Contains lines of text, usually from a file. - buffer: Contains lines of text, usually from a file.
screen The whole area that Nvim uses to display things. - screen: The whole area that Nvim uses to display things.
window A view on a buffer. There can be multiple windows for - window: A view on a buffer. There can be multiple windows for one buffer.
one buffer. - frame: Windows are kept in a tree of frames. Each frame contains a column,
frame Windows are kept in a tree of frames. Each frame row, or window ("leaf" frame).
contains a column, row, or window ("leaf" frame).
A screen contains one or more windows, separated by status lines and with the A screen contains one or more windows, separated by status lines and with the
command line at the bottom. command line at the bottom.
@ -749,26 +643,27 @@ there is not enough room in the command line.
A difference is made between four types of lines: A difference is made between four types of lines:
buffer lines The lines in the buffer. This is the same as the - buffer lines: The lines in the buffer. This is the same as the
lines as they are read from/written to a file. They lines as they are read from/written to a file. They
can be thousands of characters long. can be thousands of characters long.
logical lines The buffer lines with folding applied. Buffer lines - logical lines: The buffer lines with folding applied. Buffer lines
in a closed fold are changed to a single logical line: in a closed fold are changed to a single logical line:
"+-- 99 lines folded". They can be thousands of "+-- 99 lines folded". They can be thousands of
characters long. characters long.
window lines The lines displayed in a window: A range of logical - window lines: The lines displayed in a window: A range of logical
lines with wrapping, line breaks, etc. applied. They lines with wrapping, line breaks, etc. applied. They
can only be as long as the width of the window allows, can only be as long as the width of the window allows,
longer lines are wrapped or truncated. longer lines are wrapped or truncated.
screen lines The lines of the screen that Nvim uses. Consists of - screen lines: The lines of the screen that Nvim uses. Consists of
the window lines of all windows, with status lines the window lines of all windows, with status lines
and the command line added. They can only be as long and the command line added. They can only be as long
as the width of the screen allows. When the command as the width of the screen allows. When the command
line gets longer it wraps and lines are scrolled to line gets longer it wraps and lines are scrolled to
make room. make room.
buffer lines logical lines window lines screen lines ~ >
buffer lines logical lines window lines screen lines
-----------------------------------------------------------------------
1. one 1. one 1. +-- folded 1. +-- folded 1. one 1. one 1. +-- folded 1. +-- folded
2. two 2. +-- folded 2. five 2. five 2. two 2. +-- folded 2. five 2. five
3. three 3. five 3. six 3. six 3. three 3. five 3. six 3. six
@ -783,7 +678,7 @@ buffer lines logical lines window lines screen lines ~
4. ddd 4. ddd 4. cc 12. === status line === 4. ddd 4. ddd 4. cc 12. === status line ===
5. ddd 13. (command line) 5. ddd 13. (command line)
6. ~ 6. ~
<
API client ~ API client ~
All external UIs and remote plugins (as opposed to regular Vim plugins) are All external UIs and remote plugins (as opposed to regular Vim plugins) are
@ -791,8 +686,8 @@ All external UIs and remote plugins (as opposed to regular Vim plugins) are
to abstract or wrap the RPC API for the convenience of other applications to abstract or wrap the RPC API for the convenience of other applications
(just like a REST client or SDK such as boto3 for AWS: you can speak AWS REST (just like a REST client or SDK such as boto3 for AWS: you can speak AWS REST
using an HTTP client like curl, but boto3 wraps that in a convenient python using an HTTP client like curl, but boto3 wraps that in a convenient python
interface). For example, the Nvim lua-client is an API client: interface). For example, the Nvim node-client is an API client:
https://github.com/neovim/lua-client https://github.com/neovim/node-client
Host ~ Host ~
@ -807,4 +702,4 @@ process and communicates with Nvim via the |api|.
============================================================================== ==============================================================================
vim:tw=78:ts=8:noet:ft=help:norl: vim:tw=78:ts=8:et:sw=4:ft=help:norl:

View File

@ -48,7 +48,7 @@ local spell_dict = {
--- specify the list of keywords to ignore (i.e. allow), or true to disable spell check completely. --- specify the list of keywords to ignore (i.e. allow), or true to disable spell check completely.
--- @type table<string, true|string[]> --- @type table<string, true|string[]>
local spell_ignore_files = { local spell_ignore_files = {
['backers.txt'] = true, ['credits.txt'] = { 'Neovim' },
['news.txt'] = { 'tree-sitter' }, -- in news, may refer to the upstream "tree-sitter" library ['news.txt'] = { 'tree-sitter' }, -- in news, may refer to the upstream "tree-sitter" library
['news-0.10.txt'] = { 'tree-sitter' }, ['news-0.10.txt'] = { 'tree-sitter' },
} }
@ -71,6 +71,7 @@ local new_layout = {
['editorconfig.txt'] = true, ['editorconfig.txt'] = true,
['faq.txt'] = true, ['faq.txt'] = true,
['gui.txt'] = true, ['gui.txt'] = true,
['intro.txt'] = true,
['lua.txt'] = true, ['lua.txt'] = true,
['luaref.txt'] = true, ['luaref.txt'] = true,
['news.txt'] = true, ['news.txt'] = true,
@ -85,6 +86,7 @@ local new_layout = {
-- Map of new:old pages, to redirect renamed pages. -- Map of new:old pages, to redirect renamed pages.
local redirects = { local redirects = {
['credits'] = 'backers',
['tui'] = 'term', ['tui'] = 'term',
['terminal'] = 'nvim_terminal_emulator', ['terminal'] = 'nvim_terminal_emulator',
} }
@ -117,7 +119,7 @@ local exclude_invalid_urls = {
-- Deprecated, brain-damaged files that I don't care about. -- Deprecated, brain-damaged files that I don't care about.
local ignore_errors = { local ignore_errors = {
['pi_netrw.txt'] = true, ['pi_netrw.txt'] = true,
['backers.txt'] = true, ['credits.txt'] = true,
} }
local function tofile(fname, text) local function tofile(fname, text)

View File

@ -1023,18 +1023,18 @@ describe('completion', function()
it("'ignorecase' 'infercase' CTRL-X CTRL-N #6451", function() it("'ignorecase' 'infercase' CTRL-X CTRL-N #6451", function()
feed_command('set ignorecase infercase') feed_command('set ignorecase infercase')
feed_command('edit runtime/doc/backers.txt') feed_command('edit runtime/doc/credits.txt')
feed('oX<C-X><C-N>') feed('oX<C-X><C-N>')
screen:expect { screen:expect {
grid = [[ grid = [[
*backers.txt* Nvim | *credits.txt* Nvim |
Xnull^ | Xvi^ |
{12:Xnull }{101: } | {12:Xvi }{101: } |
{4:Xoxomoon }{101: } | {4:Xvim }{101: } |
{4:Xu }{101: } NVIM REFERENCE MANUAL | {4:X11 }{12: } NVIM REFERENCE MANUAL |
{4:Xpayn }{12: } | {4:Xnull }{12: } |
{4:Xinity }{12: } | {4:Xoxomoon }{12: } |
{5:-- Keyword Local completion (^N^P) }{6:match 1 of 7} | {5:-- Keyword Local completion (^N^P) }{6:match 1 of 10} |
]], ]],
} }
end) end)