import { op } from "https://deno.land/x/ddc_vim@v4.0.2/deps.ts";
const { guicursor } = op;
This option tells Vim what the cursor should look like in different modes. It fully works in the GUI. In a Win32 console, only the height of the cursor can be changed. This can be done by specifying a block cursor, or a percentage for a vertical or horizontal cursor. For a console the 't_SI', 't_SR', and 't_EI' escape sequences are used.
The option is a comma-separated list of parts. Each part consist of a
mode-list and an argument-list:
mode-list:argument-list,mode-list:argument-list,..
The mode-list is a dash separated list of these modes:
n Normal mode
v Visual mode
ve Visual mode with 'selection' "exclusive" (same as 'v',
if not specified)
o Operator-pending mode
i Insert mode
r Replace mode
c Command-line Normal (append) mode
ci Command-line Insert mode
cr Command-line Replace mode
sm showmatch in Insert mode
a all modes
The argument-list is a dash separated list of these arguments:
hor**{N}** horizontal bar, {N} percent of the character height
ver**{N}** vertical bar, {N} percent of the character width
block block cursor, fills the whole character
[only one of the above three should be present]
blinkwait**{N}**
blinkon**{N}**
blinkoff**{N}**
blink times for cursor: blinkwait is the delay before
the cursor starts blinking, blinkon is the time that
the cursor is shown and blinkoff is the time that the
cursor is not shown. The times are in msec. When one
of the numbers is zero, there is no blinking. The
default is: "blinkwait700-blinkon400-blinkoff250".
These numbers are used for a missing entry. This
means that blinking is enabled by default. To switch
blinking off you can use "blinkon0". The cursor only
blinks when Vim is waiting for input, not while
executing a command.
To make the cursor blink in an xterm, see
xterm-blink
.
{group-name}
a highlight group name, that sets the color and font
for the cursor
{group-name} /{group-name}
Two highlight group names, the first is used when
no language mappings are used, the other when they
are. language-mapping
Examples of parts: n-c-v:block-nCursor in Normal, Command-line and Visual mode, use a block cursor with colors from the "nCursor" highlight group i-ci:ver30-iCursor-blinkwait300-blinkon200-blinkoff150 In Insert and Command-line Insert mode, use a 30% vertical bar cursor with colors from the "iCursor" highlight group. Blink a bit faster.
The 'a' mode is different. It will set the given argument-list for all modes. It does not reset anything to defaults. This can be used to do a common setting for all modes. For example, to switch off blinking: "a:blinkon0"
Examples of cursor highlighting:
:highlight Cursor gui=reverse guifg=NONE guibg=NONE
:highlight Cursor gui=NONE guifg=bg guibg=fg
(default "n-v-c:block-Cursor/lCursor, ve:ver35-Cursor, o:hor50-Cursor, i-ci:ver25-Cursor/lCursor, r-cr:hor20-Cursor/lCursor, sm:block-Cursor -blinkwait175-blinkoff150-blinkon175", for Win32 console: "n-v-c:block,o:hor50,i-ci:hor15, r-cr:hor30,sm:block")
only available when compiled with GUI enabled, and for Win32 console