mirror of
https://github.com/neovim/neovim.git
synced 2025-01-01 17:23:36 -07:00
doc: Document some more terminal behaviours.
This documents 256-colour and true colour handling, cursor shapes, and scrolling regions. Almost all of these headings are taken from the Vim doco, so that the :help commands that people learn are a transferable skill.
This commit is contained in:
parent
6be921b71c
commit
d65cff9de8
@ -5207,10 +5207,7 @@ To test your color setup, a file has been included in the Vim distribution.
|
|||||||
To use it, execute this command: >
|
To use it, execute this command: >
|
||||||
:runtime syntax/colortest.vim
|
:runtime syntax/colortest.vim
|
||||||
|
|
||||||
Some versions of xterm (and other terminals, like the Linux console) can
|
Nvim uses |256-color| and |true-color| terminal capabilities whereever possible.
|
||||||
output lighter foreground colors, even though the number of colors is defined
|
|
||||||
at 8. Therefore Vim sets the "cterm=bold" attribute for light foreground
|
|
||||||
colors, when 't_Co' is 8.
|
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
18. When syntax is slow *:syntime*
|
18. When syntax is slow *:syntime*
|
||||||
|
@ -20,9 +20,21 @@ Startup *startup-terminal*
|
|||||||
When Vim is started a default terminal type is assumed. for MS-DOS this is
|
When Vim is started a default terminal type is assumed. for MS-DOS this is
|
||||||
the pc terminal, for Unix an ansi terminal.
|
the pc terminal, for Unix an ansi terminal.
|
||||||
|
|
||||||
*termcap* *terminfo* *E557* *E558* *E559*
|
*terminfo* *E557* *E558* *E559*
|
||||||
On Unix the terminfo database or termcap file is used. This is referred to as
|
On Unix the terminfo database is used.
|
||||||
"termcap" in all the documentation.
|
|
||||||
|
*builtin-terms* *builtin_terms*
|
||||||
|
If a terminfo database is not available, Nvim will look up the terminal type
|
||||||
|
in a compiled-in mini-database of terminfo entries for "xterm", "putty",
|
||||||
|
"screen", "tmux", "rxvt", "iterm", "interix", "linux", and "ansi".
|
||||||
|
|
||||||
|
The lookup matches the initial portion of the terminal type, so (for example)
|
||||||
|
"putty-256color" and "putty" will both be mapped to the built-in "putty"
|
||||||
|
entry. The built-in terminfo entries describe the terminal as 256-colour
|
||||||
|
capable if possible. See |termcap-colors|.
|
||||||
|
|
||||||
|
If no built-in terminfo record matches the terminal type, the built-in "ansi"
|
||||||
|
terminfo record is used as a final fallback.
|
||||||
|
|
||||||
Settings depending on terminal *term-dependent-settings*
|
Settings depending on terminal *term-dependent-settings*
|
||||||
|
|
||||||
@ -35,6 +47,59 @@ can do this best in your vimrc. Example: >
|
|||||||
... vt100, vt102 maps and settings ...
|
... vt100, vt102 maps and settings ...
|
||||||
endif
|
endif
|
||||||
<
|
<
|
||||||
|
*scroll-region* *xterm-scroll-region*
|
||||||
|
Where possible, Nvim will use the terminal's ability to set a scroll region in
|
||||||
|
order to redraw faster when a window is scrolled. If the terminal's terminfo
|
||||||
|
description describes an ability to set top and bottom scroll margins, that is
|
||||||
|
used.
|
||||||
|
|
||||||
|
This will not speed up scrolling in a window that is not the full width of the
|
||||||
|
terminal. Xterm has an extra ability, not described by terminfo, to set left
|
||||||
|
and right scroll margins as well. If Nvim detects that the terminal is Xterm,
|
||||||
|
it will make use of this ability to speed up scrolling that is not the full
|
||||||
|
width of the terminal.
|
||||||
|
|
||||||
|
This ability is only present in genuine Xterm, not in the many terminal
|
||||||
|
emulators that incorrectly describe themselves as xterm. Nvim's detection of
|
||||||
|
genuine Xterm will not work over an SSH connection, because the environment
|
||||||
|
variable, set by genuine Xterm, that it looks for is not automatically
|
||||||
|
replicated over an SSH login session.
|
||||||
|
|
||||||
|
*256-color* *termcap-colors*
|
||||||
|
Nvim can make use of 256-colour terminals and tries to do so whereever it can.
|
||||||
|
|
||||||
|
If the |terminfo| description of the terminal says that it supports fewer
|
||||||
|
colours, Nvim will override this for many terminal types, including "linux"
|
||||||
|
(whose virtual terminals have had 256-colour support since version 4.8) and
|
||||||
|
anything (even if falsely) claiming to be "xterm". It will also set 256
|
||||||
|
colours when the COLORTERM or TERM environment variables contain the string
|
||||||
|
"256" somewhere.
|
||||||
|
|
||||||
|
Nvim similarly assumes that any terminal emulator that sets the COLORTERM
|
||||||
|
environment variable at all, to anything, is capable of at least 16-colour
|
||||||
|
operation; and it will override |terminfo| saying that it has fewer colours
|
||||||
|
available.
|
||||||
|
|
||||||
|
*true-color* *xterm-true-color*
|
||||||
|
Nvim supports using true (24-bit) colours in the terminal. |terminfo| does
|
||||||
|
not contain flags to say when terminals have true colour support. So Nvim
|
||||||
|
simply assumes true colour support for (all) "xterm", "rxvt", "linux",
|
||||||
|
"putty", and "iterm" terminal types, or when Konsole or a terminal emulator
|
||||||
|
that sets the COLORTERM environment variable to "truecolor" is detected.
|
||||||
|
|
||||||
|
*xterm-resize*
|
||||||
|
Nvim can resize the terminal display on some terminals that implement an
|
||||||
|
extension pioneered by the dtterm program. |terminfo| does not have a flag
|
||||||
|
for this extension. So Nvim simply assumes that (all) "dtterm", "xterm",
|
||||||
|
"teraterm", "rxvt" terminal types, and Konsole, are capable of this.
|
||||||
|
|
||||||
|
*cursor-shape* *termcap-cursor-shape*
|
||||||
|
Nvim will adjust the shape of the cursor from a block to a line when in insert
|
||||||
|
mode, on terminals that support it. If Konsole is detected, it will use the
|
||||||
|
idiosyncratic Konsole terminal control sequences for this, attempting to do
|
||||||
|
the right thing if tmux is between Nvim and Konsole. Otherwise, it uses the
|
||||||
|
conventional DECSCUSR control sequences.
|
||||||
|
|
||||||
*cs7-problem*
|
*cs7-problem*
|
||||||
Note: If the terminal settings are changed after running Vim, you might have
|
Note: If the terminal settings are changed after running Vim, you might have
|
||||||
an illegal combination of settings. This has been reported on Solaris 2.5
|
an illegal combination of settings. This has been reported on Solaris 2.5
|
||||||
|
@ -156,6 +156,10 @@ 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
|
`neovim` pip package must be installed to use Python plugins in Nvim (see
|
||||||
|provider-python|).
|
|provider-python|).
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|:!| does not support "interactive" commands. Use |:terminal| instead.
|
|:!| does not support "interactive" commands. Use |:terminal| instead.
|
||||||
(GUI Vim has a similar limitation, see ":help gui-pty" in Vim.)
|
(GUI Vim has a similar limitation, see ":help gui-pty" in Vim.)
|
||||||
|
|
||||||
@ -281,6 +285,11 @@ 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
|
terminal capabilities. Instead Nvim treats the terminal as any other UI. For
|
||||||
example, 'guicursor' sets the terminal cursor style if possible.
|
example, 'guicursor' sets the terminal cursor style if possible.
|
||||||
|
|
||||||
|
*termcap*
|
||||||
|
Nvim never uses the termcap database and only uses |terminfo|. See
|
||||||
|
|builtin-terms| for what happens on operating systems without a terminfo
|
||||||
|
database.
|
||||||
|
|
||||||
*xterm-8bit* *xterm-8-bit*
|
*xterm-8bit* *xterm-8-bit*
|
||||||
Xterm can be run in a mode where it uses true 8-bit CSI. Supporting this
|
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
|
requires autodetection of whether the terminal is in UTF-8 mode or non-UTF-8
|
||||||
|
Loading…
Reference in New Issue
Block a user