Home Explore Blog CI



neovim

10th chunk of `runtime/doc/vim_diff.txt`
9f328fe027b352a0dc5f4401faa9e6366b24ce76a014d3360000000100000fa8
 after/syntax/syncolor.vim file should transition that file into a
  colorscheme. |:colorscheme|

Vimscript compatibility:
- `count` does not alias to |v:count|
- `errmsg` does not alias to |v:errmsg|
- `shell_error` does not alias to |v:shell_error|
- `this_session` does not alias to |v:this_session|

Working directory (Vim implemented some of these after Nvim):
- |DirChanged| and |DirChangedPre| can be triggered when switching to another
  window or tab.
- |getcwd()| and |haslocaldir()| may throw errors if the tab page or window
  cannot be found.  *E5000* *E5001* *E5002*
- |haslocaldir()| checks for tab-local directory if and only if -1 is passed as
  window number, and its only possible returns values are 0 and 1.
- `getcwd(-1)` is equivalent to `getcwd(-1, 0)` instead of returning the global
  working directory. Use `getcwd(-1, -1)` to get the global working directory.

Options:
- 'titlestring' uses printf-style '%' items (see: 'statusline') to implement
  the default behaviour. The implementation is equivalent to setting
  'titlestring' to `%t%(\ %M%)%(\ \(%{expand(\"%:~:h\")}\)%)%a\ -\ Nvim`.

==============================================================================
Missing features                                         *nvim-missing*

These legacy Vim features are not yet implemented:

- *:gui*
- *:gvim*
- *'browsedir'* *'bsdir'*
- *'completepopup'*
- *'guioptions'* *'go'*
- *'guitablabel'* *'gtl'*
- *'guitabtooltip'* *'gtt'*
- *'mouseshape'* *'mouses'*
- *'previewpopup'*

==============================================================================
Removed legacy features                                  *nvim-removed*

These Vim features were intentionally removed from Nvim.

Aliases:
- ex        (alias for "nvim -e")
- exim      (alias for "nvim -E")
- gex       (GUI)
- gview     (GUI)
- gvim      (GUI)
- gvimdiff  (GUI)
- rgview    (GUI)
- rgvim     (GUI)
- rview
- rvim
- view      (alias for "nvim -R")
- vimdiff   (alias for "nvim -d" |diff-mode|)

Commands:
- :behave
- :fixdel
- *hardcopy* `:hardcopy` was removed. Instead, use `:TOhtml` and print the
  resulting HTML using a web browser or other HTML viewer.
- :helpfind
- :mode (no longer accepts an argument)
- :open
- :Print
- :promptfind
- :promptrepl
- :scriptversion (always version 1)
- :shell
- :smile
- :tearoff
- :cstag
- :cscope
- :lcscope
- :scscope
- :Vimuntar
- `:TOhtml` was replaced by a Lua version (with various differences)

Compile-time features:
- Emacs tags support
- X11 integration (see |x11-selection|)

Cscope:
                                                                      *cscope*
- Cscope support was removed in favour of plugin-based solutions such as:
  https://github.com/dhananjaylatkar/cscope_maps.nvim

Eval:
- *Vim9script* (the Vim 9+ flavor of Vimscript) is not supported.
- *cscope_connection()*
- *err_teapot()*
- *js_encode()*
- *js_decode()*
- *v:none* (used by Vim to represent JavaScript "undefined"); use |v:null| instead.
- *v:sizeofint*
- *v:sizeoflong*
- *v:sizeofpointer*

Events:
- *SafeStateAgain*
- *SigUSR1* Use |Signal| to detect `SIGUSR1` signal instead.

Options:
- *'aleph'* *'al'*
- antialias
- 'backspace' no longer supports number values. Instead:
    - for `backspace=0` set `backspace=` (empty)
    - for `backspace=1` set `backspace=indent,eol`
    - for `backspace=2` set `backspace=indent,eol,start` (default behavior in Nvim)
    - for `backspace=3` set `backspace=indent,eol,nostop`
- *'balloondelay'* *'bdlay'*
- *'ballooneval'* *'beval'* *'noballooneval'* *'nobeval'*
- *'balloonexpr'* *'bexpr'*
- bioskey (MS-DOS)
- conskey (MS-DOS)
- *'cp'* *'nocompatible'* *'nocp'* *'compatible'* (Nvim is always "nocompatible".)
- 'cpoptions' (gjpkHw<*- and all POSIX flags were removed)
- *'cryptmethod'* *'cm'* *'key'* (Vim encryption implementation)
- cscopepathcomp
- cscopeprg
- cscopequickfix
- cscoperelative
- cscopetag
- cscopetagorder
- cscopeverbose
- *'ed'* *'edcompatible'* *'noed'* *'noedcompatible'*
- 'encoding' ("utf-8"

Title: Nvim's Compatibility: Vimscript, Working Directory, Options, Missing & Removed Legacy Features
Summary
This section covers Vimscript compatibility (no aliases for count, errmsg, etc.), working directory behavior changes (DirChanged, getcwd, haslocaldir), 'titlestring' option implementation, missing legacy Vim features (GUI, 'browsedir', 'completepopup' etc.), and removed Vim features (aliases like ex, gvim, commands like :behave, :hardcopy, compile-time features like Emacs tags, Cscope, Eval, various events and options).