Home Explore Blog CI



neovim

6th chunk of `runtime/doc/vim_diff.txt`
588237eee699c882cbe1719bb904704f310a8ee6011f3d7c0000000100000faa
 to empty.
- 'cpoptions'   flags: |cpo-_|
- 'eadirection' cannot be set to empty.
- 'exrc'        searches for ".nvim.lua", ".nvimrc", or ".exrc" files. The
                user is prompted whether to trust the file.
- 'fileformat'  cannot be set to empty.
- 'fillchars'   flags: "msgsep", "horiz", "horizup", "horizdown",
                "vertleft", "vertright", "verthoriz"
- 'foldcolumn'  supports up to 9 dynamic/fixed columns
- 'guicursor'   works in the terminal (TUI)
- 'inccommand'  shows interactive results for |:substitute|-like commands
                and |:command-preview| commands
- 'jumpoptions'
    - "view" tries to restore |mark-view| when moving through the jumplist.
    - "clean" removes unloaded buffers from the jumplist.
- the |jumplist|, |changelist|, |alternate-file| or using |mark-motions|.
- 'laststatus'  global statusline support
- 'mousemodel'  cannot be set to empty.
- 'mousescroll' amount to scroll by when scrolling with a mouse
- 'pumblend'    pseudo-transparent popupmenu
- 'scrollback'
- 'shortmess'
    - "F" flag does not affect output from autocommands.
    - "q" flag fully hides macro recording message.
- 'showcmdloc'  cannot be set to empty.
- 'signcolumn'  can show multiple signs (dynamic or fixed columns)
- 'statuscolumn' full control of columns using 'statusline' format
- 'statusline' default is exposed as a statusline expression.
- 'splitkeep'   cannot be set to empty.
- 'tabline'     middle-click on tabpage label closes tabpage,
                and %@Func@foo%X can call any function on mouse-click
- 'termpastefilter'
- 'ttimeout', 'ttimeoutlen' behavior was simplified
- 'winblend'    pseudo-transparency in floating windows |api-floatwin|
- 'winhighlight' window-local highlights

Performance:
- Signs are implemented using Nvim's internal "marktree" (btree) structure.
- Folds are not updated during insert-mode.

Providers:
- If a Python interpreter is available on your `$PATH`, |:python| and
  |:python3| are always available. See |provider-python|.

Shell:
- Shell output (|:!|, |:make|, …) is always routed through the UI, so it
  cannot "mess up" the screen. (You can still use "chansend(v:stderr,…)" if
  you want to mess up the screen :)
- Nvim throttles (skips) messages from shell commands (|:!|, |:grep|, |:make|)
  if there is too much output. No data is lost, this only affects display and
  improves performance. |:terminal| output is never throttled.
- |:!| does not support "interactive" commands. Use |:terminal| instead.
  (GUI Vim has a similar limitation, see ":help gui-pty" in Vim.)
- :!start is not special-cased on Windows.
- |system()| does not support writing/reading "backgrounded" commands. |E5677|

Signs:
- 'signcolumn' can show multiple signs.
- Signs are removed if the associated line is deleted.
- Signs placed twice with the same identifier in the same group are moved.

Startup:
- |-e| and |-es| invoke the same "improved Ex mode" as -E and -Es.
- |-E| and |-Es| read stdin as text (into buffer 1).
- |-es| and |-Es| have improved behavior:
    - Quits automatically, don't need "-c qa!".
    - Skips swap-file dialog.
    - Optimized for non-interactive scripts: disables swapfile, shada.
- |-l| Executes Lua scripts non-interactively.
- |-s| reads Normal commands from stdin if the script name is "-".
- Reading text (instead of commands) from stdin |--|:
    - works by default: "-" file is optional
    - works in more cases: |-Es|, file args

TUI:
                        *:set-termcap*
- Start Nvim with 'verbose' level 3 to show terminal capabilities: >
        nvim -V3
<
                        *'term'* *E529* *E530* *E531*
- 'term' reflects the terminal type derived from |$TERM| and other environment
  checks.  Use `:echo &term` to get its value. For debugging only; not
  reliable during startup.
  - Note: If you want to detect when Nvim is running in a terminal, use
    `has('gui_running')` |has()| or see |nvim_list_uis()| for an example of
    how to inspect the UI channel.
- "builtin_x"

Title: Nvim Options, Performance, Providers, Shell, Signs, Startup, and TUI
Summary
This section details several Nvim features including options like 'cpoptions', 'eadirection', 'exrc', 'fileformat', 'fillchars', 'foldcolumn', 'guicursor', 'inccommand', 'jumpoptions', 'laststatus', 'mousemodel', 'mousescroll', 'pumblend', 'scrollback', 'shortmess', 'showcmdloc', 'signcolumn', 'statuscolumn', 'statusline', 'splitkeep', 'tabline', 'termpastefilter', 'ttimeout', 'ttimeoutlen', 'winblend', and 'winhighlight'. It also covers performance improvements with signs and folds, provider availability for Python, shell command routing and throttling, sign handling, startup options and behavior, and TUI terminal capabilities.