2015-01-30 05:19:43 -07:00
|
|
|
*vim_diff.txt* For Nvim. {Nvim}
|
|
|
|
|
|
|
|
|
|
|
|
NVIM REFERENCE MANUAL
|
|
|
|
|
|
|
|
|
|
|
|
Differences between Nvim and Vim *vim-differences*
|
|
|
|
|
|
|
|
Throughout the help files, differences between Nvim and Vim are indicated via
|
|
|
|
the "{Nvim}" tag. This document is a complete and centralized list of all
|
|
|
|
these differences.
|
|
|
|
|
|
|
|
1. Configuration |nvim-configuration|
|
2015-05-16 00:10:38 -07:00
|
|
|
2. Defaults |nvim-defaults|
|
2016-06-15 18:33:47 -07:00
|
|
|
3. New features |nvim-features|
|
|
|
|
4. Changed features |nvim-features-changed|
|
2015-01-30 05:19:43 -07:00
|
|
|
5. Missing legacy features |nvim-features-missing|
|
|
|
|
6. Removed features |nvim-features-removed|
|
|
|
|
|
|
|
|
|
|
|
|
==============================================================================
|
|
|
|
1. Configuration *nvim-configuration*
|
|
|
|
|
2016-04-07 18:36:14 -07:00
|
|
|
- Use `$XDG_CONFIG_HOME/nvim/init.vim` instead of `.vimrc` for storing
|
2015-10-17 07:25:53 -07:00
|
|
|
configuration.
|
|
|
|
- Use `$XDG_CONFIG_HOME/nvim` instead of `.vim` to store configuration files.
|
2016-04-07 18:36:14 -07:00
|
|
|
- Use `$XDG_DATA_HOME/nvim/shada/main.shada` instead of `.viminfo` for persistent
|
2015-10-17 07:25:53 -07:00
|
|
|
session information.
|
2015-01-30 05:19:43 -07:00
|
|
|
|
|
|
|
==============================================================================
|
2015-05-16 00:10:38 -07:00
|
|
|
2. Defaults *nvim-defaults*
|
|
|
|
|
|
|
|
- Syntax highlighting is enabled by default
|
2016-04-10 22:59:32 -07:00
|
|
|
- ":filetype plugin indent on" is enabled by default
|
2015-01-30 05:19:43 -07:00
|
|
|
|
2015-07-14 04:53:45 -07:00
|
|
|
- 'autoindent' is set by default
|
2015-06-20 12:39:40 -07:00
|
|
|
- 'autoread' is set by default
|
2015-05-12 16:49:24 -07:00
|
|
|
- 'backspace' defaults to "indent,eol,start"
|
2015-06-18 13:11:51 -07:00
|
|
|
- 'complete' doesn't include "i"
|
2015-06-20 10:17:26 -07:00
|
|
|
- 'display' defaults to "lastline"
|
2015-01-30 05:19:43 -07:00
|
|
|
- 'encoding' defaults to "utf-8"
|
2015-05-15 22:23:16 -07:00
|
|
|
- 'formatoptions' defaults to "tcqj"
|
2015-06-20 11:59:25 -07:00
|
|
|
- 'history' defaults to 10000 (the maximum)
|
2015-06-20 13:40:03 -07:00
|
|
|
- 'hlsearch' is set by default
|
2015-06-18 19:02:36 -07:00
|
|
|
- 'incsearch' is set by default
|
2015-06-18 12:56:39 -07:00
|
|
|
- 'langnoremap' is set by default
|
2015-06-20 14:45:03 -07:00
|
|
|
- 'laststatus' defaults to 2 (statusline is always shown)
|
2015-06-20 13:16:10 -07:00
|
|
|
- 'listchars' defaults to "tab:> ,trail:-,nbsp:+"
|
2015-06-18 20:37:11 -07:00
|
|
|
- 'mouse' defaults to "a"
|
2015-05-12 16:49:24 -07:00
|
|
|
- 'nocompatible' is always set
|
2016-02-15 11:55:51 -07:00
|
|
|
- 'nrformats' defaults to "bin,hex"
|
2015-06-20 12:39:40 -07:00
|
|
|
- 'sessionoptions' doesn't include "options"
|
2015-06-18 13:23:29 -07:00
|
|
|
- 'smarttab' is set by default
|
2015-06-20 12:10:29 -07:00
|
|
|
- 'tabpagemax' defaults to 50
|
2015-05-15 22:33:26 -07:00
|
|
|
- 'tags' defaults to "./tags;,tags"
|
2015-05-12 16:49:24 -07:00
|
|
|
- 'ttyfast' is always set
|
2015-06-20 12:23:38 -07:00
|
|
|
- 'viminfo' includes "!"
|
2015-05-16 11:09:40 -07:00
|
|
|
- 'wildmenu' is set by default
|
2015-01-30 05:19:43 -07:00
|
|
|
|
|
|
|
==============================================================================
|
2016-06-15 18:33:47 -07:00
|
|
|
3. New Features *nvim-features*
|
|
|
|
|
|
|
|
|
|
|
|
MAJOR FEATURES ~
|
|
|
|
|
|
|
|
Embedded terminal emulator |terminal-emulator|
|
|
|
|
Shared data |shada|
|
|
|
|
RPC API |RPC|
|
|
|
|
Job control |job-control|
|
|
|
|
Remote plugins |remote-plugin|
|
|
|
|
Python plugins |provider-python|
|
|
|
|
Clipboard integration |provider-clipboard|
|
|
|
|
|
|
|
|
|
|
|
|
OTHER FEATURES ~
|
|
|
|
|
|
|
|
|bracketed-paste-mode| is built-in and enabled by default.
|
|
|
|
|
|
|
|
Meta (alt) chords are recognized (even in the terminal).
|
|
|
|
<M-1>, <M-2>, ...
|
|
|
|
<M-BS>, <M-Del>, <M-Ins>, ...
|
|
|
|
<M-/>, <M-\>, ...
|
|
|
|
<M-Space>, <M-Enter>, <M-=>, <M-->, <M-?>, <M-$>, ...
|
|
|
|
|
|
|
|
Note: Meta chords are case-sensitive (<M-a> is distinguished from <M-A>).
|
|
|
|
|
|
|
|
Some `CTRL-SHIFT-...` key chords are distinguished from `CTRL-...` variants
|
|
|
|
(even in the terminal). Specifically, the following are known to work:
|
|
|
|
<C-Tab>, <C-S-Tab>
|
|
|
|
<C-BS>, <C-S-BS>
|
|
|
|
<C-Enter>, <C-S-Enter>
|
|
|
|
|
|
|
|
Options:
|
|
|
|
'statusline' supports unlimited alignment sections
|
|
|
|
|
|
|
|
Commands:
|
|
|
|
|:CheckHealth|
|
|
|
|
|
|
|
|
Events:
|
|
|
|
|TabNew|
|
|
|
|
|TabNewEntered|
|
|
|
|
|TabClosed|
|
|
|
|
|TermOpen|
|
|
|
|
|TermClose|
|
|
|
|
|
|
|
|
Highlight groups:
|
|
|
|
|hl-EndOfBuffer|
|
|
|
|
|hl-TermCursor|
|
|
|
|
|hl-TermCursorNC|
|
|
|
|
|
|
|
|
==============================================================================
|
|
|
|
4. Changed features *nvim-features-changed*
|
2015-01-30 05:19:43 -07:00
|
|
|
|
|
|
|
Nvim always builds with all features, in contrast to Vim which may have
|
|
|
|
certain features removed/added at compile-time. This is like if Vim's "HUGE"
|
|
|
|
build was the only Vim release type (except Nvim is smaller than Vim's "HUGE"
|
|
|
|
build).
|
|
|
|
|
|
|
|
If a Python interpreter is available on your `$PATH`, |:python| and |:python3|
|
|
|
|
are always available and may be used simultaneously in separate plugins. The
|
|
|
|
`neovim` pip package must be installed to use Python plugins in Nvim (see
|
2016-06-14 22:53:00 -07:00
|
|
|
|provider-python|).
|
2015-01-30 05:19:43 -07:00
|
|
|
|
2015-07-18 02:23:42 -07:00
|
|
|
|mkdir()| behaviour changed:
|
2016-04-07 18:36:14 -07:00
|
|
|
1. Assuming /tmp/foo does not exist and /tmp can be written to
|
2015-07-18 02:23:42 -07:00
|
|
|
mkdir('/tmp/foo/bar', 'p', 0700) will create both /tmp/foo and /tmp/foo/bar
|
|
|
|
with 0700 permissions. Vim mkdir will create /tmp/foo with 0755.
|
2016-04-07 18:36:14 -07:00
|
|
|
2. If you try to create an existing directory with `'p'` (e.g. mkdir('/',
|
2015-07-18 02:23:42 -07:00
|
|
|
'p')) mkdir() will silently exit. In Vim this was an error.
|
|
|
|
3. mkdir() error messages now include strerror() text when mkdir fails.
|
|
|
|
|
2015-08-29 07:13:39 -07:00
|
|
|
'encoding' cannot be changed after startup.
|
|
|
|
|
2015-09-20 08:04:33 -07:00
|
|
|
|string()| and |:echo| behaviour changed:
|
2016-04-07 18:36:14 -07:00
|
|
|
1. No maximum recursion depth limit is applied to nested container
|
2015-09-20 08:04:33 -07:00
|
|
|
structures.
|
2016-04-07 18:36:14 -07:00
|
|
|
2. |string()| fails immediately on nested containers, not when recursion limit
|
2015-09-20 08:04:33 -07:00
|
|
|
was exceeded.
|
|
|
|
2. When |:echo| encounters duplicate containers like >
|
|
|
|
|
|
|
|
let l = []
|
|
|
|
echo [l, l]
|
|
|
|
<
|
2016-04-07 18:36:14 -07:00
|
|
|
it does not use "[...]" (was: "[[], [...]]", now: "[[], []]"). "..." is
|
2015-09-20 08:04:33 -07:00
|
|
|
only used for recursive containers.
|
2016-04-07 18:36:14 -07:00
|
|
|
3. |:echo| printing nested containers adds "@level" after "..." designating
|
|
|
|
the level at which recursive container was printed: |:echo-self-refer|.
|
|
|
|
Same thing applies to |string()| (though it uses construct like
|
|
|
|
"{E724@level}"), but this is not reliable because |string()| continues to
|
2015-09-20 08:04:33 -07:00
|
|
|
error out.
|
2016-04-07 18:36:14 -07:00
|
|
|
4. Stringifyed infinite and NaN values now use |str2float()| and can be evaled
|
2016-02-21 11:58:58 -07:00
|
|
|
back.
|
2016-02-06 10:54:42 -07:00
|
|
|
5. (internal) Trying to print or stringify VAR_UNKNOWN in Vim results in
|
|
|
|
nothing, |E908|, in Neovim it is internal error.
|
2015-09-20 08:04:33 -07:00
|
|
|
|
2016-02-13 11:39:28 -07:00
|
|
|
|json_decode()| behaviour changed:
|
2016-02-01 11:22:07 -07:00
|
|
|
1. It may output |msgpack-special-dict|.
|
2016-02-13 11:39:28 -07:00
|
|
|
2. |msgpack-special-dict| is emitted also in case of duplicate keys, while in
|
|
|
|
Vim it errors out.
|
|
|
|
3. It accepts only valid JSON. Trailing commas are not accepted.
|
2016-02-01 11:22:07 -07:00
|
|
|
|
2016-02-13 11:39:28 -07:00
|
|
|
|json_encode()| behaviour slightly changed: now |msgpack-special-dict| values
|
|
|
|
are accepted, but |v:none| is not.
|
|
|
|
|
|
|
|
*v:none* variable is absent. In Vim it represents “no value” in “js” strings
|
|
|
|
like "[,]" parsed as "[v:none]" by |js_decode()|.
|
|
|
|
|
|
|
|
*js_encode()* and *js_decode()* functions are also absent.
|
2016-02-05 16:46:23 -07:00
|
|
|
|
2016-04-07 18:36:14 -07:00
|
|
|
Viminfo text files were replaced with binary (messagepack) ShaDa files.
|
2015-07-05 04:08:50 -07:00
|
|
|
Additional differences:
|
|
|
|
|
|
|
|
- |shada-c| has no effect.
|
|
|
|
- |shada-s| now limits size of every item and not just registers.
|
2016-04-07 18:36:14 -07:00
|
|
|
- When reading ShaDa files items are merged according to the timestamp.
|
2015-08-15 04:50:04 -07:00
|
|
|
|shada-merging|
|
2016-04-07 18:36:14 -07:00
|
|
|
- 'viminfo' option got renamed to 'shada'. Old option is kept as an alias for
|
2015-07-05 16:26:44 -07:00
|
|
|
compatibility reasons.
|
2016-04-07 18:36:14 -07:00
|
|
|
- |:wviminfo| was renamed to |:wshada|, |:rviminfo| to |:rshada|. Old
|
2015-08-15 04:50:04 -07:00
|
|
|
commands are still kept.
|
2015-11-05 16:50:18 -07:00
|
|
|
- |:oldfiles| supports !.
|
2016-04-07 18:36:14 -07:00
|
|
|
- When writing (|:wshada| without bang or at exit) it merges much more data,
|
|
|
|
and does this according to the timestamp. Vim merges only marks.
|
2015-08-15 04:50:04 -07:00
|
|
|
|shada-merging|
|
2016-04-07 18:36:14 -07:00
|
|
|
- ShaDa file format was designed with forward and backward compatibility in
|
2015-07-26 11:02:56 -07:00
|
|
|
mind. |shada-compatibility|
|
2016-04-07 18:36:14 -07:00
|
|
|
- Some errors make ShaDa code keep temporary file in-place for user to decide
|
|
|
|
what to do with it. Vim deletes temporary file in these cases.
|
2015-08-15 04:50:04 -07:00
|
|
|
|shada-error-handling|
|
2016-04-07 18:36:14 -07:00
|
|
|
- Vim keeps no timestamps at all, neither in viminfo file nor in the instance
|
2015-08-15 04:50:04 -07:00
|
|
|
itself.
|
2015-11-01 11:26:53 -07:00
|
|
|
- ShaDa file keeps search direction (|v:searchforward|), viminfo does not.
|
2015-07-05 04:08:50 -07:00
|
|
|
|
2015-01-30 05:19:43 -07:00
|
|
|
==============================================================================
|
|
|
|
5. Missing legacy features *nvim-features-missing*
|
2015-06-24 17:22:56 -07:00
|
|
|
*if_ruby* *if_lua* *if_perl* *if_mzscheme* *if_tcl*
|
2015-01-30 05:19:43 -07:00
|
|
|
|
|
|
|
These legacy Vim features may be implemented in the future, but they are not
|
|
|
|
planned for the current milestone.
|
|
|
|
|
|
|
|
- vim.bindeval() (new feature in Vim 7.4 Python interface)
|
2015-06-24 17:22:56 -07:00
|
|
|
- |if_ruby|
|
|
|
|
- |if_lua|
|
|
|
|
- |if_perl|
|
|
|
|
- |if_mzscheme|
|
|
|
|
- |if_tcl|
|
2015-01-30 05:19:43 -07:00
|
|
|
|
|
|
|
==============================================================================
|
|
|
|
6. Removed features *nvim-features-removed*
|
|
|
|
|
|
|
|
These features are in Vim, but have been intentionally removed from Nvim.
|
|
|
|
|
2015-04-24 16:10:59 -07:00
|
|
|
Vi-compatible mode:
|
|
|
|
":set nocompatible" is ignored
|
|
|
|
":set compatible" is an error
|
2015-01-30 05:19:43 -07:00
|
|
|
|
2015-04-24 16:10:59 -07:00
|
|
|
Ed-compatible mode:
|
|
|
|
":set noedcompatible" is ignored
|
|
|
|
":set edcompatible" is an error
|
2015-01-30 05:19:43 -07:00
|
|
|
|
2015-04-24 16:10:59 -07:00
|
|
|
'ttyfast':
|
|
|
|
":set ttyfast" is ignored
|
|
|
|
":set nottyfast" is an error
|
2015-01-30 05:19:43 -07:00
|
|
|
|
2015-04-24 16:10:59 -07:00
|
|
|
Encryption support:
|
|
|
|
'cryptmethod'
|
|
|
|
'key'
|
2015-01-30 05:19:43 -07:00
|
|
|
|
2015-04-24 16:10:59 -07:00
|
|
|
MS-DOS support:
|
|
|
|
'bioskey'
|
|
|
|
'conskey'
|
2015-01-30 05:19:43 -07:00
|
|
|
|
2015-06-26 09:27:42 -07:00
|
|
|
Highlight groups:
|
|
|
|
|hl-VisualNOS|
|
|
|
|
|
2015-04-24 16:10:59 -07:00
|
|
|
Other options:
|
2015-11-24 14:46:52 -07:00
|
|
|
'antialias'
|
2015-07-03 02:33:48 -07:00
|
|
|
'cpoptions' ('g', 'w', 'H', '*', '-', 'j', and all POSIX flags were removed)
|
2015-07-15 19:45:14 -07:00
|
|
|
'guioptions' (only the 't' flag was removed)
|
2015-06-25 21:57:22 -07:00
|
|
|
'guipty'
|
2016-01-11 17:58:39 -07:00
|
|
|
'imactivatefunc'
|
|
|
|
'imactivatekey'
|
|
|
|
'imstatusfunc'
|
2015-05-07 08:20:38 -07:00
|
|
|
'macatsui'
|
2016-01-06 16:27:37 -07:00
|
|
|
'restorescreen'
|
2015-04-24 16:10:59 -07:00
|
|
|
'shelltype'
|
2015-05-05 19:00:43 -07:00
|
|
|
'shortname'
|
2016-01-13 19:08:32 -07:00
|
|
|
'swapsync'
|
2016-02-10 04:11:33 -07:00
|
|
|
'term'
|
2015-01-14 00:02:39 -07:00
|
|
|
'termencoding' (Vim 7.4.852 also removed this for Windows)
|
2015-04-24 16:10:59 -07:00
|
|
|
'textauto'
|
|
|
|
'textmode'
|
2015-09-17 08:19:46 -07:00
|
|
|
'toolbar'
|
|
|
|
'toolbariconsize'
|
2015-05-05 19:00:43 -07:00
|
|
|
'ttybuiltin'
|
2015-05-05 19:00:43 -07:00
|
|
|
'ttymouse'
|
2016-02-10 04:11:33 -07:00
|
|
|
'ttyscroll'
|
|
|
|
'ttytype'
|
2015-05-05 19:00:43 -07:00
|
|
|
'weirdinvert'
|
2015-01-30 05:19:43 -07:00
|
|
|
|
2015-04-24 16:10:59 -07:00
|
|
|
Other commands:
|
2015-07-19 03:14:26 -07:00
|
|
|
:Print
|
2015-04-24 16:10:59 -07:00
|
|
|
:fixdel
|
2016-01-11 17:58:39 -07:00
|
|
|
:helpfind
|
2015-07-14 04:53:45 -07:00
|
|
|
:mode (no longer accepts an argument)
|
2015-10-30 11:35:12 -07:00
|
|
|
:open
|
2015-04-24 16:10:59 -07:00
|
|
|
:shell
|
2015-07-14 04:53:45 -07:00
|
|
|
:tearoff
|
2015-01-30 05:19:43 -07:00
|
|
|
|
2015-04-24 16:10:59 -07:00
|
|
|
Other compile-time features:
|
|
|
|
EBCDIC
|
2015-05-15 22:33:26 -07:00
|
|
|
Emacs tags support
|
2015-11-09 23:45:03 -07:00
|
|
|
X11 integration (see |x11-selection|)
|
2015-01-30 05:19:43 -07:00
|
|
|
|
2015-05-07 08:20:38 -07:00
|
|
|
Nvim does not have a built-in GUI and hence the following aliases have been
|
|
|
|
removed: gvim, gex, gview, rgvim, rgview
|
|
|
|
|
2015-01-30 05:19:43 -07:00
|
|
|
"Easy mode" (eview, evim, nvim -y)
|
2015-04-24 16:10:59 -07:00
|
|
|
"(g)vimdiff" (alias for "(g)nvim -d" |diff-mode|)
|
2015-01-30 05:19:43 -07:00
|
|
|
"Vi mode" (nvim -v)
|
|
|
|
|
|
|
|
The ability to start nvim via the following aliases has been removed in favor
|
|
|
|
of just using their command line arguments:
|
|
|
|
|
|
|
|
ex nvim -e
|
|
|
|
exim nvim -E
|
|
|
|
view nvim -R
|
|
|
|
rvim nvim -Z
|
|
|
|
rview nvim -RZ
|
|
|
|
|
|
|
|
==============================================================================
|
|
|
|
vim:tw=78:ts=8:noet:ft=help:norl:
|