📄 insert.txt
字号:
*insert.txt* For Vim version 5.8. Last change: 2001 Jan 18 VIM REFERENCE MANUAL by Bram Moolenaar *Insert* *Insert-mode*Inserting and replacing text *mode-ins-repl*Most of this file is about Insert and Replace mode. At the end are a fewcommands for inserting text in other ways.1. Special keys |ins-special-keys|2. Special special keys |ins-special-special|3. 'textwidth' and 'wrapmargin' options |ins-textwidth|4. 'expandtab', 'smarttab' and 'softtabstop' options |ins-expandtab|5. Replace mode |Replace-mode|6. Virtual replace mode |Virtual-replace-mode|7. Insert mode completion |ins-completion|8. Insert mode commands |inserting|9. Ex insert commands |inserting-ex|10. Inserting a file |inserting-file|==============================================================================1. Special keys *ins-special-keys*In Insert and Replace mode, the following characters have a special meaning;other characters are inserted directly. To insert one of these specialcharacters into the buffer, precede it with CTRL-V. To insert a <Nul>character use "CTRL-V CTRL-@" or "CTRL-V 000". On some systems, you have touse "CTRL-V 003" to insert a CTRL-C.If you are working in a special language mode when inserting text, see the'langmap' option, |'langmap'|, on how to avoid switching this mode on and offall the time.If you have 'insertmode' set, <Esc> and a few other keys get another meaning.See |'insertmode'|.char action ~----------------------------------------------------------------------- *i_CTRL-[* *i_<Esc>*<Esc> or CTRL-[ End insert or Replace mode, go back to Normal mode. Finish abbreviation. Note: If your <Esc> key is hard to hit on your keyboard, train yourself to use CTRL-[. *i_CTRL-C*CTRL-C Quit insert mode, go back to Normal mode. Do not check for abbreviations. *i_CTRL-@*CTRL-@ Insert previously inserted text and stop insert. {Vi: only when typed as first char, only up to 128 chars} *i_CTRL-A*CTRL-A Insert previously inserted text. {not in Vi} *i_CTRL-H* *i_<BS>*<BS> or CTRL-H Delete the character before the cursor (see |i_backspacing| about joining lines). See |:fixdel| if your <BS> key does not do what you want. {Vi: does not delete autoindents} *i_<Del>*<Del> Delete the character under the cursor. If the cursor is at the end of the line, and the 'backspace' option includes "eol", delete the <EOL>; the next line is appended after the current one. See |:fixdel| if your <Del> key does not do what you want. {not in Vi} *i_CTRL-W*CTRL-W Delete the word before the cursor (see |i_backspacing| about joining lines). See the section "word motions", |word-motions|, for the definition of a word. *i_CTRL-U*CTRL-U Delete all entered characters in the current line (see |i_backspacing| about joining lines). *i_CTRL-I* *i_<Tab>*<Tab> or CTRL-I Insert a tab. If the 'expandtab' option is on, the equivalent number of spaces is inserted (use CTRL-V <Tab> to avoid the expansion). See also the 'smarttab' option and |ins-expandtab|. *i_CTRL-J* *i_<NL>*<NL> or CTRL-J Begin new line. *i_CTRL-M* *i_<CR>*<CR> or CTRL-M Begin new line. *i_CTRL-K*CTRL-K {char1} [char2] Enter digraph (see |digraphs|). When {char1} is a special key, the code for that key is inserted in <> form. For example, the string "<S-Space>" can be entered by typing <C-K><S-Space> (two keys). Neither char is considered for mapping. {not in Vi}CTRL-N Find next keyword (see |i_CTRL-N|). {not in Vi}CTRL-P Find previous keyword (see |i_CTRL-P|). {not in Vi}CTRL-R {0-9a-z"%#:.-=} *i_CTRL-R* *i_<C-R>* Insert the contents of a register. Between typing CTRL-R and the second character, '"' will be displayed to indicate that you are expected to enter the name of a register. The text is inserted as if you typed it, but mappings and abbreviations are not used. If you have options like 'textwidth', 'formatoptions', or 'autoindent' set, this will influence what will be inserted. This is different from what happens with the "p" command and pasting with the mouse. Special registers: '"' the unnamed register, containing the text of the last delete or yank '%' the current file name '#' the alternate file name '*' the clipboard contents '/' the last search pattern ':' the last command-line '.' the last inserted text '-' the last small (less than a line) delete '=' the expression register: you are prompted to enter an expression (see |expression|) See |registers| about registers. {not in Vi}CTRL-R CTRL-R {0-9a-z"%#/:.-=} *i_CTRL-R_CTRL-R* *i_<C-R>_<C-R>* Insert the contents of a register. Works like using a single CTRL-R, but the text is inserted literally, not as if typed. This differs when the register contains characters like <BS>. Example, where register a contains "ab^Hc":> CTRL-R a results in "ac".> CTRL-R CTRL-R a results in "ab^Hc". Options 'textwidth', 'formatoptions', etc. still apply. If you also want to avoid these, use "<C-R><C-O>r", see below. The '.' register (last inserted text) is still inserted as typed. {not in Vi}CTRL-R CTRL-O {0-9a-z"%#/:.-=} *i_CTRL-R_CTRL-O* *i_<C-R>_<C-O>* Insert the contents of a register literally and don't auto-indent. Does the same as pasting with the mouse |<MiddleMouse>|. Does not replace characters! The '.' register (last inserted text) is still inserted as typed. {not in Vi}CTRL-R CTRL-P {0-9a-z"%#/:.-=} *i_CTRL-R_CTRL-P* *i_<C-R>_<C-P>* Insert the contents of a register literally and fix the indent, like |[<MiddleMouse>|. Does not replace characters! The '.' register (last inserted text) is still inserted as typed. {not in Vi} *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' (this is vi compatible). {Vi: only when in indent} *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' (this is vi compatible). {Vi: CTRL-D works only when used after autoindent} *i_0_CTRL-D*0 CTRL-D Delete all indent in the current line. {Vi: CTRL-D works only when used after autoindent} *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. {Vi: CTRL-D works only when used after autoindent} *i_CTRL-V*CTRL-V Insert next non-digit literally. For special keys, the terminal code is inserted. Up to three digits form the decimal value of a single byte (see below |i_CTRL-V_digit|. The non-digit and the three digits are not considered for mapping. {Vi: no decimal byte entry} Note: Under Windows CTRL-V is often mapped to paste text. Then use CTRL-Q instead. *i_CTRL-Q*CTRL-Q Same as CTRL-V. Note: Some terminal connections may eat CTRL-Q.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|. {not in Vi} *i_CTRL-E*CTRL-E Insert the character which is below the cursor. {not in Vi} *i_CTRL-Y*CTRL-Y Insert the character which is above the cursor. {not in Vi} 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 languages, as follows: - When in a rightleft window, revins and nohkmap are toggled, since English will likely be inserted in this case. - When in a norightleft window, revins and hkmap are toggled, since Hebrew will likely be inserted in this case. 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 |rightleft.txt| for more information about right-to-left mode. {not in Vi} Only if compiled with the |+rightleft| feature (which is not the default). *i_CTRL-]*CTRL-] Trigger abbreviation, without inserting a character. {not in Vi} *i_<Insert>*<Insert> Toggle between insert and replace mode. {not in Vi}----------------------------------------------------------------------- *i_backspacing*The effect of the <BS>, CTRL-W, and CTRL-U depend on the 'backspace' option(unless 'revins' is set). This is a comma separated list of items:item action ~indent allow backspacing over autoindenteol allow backspacing over end-of-line (join lines)start allow backspacing over the start position of insert; CTRL-W and CTRL-U stop once at the start positionWhen 'backspace' is empty, Vi compatible backspacing is used. You cannotbackspace over autoindent, before column 1 or before where insert started.For backwards compatibility the values "0", "1" and "2" are also allowed, see|'backspace'|.If the 'backspace' option does contain "eol" and the cursor is in column 1when one of the three keys is used, the current line is joined with theprevious line. This effectively deletes the <EOL> in front of the cursor.{Vi: does not cross lines, does not delete past start position of insert} *i_CTRL-V_digit*With CTRL-V followed by one, two, or three digits, you can enter the decimalvalue of any byte, except 10. Normally CTRL-V is followed by three digits.The formed byte is inserted as soon as you type the third digit. If you typeonly one or two digits and then a non-digit, the decimal value of those oneor two digits form the byte. After that the non-digit is dealt with in thenormal way. If you enter a value of 10, it will end up in the file as a 0.The 10 is a <NL>, which is used internally to represent the <Nul> character.When writing the buffer to a file, the <NL> character is translated into<Nul>. The <NL> character is written at the end of each line. Thus if youwant to insert a <NL> character in a file you will have to make a linebreak. The maximum value that can be entered is 255. *i_CTRL-X* *insert_expand*CTRL-X enters a sub-mode where several commands can be used. Most of thesecommands do keyword completion; see |ins-completion|. These are not availablewhen Vim was compiled without the |+insert_expand| feature.Two commands can be used to scroll the window up or down, without exitinginsert mode: *i_CTRL-X_CTRL-E*CTRL-X CTRL-E scroll window one line up. *i_CTRL-X_CTRL-Y*CTRL-X CTRL-Y scroll window one line down.After CTRL-X is pressed, each CTRL-E (CTRL-Y) scrolls the window up (down) byone line unless that would cause the cursor to move from its current positionin the file. As soon as another key is pressed, CTRL-X mode is exited andthat key is interpreted as in Insert mode.==============================================================================2. Special special keys *ins-special-special*The following keys are special. They stop the current insert, do something,and then restart insertion. This means you can do something without gettingout of Insert mode. This is very handy if you prefer to use the Insert modeall the time, just like editors that don't have a separate Normal mode. Youmay also want to set the 'backspace' option to "indent,eol,start" and set the'insertmode' option. You can use CTRL-O if you want to map a function key toa command.The changes (inserted or deleted characters) before and after these keys canbe undone separately. Only the last change can be redone and always behaveslike an "i" command.char action ~-----------------------------------------------------------------------<Up> cursor one line up *i_<Up>*<Down> cursor one line down *i_<Down>*<Left> cursor one character left *i_<Left>*<Right> cursor one character right *i_<Right>*<S-Left> cursor one word back (like "b" command) *i_<S-Left>*<C-Left> cursor one word back (like "b" command) *i_<C-Left>*
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -