2017-03-21 17:08:19 +01:00
|
|
|
|
*vim_diff.txt* Nvim
|
2015-01-30 07:19:43 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
2017-05-01 17:09:29 +02:00
|
|
|
|
Type <M-]> to see the table of contents.
|
2015-01-30 07:19:43 -05:00
|
|
|
|
|
|
|
|
|
|
==============================================================================
|
|
|
|
|
|
1. Configuration *nvim-configuration*
|
|
|
|
|
|
|
2016-04-08 03:36:14 +02:00
|
|
|
|
- Use `$XDG_CONFIG_HOME/nvim/init.vim` instead of `.vimrc` for storing
|
2015-10-17 17:25:53 +03:00
|
|
|
|
configuration.
|
|
|
|
|
|
- Use `$XDG_CONFIG_HOME/nvim` instead of `.vim` to store configuration files.
|
2016-04-08 03:36:14 +02:00
|
|
|
|
- Use `$XDG_DATA_HOME/nvim/shada/main.shada` instead of `.viminfo` for persistent
|
2015-10-17 17:25:53 +03:00
|
|
|
|
session information.
|
2015-01-30 07:19:43 -05:00
|
|
|
|
|
|
|
|
|
|
==============================================================================
|
2015-05-16 04:10:38 -03:00
|
|
|
|
2. Defaults *nvim-defaults*
|
|
|
|
|
|
|
|
|
|
|
|
- Syntax highlighting is enabled by default
|
2016-04-11 01:59:32 -04:00
|
|
|
|
- ":filetype plugin indent on" is enabled by default
|
2015-01-30 07:19:43 -05:00
|
|
|
|
|
2015-07-14 13:53:45 +02:00
|
|
|
|
- 'autoindent' is set by default
|
2015-06-20 16:39:40 -03:00
|
|
|
|
- 'autoread' is set by default
|
2015-05-12 19:49:24 -04:00
|
|
|
|
- 'backspace' defaults to "indent,eol,start"
|
2016-10-06 09:45:24 +02:00
|
|
|
|
- 'backupdir' defaults to .,~/.local/share/nvim/backup (|xdg|)
|
2017-02-10 03:39:00 +01:00
|
|
|
|
- 'belloff' defaults to "all"
|
2015-06-18 17:11:51 -03:00
|
|
|
|
- 'complete' doesn't include "i"
|
2016-10-06 09:45:24 +02:00
|
|
|
|
- 'directory' defaults to ~/.local/share/nvim/swap// (|xdg|), auto-created
|
2015-06-20 14:17:26 -03:00
|
|
|
|
- 'display' defaults to "lastline"
|
2015-05-16 02:23:16 -03:00
|
|
|
|
- 'formatoptions' defaults to "tcqj"
|
2015-06-20 15:59:25 -03:00
|
|
|
|
- 'history' defaults to 10000 (the maximum)
|
2015-06-20 16:40:03 -04:00
|
|
|
|
- 'hlsearch' is set by default
|
2015-06-18 23:02:36 -03:00
|
|
|
|
- 'incsearch' is set by default
|
2017-04-01 17:33:32 +02:00
|
|
|
|
- 'langnoremap' is enabled by default
|
|
|
|
|
|
- 'langremap' is disabled by default
|
2015-06-20 18:45:03 -03:00
|
|
|
|
- 'laststatus' defaults to 2 (statusline is always shown)
|
2015-06-20 17:16:10 -03:00
|
|
|
|
- 'listchars' defaults to "tab:> ,trail:-,nbsp:+"
|
2015-05-12 19:49:24 -04:00
|
|
|
|
- 'nocompatible' is always set
|
2016-02-15 19:55:51 +01:00
|
|
|
|
- 'nrformats' defaults to "bin,hex"
|
2017-02-10 03:39:00 +01:00
|
|
|
|
- 'ruler' is set by default
|
2015-06-20 16:39:40 -03:00
|
|
|
|
- 'sessionoptions' doesn't include "options"
|
2017-02-10 03:39:00 +01:00
|
|
|
|
- 'showcmd' is set by default
|
2015-06-18 17:23:29 -03:00
|
|
|
|
- 'smarttab' is set by default
|
2015-06-20 16:10:29 -03:00
|
|
|
|
- 'tabpagemax' defaults to 50
|
2015-05-16 02:33:26 -03:00
|
|
|
|
- 'tags' defaults to "./tags;,tags"
|
2015-05-12 19:49:24 -04:00
|
|
|
|
- 'ttyfast' is always set
|
2016-10-06 09:45:24 +02:00
|
|
|
|
- 'undodir' defaults to ~/.local/share/nvim/undo (|xdg|), auto-created
|
2015-06-20 16:23:38 -03:00
|
|
|
|
- 'viminfo' includes "!"
|
2015-05-16 15:09:40 -03:00
|
|
|
|
- 'wildmenu' is set by default
|
2015-01-30 07:19:43 -05:00
|
|
|
|
|
|
|
|
|
|
==============================================================================
|
2016-06-15 21:33:47 -04:00
|
|
|
|
3. New Features *nvim-features*
|
|
|
|
|
|
|
2016-10-31 03:50:19 +01:00
|
|
|
|
MAJOR COMPONENTS ~
|
2016-06-15 21:33:47 -04:00
|
|
|
|
|
|
|
|
|
|
Embedded terminal emulator |terminal-emulator|
|
|
|
|
|
|
RPC API |RPC|
|
2016-08-10 00:47:04 -04:00
|
|
|
|
Shared data |shada|
|
|
|
|
|
|
XDG base directories |xdg|
|
2016-06-15 21:33:47 -04:00
|
|
|
|
Job control |job-control|
|
|
|
|
|
|
Remote plugins |remote-plugin|
|
|
|
|
|
|
Python plugins |provider-python|
|
|
|
|
|
|
Clipboard integration |provider-clipboard|
|
|
|
|
|
|
|
2016-10-16 03:54:22 +02:00
|
|
|
|
USER EXPERIENCE ~
|
|
|
|
|
|
|
2017-01-04 05:32:46 +01:00
|
|
|
|
Working intuitively and consistently is a major goal of Nvim. Examples:
|
2016-10-16 03:54:22 +02:00
|
|
|
|
|
2017-01-04 05:32:46 +01:00
|
|
|
|
- Nvim does not have `-X`, a platform-specific option "sometimes" available in
|
|
|
|
|
|
Vim (with potential surprises: http://stackoverflow.com/q/14635295). Nvim
|
|
|
|
|
|
avoids features that cannot be provided on all platforms--instead that is
|
|
|
|
|
|
delegated to external plugins/extensions.
|
|
|
|
|
|
|
|
|
|
|
|
- Test-only globals and functions such as test_autochdir(), test_settime(),
|
|
|
|
|
|
etc., are not exposed (because they don't exist).
|
2016-10-16 03:54:22 +02:00
|
|
|
|
|
2016-10-31 03:50:19 +01:00
|
|
|
|
ARCHITECTURE ~
|
2016-06-15 21:33:47 -04:00
|
|
|
|
|
2016-10-31 03:50:19 +01:00
|
|
|
|
External plugins run in separate processes. |remote-plugin| This improves
|
2017-05-20 23:49:46 +02:00
|
|
|
|
stability and allows those plugins to work without blocking the editor. Even
|
|
|
|
|
|
"legacy" Python and Ruby plugins which use the old Vim interfaces (|if_py| and
|
|
|
|
|
|
|if_ruby|) run out-of-process.
|
2016-10-31 03:50:19 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FEATURES ~
|
2016-06-15 21:33:47 -04:00
|
|
|
|
|
2017-05-01 17:09:29 +02:00
|
|
|
|
"Outline": Type <M-]> in |:Man| and |:help| pages to see a document outline.
|
2016-06-15 21:33:47 -04:00
|
|
|
|
|
2016-10-31 03:50:19 +01:00
|
|
|
|
|META| (ALT) chords are recognized, even in the terminal. Any |<M-| mapping
|
|
|
|
|
|
will work. Some examples: <M-1>, <M-2>, <M-BS>, <M-Del>, <M-Ins>, <M-/>,
|
|
|
|
|
|
<M-\>, <M-Space>, <M-Enter>, <M-=>, <M-->, <M-?>, <M-$>, ...
|
|
|
|
|
|
META chords are case-sensitive: <M-a> and <M-A> are two different keycodes.
|
2016-06-15 21:33:47 -04:00
|
|
|
|
|
|
|
|
|
|
Some `CTRL-SHIFT-...` key chords are distinguished from `CTRL-...` variants
|
|
|
|
|
|
(even in the terminal). Specifically, the following are known to work:
|
2016-10-31 03:50:19 +01:00
|
|
|
|
<C-Tab>, <C-S-Tab>, <C-BS>, <C-S-BS>, <C-Enter>, <C-S-Enter>
|
2016-06-15 21:33:47 -04:00
|
|
|
|
|
|
|
|
|
|
Options:
|
2017-03-07 23:26:21 +01:00
|
|
|
|
'cpoptions' flags: |cpo-_|
|
2017-04-01 13:08:42 +02:00
|
|
|
|
'guicursor' works in the terminal
|
2017-02-02 13:16:15 +01:00
|
|
|
|
'inccommand' shows interactive results for |:substitute|-like commands
|
2017-05-15 14:53:31 +02:00
|
|
|
|
'scrollback'
|
2016-06-15 21:33:47 -04:00
|
|
|
|
'statusline' supports unlimited alignment sections
|
2016-10-19 15:43:04 +02:00
|
|
|
|
'tabline' %@Func@foo%X can call any function on mouse-click
|
2017-05-15 14:53:31 +02:00
|
|
|
|
'winhighlight' window-local highlights
|
2016-10-19 15:43:04 +02:00
|
|
|
|
|
|
|
|
|
|
Variables:
|
2016-10-28 05:07:51 +02:00
|
|
|
|
|v:event|
|
2017-03-13 14:07:55 +01:00
|
|
|
|
|v:exiting|
|
2017-02-02 13:16:15 +01:00
|
|
|
|
|v:progpath| is always absolute ("full")
|
2016-10-19 15:43:04 +02:00
|
|
|
|
|v:windowid| is always available (for use by external UIs)
|
2016-06-15 21:33:47 -04:00
|
|
|
|
|
|
|
|
|
|
Commands:
|
|
|
|
|
|
|:CheckHealth|
|
2016-10-17 23:56:39 +02:00
|
|
|
|
|:drop| is available on all platforms
|
2016-08-07 23:17:56 -04:00
|
|
|
|
|:Man| is available by default, with many improvements such as completion
|
2016-06-15 21:33:47 -04:00
|
|
|
|
|
2016-06-26 18:26:10 -04:00
|
|
|
|
Functions:
|
2016-10-19 15:43:04 +02:00
|
|
|
|
|dictwatcheradd()| notifies a callback whenever a |Dict| is modified
|
|
|
|
|
|
|dictwatcherdel()|
|
2016-07-31 13:23:29 -04:00
|
|
|
|
|execute()| works with |:redir|
|
2017-07-28 02:31:03 +02:00
|
|
|
|
|menu_get()|
|
2016-10-19 15:43:04 +02:00
|
|
|
|
|msgpackdump()|, |msgpackparse()| provide msgpack de/serialization
|
2016-06-26 18:26:10 -04:00
|
|
|
|
|
2016-06-15 21:33:47 -04:00
|
|
|
|
Events:
|
2017-01-13 11:03:43 +01:00
|
|
|
|
|DirChanged|
|
2016-06-15 21:33:47 -04:00
|
|
|
|
|TabNewEntered|
|
|
|
|
|
|
|TermClose|
|
2016-10-31 03:50:19 +01:00
|
|
|
|
|TermOpen|
|
2016-08-20 19:37:18 -04:00
|
|
|
|
|TextYankPost|
|
2016-06-15 21:33:47 -04:00
|
|
|
|
|
|
|
|
|
|
Highlight groups:
|
2016-08-22 04:51:32 -04:00
|
|
|
|
|hl-QuickFixLine|
|
2016-10-31 03:50:19 +01:00
|
|
|
|
|hl-Substitute|
|
2016-06-15 21:33:47 -04:00
|
|
|
|
|hl-TermCursor|
|
|
|
|
|
|
|hl-TermCursorNC|
|
2017-03-26 03:15:52 -07:00
|
|
|
|
|hl-Whitespace| highlights 'listchars' whitespace
|
2016-06-15 21:33:47 -04:00
|
|
|
|
|
|
|
|
|
|
==============================================================================
|
|
|
|
|
|
4. Changed features *nvim-features-changed*
|
2015-01-30 07:19:43 -05: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-15 01:53:00 -04:00
|
|
|
|
|provider-python|).
|
2015-01-30 07:19:43 -05:00
|
|
|
|
|
2017-05-24 21:09:25 +01:00
|
|
|
|
Because of general |256-color| usage whereever possible, Nvim will even use
|
|
|
|
|
|
256-colour capability on Linux virtual terminals. Vim uses only 8 colours
|
|
|
|
|
|
plus bright foreground on Linux VTs.
|
|
|
|
|
|
|
2017-05-29 08:02:39 +01:00
|
|
|
|
Vim combines what is in its |builtin-terms| with what it reads from termcap,
|
|
|
|
|
|
and has a |ttybuiltin| setting to control how that combination works. Nvim
|
|
|
|
|
|
uses either one or the other of an external |terminfo| entry or the built-in
|
|
|
|
|
|
one. It does not attempt to mix data from the two.
|
|
|
|
|
|
|
system('foo &', 'bar'): Show error, don't crash.
Closes #3529
Closes #5241
In Vim,
:echo system('cat - &', 'foo')
works because for both system() and :! Vim writes input to a temp file and uses
shell syntax to redirect the file to the backgrounded `cat` (get_cmd_output()
.. make_filter_cmd()).
In Nvim,
:echo system('cat - &', 'foo')
fails because we write the input directly via pipes (shell.c:do_os_system()),
but (per POSIX[1]) backgrounded process input stream is redirected from
/dev/null (unless overridden by shell redirection; supported only by some shells
[2]), so our writes are ignored, the process exits quickly, and if we are
writing data larger than the buffer size we'll see EPIPE.
This still works:
:%w !tee > foo1358.txt &
but this does not:
:%w !tee foo1358.txt &
though it *should* (why doesn't it?) because we still do the temp file dance
in do_bang() .. do_filter().
[1] http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_09_03_02
[2] http://unix.stackexchange.com/a/71218
2016-10-18 14:39:08 +02:00
|
|
|
|
|:!| does not support "interactive" commands. Use |:terminal| instead.
|
|
|
|
|
|
(GUI Vim has a similar limitation, see ":help gui-pty" in Vim.)
|
|
|
|
|
|
|
|
|
|
|
|
|system()| does not support writing/reading "backgrounded" commands. |E5677|
|
2016-06-26 18:26:10 -04:00
|
|
|
|
|
2016-10-07 13:18:24 +02:00
|
|
|
|
Nvim may throttle (skip) messages from shell commands (|:!|, |:grep|, |:make|)
|
|
|
|
|
|
if there is too much output. No data is lost, this only affects display and
|
|
|
|
|
|
makes things faster. |:terminal| output is never throttled.
|
2016-09-30 02:33:50 +02:00
|
|
|
|
|
2015-07-18 12:23:42 +03:00
|
|
|
|
|mkdir()| behaviour changed:
|
2016-04-08 03:36:14 +02:00
|
|
|
|
1. Assuming /tmp/foo does not exist and /tmp can be written to
|
2015-07-18 12:23:42 +03: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-08 03:36:14 +02:00
|
|
|
|
2. If you try to create an existing directory with `'p'` (e.g. mkdir('/',
|
2015-07-18 12:23:42 +03:00
|
|
|
|
'p')) mkdir() will silently exit. In Vim this was an error.
|
|
|
|
|
|
3. mkdir() error messages now include strerror() text when mkdir fails.
|
|
|
|
|
|
|
2016-01-27 12:20:44 +01:00
|
|
|
|
'encoding' is always "utf-8".
|
2015-08-29 16:13:39 +02:00
|
|
|
|
|
2015-09-20 18:04:33 +03:00
|
|
|
|
|string()| and |:echo| behaviour changed:
|
2016-04-08 03:36:14 +02:00
|
|
|
|
1. No maximum recursion depth limit is applied to nested container
|
2015-09-20 18:04:33 +03:00
|
|
|
|
structures.
|
2016-04-08 03:36:14 +02:00
|
|
|
|
2. |string()| fails immediately on nested containers, not when recursion limit
|
2015-09-20 18:04:33 +03:00
|
|
|
|
was exceeded.
|
|
|
|
|
|
2. When |:echo| encounters duplicate containers like >
|
|
|
|
|
|
|
|
|
|
|
|
let l = []
|
|
|
|
|
|
echo [l, l]
|
|
|
|
|
|
<
|
2016-04-08 03:36:14 +02:00
|
|
|
|
it does not use "[...]" (was: "[[], [...]]", now: "[[], []]"). "..." is
|
2015-09-20 18:04:33 +03:00
|
|
|
|
only used for recursive containers.
|
2016-04-08 03:36:14 +02: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 18:04:33 +03:00
|
|
|
|
error out.
|
2016-04-08 03:36:14 +02:00
|
|
|
|
4. Stringifyed infinite and NaN values now use |str2float()| and can be evaled
|
2016-02-21 21:58:58 +03:00
|
|
|
|
back.
|
2016-02-06 20:54:42 +03: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 18:04:33 +03:00
|
|
|
|
|
2016-02-13 21:39:28 +03:00
|
|
|
|
|json_decode()| behaviour changed:
|
2016-02-01 21:22:07 +03:00
|
|
|
|
1. It may output |msgpack-special-dict|.
|
2016-02-13 21:39:28 +03: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 21:22:07 +03:00
|
|
|
|
|
2016-02-13 21:39:28 +03: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-06 02:46:23 +03:00
|
|
|
|
|
2016-04-08 03:36:14 +02:00
|
|
|
|
Viminfo text files were replaced with binary (messagepack) ShaDa files.
|
2015-07-05 14:08:50 +03:00
|
|
|
|
Additional differences:
|
|
|
|
|
|
|
|
|
|
|
|
- |shada-c| has no effect.
|
|
|
|
|
|
- |shada-s| now limits size of every item and not just registers.
|
2016-04-08 03:36:14 +02:00
|
|
|
|
- 'viminfo' option got renamed to 'shada'. Old option is kept as an alias for
|
2015-07-06 02:26:44 +03:00
|
|
|
|
compatibility reasons.
|
2016-04-08 03:36:14 +02:00
|
|
|
|
- |:wviminfo| was renamed to |:wshada|, |:rviminfo| to |:rshada|. Old
|
2015-08-15 14:50:04 +03:00
|
|
|
|
commands are still kept.
|
2016-04-08 03:36:14 +02:00
|
|
|
|
- ShaDa file format was designed with forward and backward compatibility in
|
2015-07-26 21:02:56 +03:00
|
|
|
|
mind. |shada-compatibility|
|
2016-04-08 03:36:14 +02: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 14:50:04 +03:00
|
|
|
|
|shada-error-handling|
|
2015-11-01 21:26:53 +03:00
|
|
|
|
- ShaDa file keeps search direction (|v:searchforward|), viminfo does not.
|
2015-07-05 14:08:50 +03:00
|
|
|
|
|
2017-02-11 21:47:02 +03:00
|
|
|
|
|printf()| returns something meaningful when used with `%p` argument: in Vim
|
|
|
|
|
|
it used to return useless address of the string (strings are copied to the
|
|
|
|
|
|
newly allocated memory all over the place) and fail on types which cannot be
|
|
|
|
|
|
coerced to strings. See |id()| for more details, currently it uses
|
|
|
|
|
|
`printf("%p", {expr})` internally.
|
|
|
|
|
|
|
2017-02-18 23:15:27 +01:00
|
|
|
|
|c_CTRL-R| pasting a non-special register into |cmdline| omits the last <CR>.
|
2017-02-18 02:39:07 +01:00
|
|
|
|
|
2017-01-29 22:07:24 +03:00
|
|
|
|
Lua interface (|if_lua.txt|):
|
|
|
|
|
|
|
|
|
|
|
|
- `:lua print("a\0b")` will print `a^@b`, like with `:echomsg "a\nb"` . In Vim
|
|
|
|
|
|
that prints `a` and `b` on separate lines, exactly like
|
|
|
|
|
|
`:lua print("a\nb")` .
|
|
|
|
|
|
- `:lua error('TEST')` will print “TEST” as the error in Vim and “E5105: Error
|
|
|
|
|
|
while calling lua chunk: [string "<VimL compiled string>"]:1: TEST” in
|
|
|
|
|
|
Neovim.
|
2017-05-11 17:45:11 +02:00
|
|
|
|
- Lua has direct access to Nvim |API| via `vim.api`.
|
2017-05-23 00:46:57 +03:00
|
|
|
|
- Lua package.path and package.cpath are automatically updated according to
|
|
|
|
|
|
'runtimepath': |lua-require|.
|
2017-05-11 17:45:11 +02:00
|
|
|
|
- Currently, most legacy Vim features are missing.
|
2017-01-29 22:07:24 +03:00
|
|
|
|
|
2017-05-13 18:16:41 +03:00
|
|
|
|
|input()| and |inputdialog()| gained support for each other’s features (return
|
|
|
|
|
|
on cancel and completion respectively) via dictionary argument (replaces all
|
|
|
|
|
|
other arguments if used).
|
|
|
|
|
|
|
2015-01-30 07:19:43 -05:00
|
|
|
|
==============================================================================
|
|
|
|
|
|
5. Missing legacy features *nvim-features-missing*
|
|
|
|
|
|
|
2017-05-11 17:45:11 +02:00
|
|
|
|
Some legacy Vim features are not implemented:
|
2015-01-30 07:19:43 -05:00
|
|
|
|
|
2016-11-03 12:09:22 -07:00
|
|
|
|
- |if_py|: vim.bindeval() and vim.Function() are not supported
|
2017-05-11 17:45:11 +02:00
|
|
|
|
- |if_lua|: the `vim` object currently only supports `vim.api`
|
|
|
|
|
|
- *if_perl*
|
|
|
|
|
|
- *if_mzscheme*
|
|
|
|
|
|
- *if_tcl*
|
2015-01-30 07:19:43 -05:00
|
|
|
|
|
|
|
|
|
|
==============================================================================
|
|
|
|
|
|
6. Removed features *nvim-features-removed*
|
|
|
|
|
|
|
|
|
|
|
|
These features are in Vim, but have been intentionally removed from Nvim.
|
|
|
|
|
|
|
2016-09-24 15:07:49 +02:00
|
|
|
|
*'cp'* *'nocompatible'* *'nocp'* *'compatible'*
|
|
|
|
|
|
Nvim is always "non-compatible" with Vi.
|
2015-04-24 19:10:59 -04:00
|
|
|
|
":set nocompatible" is ignored
|
|
|
|
|
|
":set compatible" is an error
|
2015-01-30 07:19:43 -05:00
|
|
|
|
|
2016-09-24 15:07:49 +02:00
|
|
|
|
*'ed'* *'edcompatible'* *'noed'* *'noedcompatible'*
|
2015-04-24 19:10:59 -04:00
|
|
|
|
Ed-compatible mode:
|
|
|
|
|
|
":set noedcompatible" is ignored
|
|
|
|
|
|
":set edcompatible" is an error
|
2015-01-30 07:19:43 -05:00
|
|
|
|
|
2017-04-29 16:56:40 +02:00
|
|
|
|
*t_xx* *:set-termcap* *termcap-options* *t_AB* *t_Sb* *t_vb* *t_SI*
|
|
|
|
|
|
Nvim does not have special `t_XX` options nor <t_XX> keycodes to configure
|
|
|
|
|
|
terminal capabilities. Instead Nvim treats the terminal as any other UI. For
|
|
|
|
|
|
example, 'guicursor' sets the terminal cursor style if possible.
|
|
|
|
|
|
|
2017-06-16 15:57:19 +01:00
|
|
|
|
*'term'* *E529* *E530* *E531*
|
|
|
|
|
|
The 'term' option has a fixed value, present only for script compatibility and
|
|
|
|
|
|
intentionally not the same as any known terminal type name. It should be a
|
|
|
|
|
|
rare case in Nvim where one needs |term-dependent-settings|, for which use the
|
|
|
|
|
|
|TERM| environment variable.
|
|
|
|
|
|
|
2017-05-24 21:09:25 +01:00
|
|
|
|
*termcap*
|
|
|
|
|
|
Nvim never uses the termcap database and only uses |terminfo|. See
|
|
|
|
|
|
|builtin-terms| for what happens on operating systems without a terminfo
|
|
|
|
|
|
database.
|
|
|
|
|
|
|
2017-05-24 19:56:12 +01:00
|
|
|
|
*xterm-8bit* *xterm-8-bit*
|
|
|
|
|
|
Xterm can be run in a mode where it uses true 8-bit CSI. Supporting this
|
|
|
|
|
|
requires autodetection of whether the terminal is in UTF-8 mode or non-UTF-8
|
|
|
|
|
|
mode, as the 8-bit CSI character has to be written differently in each case.
|
|
|
|
|
|
Vim issues a "request version" sequence to the terminal at startup and looks
|
|
|
|
|
|
at how the terminal is sending CSI. Nvim does not issue such a sequence and
|
|
|
|
|
|
always uses 7-bit control sequences.
|
|
|
|
|
|
|
2015-04-24 19:10:59 -04:00
|
|
|
|
'ttyfast':
|
|
|
|
|
|
":set ttyfast" is ignored
|
|
|
|
|
|
":set nottyfast" is an error
|
2015-01-30 07:19:43 -05:00
|
|
|
|
|
2015-04-24 19:10:59 -04:00
|
|
|
|
Encryption support:
|
2016-09-24 15:07:49 +02:00
|
|
|
|
*'cryptmethod'* *'cm'*
|
|
|
|
|
|
*'key'*
|
2015-01-30 07:19:43 -05:00
|
|
|
|
|
2015-04-24 19:10:59 -04:00
|
|
|
|
MS-DOS support:
|
|
|
|
|
|
'bioskey'
|
|
|
|
|
|
'conskey'
|
2015-01-30 07:19:43 -05:00
|
|
|
|
|
2017-01-04 05:32:46 +01:00
|
|
|
|
Test functions:
|
|
|
|
|
|
test_alloc_fail()
|
|
|
|
|
|
test_autochdir()
|
|
|
|
|
|
test_disable_char_avail()
|
|
|
|
|
|
test_garbagecollect_now()
|
|
|
|
|
|
test_null_channel()
|
|
|
|
|
|
test_null_dict()
|
|
|
|
|
|
test_null_job()
|
|
|
|
|
|
test_null_list()
|
|
|
|
|
|
test_null_partial()
|
|
|
|
|
|
test_null_string()
|
|
|
|
|
|
test_settime()
|
|
|
|
|
|
|
2015-04-24 19:10:59 -04:00
|
|
|
|
Other options:
|
2015-11-24 16:46:52 -05:00
|
|
|
|
'antialias'
|
2017-07-02 13:21:38 +02:00
|
|
|
|
'cpoptions' (g j k H w < * - and all POSIX flags were removed)
|
2016-01-27 12:20:44 +01:00
|
|
|
|
'encoding' ("utf-8" is always used)
|
2017-02-18 14:01:20 +01:00
|
|
|
|
'esckeys'
|
2016-09-24 15:07:49 +02:00
|
|
|
|
'guioptions' "t" flag was removed
|
|
|
|
|
|
*'guipty'* (Nvim uses pipes and PTYs consistently on all platforms.)
|
2017-05-15 14:53:31 +02:00
|
|
|
|
'highlight' (the builtin |highlight-groups| cannot be changed)
|
2016-09-24 15:07:49 +02:00
|
|
|
|
*'imactivatefunc'* *'imaf'*
|
|
|
|
|
|
*'imactivatekey'* *'imak'*
|
|
|
|
|
|
*'imstatusfunc'* *'imsf'*
|
|
|
|
|
|
*'macatsui'*
|
|
|
|
|
|
*'restorescreen'* *'rs'* *'norestorescreen'* *'nors'*
|
2015-04-24 19:10:59 -04:00
|
|
|
|
'shelltype'
|
2016-09-24 15:07:49 +02:00
|
|
|
|
*'shortname'* *'sn'* *'noshortname'* *'nosn'*
|
|
|
|
|
|
*'swapsync'* *'sws'*
|
|
|
|
|
|
*'termencoding'* *'tenc'* (Vim 7.4.852 also removed this for Windows)
|
2015-04-24 19:10:59 -04:00
|
|
|
|
'textauto'
|
|
|
|
|
|
'textmode'
|
2016-09-24 15:07:49 +02:00
|
|
|
|
*'toolbar'* *'tb'*
|
|
|
|
|
|
*'toolbariconsize'* *'tbis'*
|
|
|
|
|
|
*'ttybuiltin'* *'tbi'* *'nottybuiltin'* *'notbi'*
|
|
|
|
|
|
*'ttymouse'* *'ttym'*
|
|
|
|
|
|
*'ttyscroll'* *'tsl'*
|
|
|
|
|
|
*'ttytype'* *'tty'*
|
2015-05-05 22:00:43 -04:00
|
|
|
|
'weirdinvert'
|
2015-01-30 07:19:43 -05:00
|
|
|
|
|
2015-04-24 19:10:59 -04:00
|
|
|
|
Other commands:
|
2015-07-19 06:14:26 -04:00
|
|
|
|
:Print
|
2015-04-24 19:10:59 -04:00
|
|
|
|
:fixdel
|
2016-01-11 19:58:39 -05:00
|
|
|
|
:helpfind
|
2015-07-14 13:53:45 +02:00
|
|
|
|
:mode (no longer accepts an argument)
|
2015-10-30 14:35:12 -04:00
|
|
|
|
:open
|
2015-04-24 19:10:59 -04:00
|
|
|
|
:shell
|
2016-10-31 03:50:19 +01:00
|
|
|
|
:smile
|
2015-07-14 13:53:45 +02:00
|
|
|
|
:tearoff
|
2015-01-30 07:19:43 -05:00
|
|
|
|
|
2015-04-24 19:10:59 -04:00
|
|
|
|
Other compile-time features:
|
|
|
|
|
|
EBCDIC
|
2015-05-16 02:33:26 -03:00
|
|
|
|
Emacs tags support
|
2015-11-10 01:45:03 -05:00
|
|
|
|
X11 integration (see |x11-selection|)
|
2015-01-30 07:19:43 -05:00
|
|
|
|
|
2015-05-07 17:20:38 +02: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 07:19:43 -05:00
|
|
|
|
"Easy mode" (eview, evim, nvim -y)
|
2015-04-24 19:10:59 -04:00
|
|
|
|
"(g)vimdiff" (alias for "(g)nvim -d" |diff-mode|)
|
2015-01-30 07:19:43 -05: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:
|