Home Explore Blog CI



neovim

3rd chunk of `runtime/doc/insert.txt`
b0325552d6c4536d6ac35015bf2bbdda4b55d3de6e72c3f30000000100000fa6
 use CTRL-R CTRL-O, see below.
		The '.' register (last inserted text) is still inserted as
		typed.
		After this command, the '.' register contains the text from
		the register as if it was inserted by typing it.

CTRL-R CTRL-O {register}			*i_CTRL-R_CTRL-O*
		Insert the contents of a register literally and don't
		auto-indent.  Does the same as pasting with the mouse
		|<MiddleMouse>|. When the register is linewise this will
		insert the text above the current line, like with `P`.
		The '.' register (last inserted text) is still inserted as
		typed.
		After this command, the '.' register contains the command
		typed and not the text. I.e., the literals "^R^O" and not the
		text from the register.
		Does not replace characters in |Replace-mode|!

CTRL-R CTRL-P {register}			*i_CTRL-R_CTRL-P*
		Insert the contents of a register literally and fix the
		indent, like |[<MiddleMouse>|.
		The '.' register (last inserted text) is still inserted as
		typed.
		After this command, the '.' register contains the command
		typed and not the text. I.e., the literals "^R^P" and not the
		text from the register.
		Does not replace characters in |Replace-mode|!

						*i_CTRL-T*
CTRL-T		Insert one shiftwidth of indent at the start of the current
		line.  The indent is always rounded to a 'shiftwidth'.
						*i_CTRL-D*
CTRL-D		Delete one shiftwidth of indent at the start of the current
		line.  The indent is always rounded to a 'shiftwidth'.

						*i_0_CTRL-D*
0 CTRL-D	Delete all indent in the current line.

						*i_^_CTRL-D*
^ CTRL-D	Delete all indent in the current line.  The indent is
		restored in the next line.  This is useful when inserting a
		label.

						*i_CTRL-V*
CTRL-V		Insert next non-digit literally.  It's also possible to enter
		the decimal, octal or hexadecimal value of a character
		|i_CTRL-V_digit|.
		The characters typed right after CTRL-V are not considered for
		mapping.
		For special keys, the CTRL modifier may be included into the
		key to produce a control character.  If there is no control
		character for the key then its |key-notation| is inserted.
		Note: When CTRL-V is mapped (e.g., to paste text) you can
		often use CTRL-Q instead |i_CTRL-Q|.

						*i_CTRL-Q*
CTRL-Q		Same as CTRL-V.
		Note: Some terminal connections may eat CTRL-Q, it doesn't
		work then.  It does work in the GUI.

CTRL-SHIFT-V				*i_CTRL-SHIFT-V* *i_CTRL-SHIFT-Q*
CTRL-SHIFT-Q	Works just like CTRL-V, but do not try to include the CTRL
		modifier into the key.
		Note: When CTRL-SHIFT-V is intercepted by your system (e.g.,
		to paste text) you can often use CTRL-SHIFT-Q instead.
		However, in some terminals (e.g. GNOME Terminal), CTRL-SHIFT-Q
		quits the terminal without confirmation.

CTRL-X		Enter CTRL-X mode.  This is a sub-mode where commands can
		be given to complete words or scroll the window.  See
		|i_CTRL-X| and |ins-completion|.

						*i_CTRL-E*
CTRL-E		Insert the character which is below the cursor.
						*i_CTRL-Y*
CTRL-Y		Insert the character which is above the cursor.
		Note that for CTRL-E and CTRL-Y 'textwidth' is not used, to be
		able to copy characters from a long line.

						*i_CTRL-_*
CTRL-_		Switch between insert direction, by toggling 'revins'.

		CTRL-_ moves the cursor to the end of the typed text.

		This command is only available when the 'allowrevins' option
		is set.
		Please refer to |rileft.txt| for more information about
		right-to-left mode.

						*i_CTRL-^*
CTRL-^		Toggle the use of typing language characters.
		When language |:lmap| mappings are defined:
		- If 'iminsert' is 1 (langmap mappings used) it becomes 0 (no
		  langmap mappings used).
		- If 'iminsert' has another value it becomes 1, thus langmap
		  mappings are enabled.
		When no language mappings are defined:
		- If 'iminsert' is 2 (Input Method used) it becomes 0 (no
		  Input Method used).
		- If 'iminsert' has another value it becomes 2, thus the Input
		  Method is enabled.
		When set to 1, the value of the "b:keymap_name" variable, the
		'keymap'

Title: Vim Insert Mode: Special Keys - Indentation, Literal Insertion, and More
Summary
This section covers several special keys in Vim's Insert mode, including CTRL-R with 'O' and 'P' options for inserting register content literally with or without auto-indent and indentation correction, respectively. It also details CTRL-T and CTRL-D for indenting or unindenting lines, CTRL-V and CTRL-Q for inserting characters literally (including special keys and their values), and CTRL-X for entering completion mode. Additionally, it explains CTRL-E and CTRL-Y for inserting characters from below or above the cursor, CTRL-_ for toggling insert direction, and CTRL-^ for toggling the use of language characters or input methods.