Vim shortcut key Operation command

Source: Internet
Author: User

Vim is an ultra-bull editor with powerful command functions. And most of these commands can be combined, for example, the 9yy command means to copy 9 lines of content, 9 means the number of rows to be copied, the same 100dd means to delete 100 rows, when the number and command cooperation, more powerful than the simple command, similarly, the C command means erase, w means word is the word, Then CW means erase a word, c5w means delete 5 words and so on. By crafting these simple commands together, you can play a powerful, unimaginable function.

Macro command (Macros)

Advanced some of the editor, will contain the macro function, Vim is certainly not missing, the use of macros in Vim is very convenient:

: QX

Start recording macros and save results to register X

Q

Exit record mode

@x

Play macro commands recorded in the X register

A little explanation, when entered in normal mode: After QX, all your edits to the text will be recorded, enter Q again to exit the recording mode, and then enter @x to repeat the command just recorded, this command can be followed by numbers, indicating how many times to repeat, such as @x20, Can be repeated 20 times. This is very useful in batch processing of text.

Edit multiple files at the same time

In the many Vim plug-ins, there is a plug-in called Minibuffer, that is, the following tab function, you can support the simultaneous editing of multiple files.

Label command

: Tabe fn

Edit a file in a new tab FN

Gt

Switch to the next tab page

GT

Switch to previous tab page

: Tabr

Switch to the first tab page

: tabl

Switch to the Last tab page

: TABM [N]

Move the current tab to the Nth tab

Yes, as you can imagine, with Eclipse, UE and other tabs is a meaning!

Window commands

Ctrl+w s

Horizontal split Window

Ctrl+w W

Toggle Window

CTRL+W Q

Exits the current window (this command does not affect other windows because there are multiple files at the same time)

Ctrl+w V

Vertical split Window

Other

Vim does not make any actual changes to the file until it is saved, but it is loaded into the buffer, and the edit of the file is actually the edit of the buffer until: W will be stored in the physical file.

: E File

Load the file into a new buffer

: Bn

Jump to the next buffer

: BD

Delete buffer (close file)

: SP FN

Split the window and load FN into a new window

Exit editor

: W

Writes a buffer to a file, which is a save modification

: Wq

Save changes and exit

: X

Save changes and exit

: Q

Exit, if the buffer has been modified, you will be prompted

: q!

Force quit, discard modifications

Find replacements

/pattern

Search backwards for string pattern

? pattern

Search forward string pattern

N

Next match (if yes/search, then down next,? Search is up next)

N

Previous match (IBID.)

:%s/old/new/g

Search entire file, replace all old with new

:%S/OLD/NEW/GC

Search the entire file, replace all old with new, and make sure you replace it every time

Copy and paste

Dd

Delete the cursor in the row

Dw

Delete a word (word)

X

Delete current character

X

Delete the previous character

D

Delete to end of line

Yy

Copy a row, this command can be followed by a number, identity copy multiple lines, such as 6yy, to start copying 6 rows from the current line

yw

Copy a Word

y$

Copy to end of line

P

Pastes the contents of the pasteboard below the current line

P

Pastes the Clipboard contents to the top of the current line

]p

With indented paste, Vim automatically adjusts the indentation of the Code

"A

Add content to/deposit a register to support multiple Pasteboard

Attached: For example, a commonly used register is the system register, the name is +, so from the system pasteboard paste into Vim command for "+p, note here the + does not represent the operator, 21 registers."

Move cursor

Moving the cursor in VIM is very different from other editors, but once learned, it moves quickly in the text.

H,j,k,l

Up, down, left, right.

Ctrl-f

Go up one page

Ctrl-b

Turn down one page

%

Jumps to the parentheses that match the current bracket, as currently in {, jumps to the matching}

W

Jump to the next word, split by punctuation or word

W

Jump to the next word of the head, long jump, as End-of-line is thought to be a word

E

Jump to the next end of a word

E

Jump to the end of the next word, long jump

B

Jump to the previous word

B

Jump to the last word, long jump

0

Jumps to the beginning of a line, whether or not indented or jumping to the No. 0 character

^

Jumps to the first character in the beginning of a line

$

Jump to end of line

Gg

Jumps to the first line of the file

Gd

Jumps to the declaration of the variable at which the cursor is currently located

N G

Jump to the nth row, such as 0G, is equivalent to gg,100g is the 100th row

Fx

Find the X character in the current line and jump to

;

Repeat the previous F command without repeating the input FX

Tx

Similar to FX, but only jumps to the previous character of X

Fx

In the opposite direction of FX.

),(

Jump to top/Next statement

*

Find the word where the cursor is located, and look down in this combination of n keys, you can switch between each look-up content

#

Find the word where the cursor is located, and look up

`.

Jump to last edit location

"Ctrl +}" can jump to the definition of a function or variable, "CTRL + O" can return to the previous jump page.

Move on the screen

H

Move the cursor to the topmost line on the current screen

M

Move the cursor to the middle line of the current screen

L

Move the cursor to the bottom line on the current screen

Bookmark

Ma

Save the current position as a label

' A

Jump to label A

Edit

R

Replace one character

J

Connect the next line and the current row as one line

Cc

Delete the current row and enter edit mode

cw

Delete the current word and enter edit mode

C $

Erases content from the current position to the end of the line and enters edit mode

S

Delete the current character and enter edit mode

S

Delete the line of the cursor and enter edit mode

Xp

Swaps the current character and the next character

U

Revoke

Ctrl+r

Redo

.

Repeat last Edit command

~

Toggle case, current character

G~iw

Toggle the case of the current word

Guiw

Turn the current word into uppercase

Guiw

Turn the current word into lowercase

>>

Move the current line one unit to the right

<<

Moves the current line one unit to the left (one tab character)

==

Automatically indent as you go forward

Insert mode

I

Enter insert mode from the current cursor

I

Enter insert mode and place the cursor at the beginning of the line

A

Append mode, placing the cursor after the current cursor

A

Append mode, place cursor at end of line

O

Adds a new row below the current line and enters insert mode

O

Adds a new row above the current line and enters insert mode

Esc

Exit Insert Mode

Visual mode

Tag text

V

Enter visual mode, single character mode

V

Enter visual mode, line mode

CTRL + V

Enter visual mode, column mode, similar to UE's column mode

O

Jump cursor to another endpoint of the selected block

U

Turn the contents of the selected block into uppercase

O

Jump cursor to another endpoint of the block

Aw

Select a word

Ab

Check everything in parentheses, including the parentheses themselves

Ab

Check all contents in {} brackets

Ib

Check the contents of parentheses without parentheses

Ib

Check the contents of {} without {}

To act on a marker

>

Block Right Shift

<

Move the block to the left

Y

Copy Block

D

Delete Block

~

Toggle the case of content in a block

Keyboard diagram:

Summary of common replacement patterns in vim

1, simple substitution expression

The Replace command can replace another word with one word in the full text:

:%s/four/4/g

The "%" range prefix indicates that substitutions are performed on all rows. The last "G" tag represents all the matching points in the replacement row. If you are only working on the current line, just remove the%

If you have a word like "thirtyfour", the above command will go wrong. In this case, the word will be replaced with "Thirty4″." To solve this problem, use "\<" to specify the beginning of the matching word:

:%s/\<four/4/g

Obviously, this will still make a mistake when dealing with "fourty". Use "\>" to solve this problem:

:%s/\<four\>/4/g

If you are coding, you may just want to replace "four" in the comment, while preserving the code. Since this is difficult to specify, you can add a "C" tag to the replacement command so that Vim prompts you before each replacement:

:%S/\&LT;FOUR\&GT;/4/GC

2. Remove extra spaces

To remove the extra space behind each line, you can execute the following command:

:%s/\s\+$//

The command indicates that the range is "%", so this works on the entire file. The match pattern for the "substitute" command is

"\s\+$". This represents one or more (\+) spaces (\s) before the end of the line ($). The "to" part of the Replace command is empty: "//". This will delete those matching whitespace characters.

3, matching repeatability mode

The asterisk item "*" Specifies that items in front of it can be repeated any time. So:

/a*

Match "A", "AA", "AAA", and so on. But also matches "" (empty string), because 0 times is also included. The asterisk "*" is applied only to the item that is immediately in front of it. So "ab*" matches "a", "AB", "ABB", "abbb", and so on. To repeat the entire string more than once, the string must be made up of an item. The way to form an item is to precede it with "\ (", followed by "\"). So this command:

/\ (ab\) *

Matches: "AB", "Abab", "Ababab", and so on. and also match "".

To avoid matching empty strings, use "\+". This means that the preceding item can be matched one or more times.

/ab\+

Match "AB", "ABB", "abbb", etc. It does not match "a" followed by "B".

To match an optional option, use "\=". For example:

/folders\=

Match "folder" and "Folders".

4, specify the number of repetitions

To match a specific number of times for an item, use the form "\{n,m}". where "n" and "M" are numbers. The item in front of it will be repeated "n" to "M" Times (|inclusive| contains "n" and "M"). For example:

/ab\{3,5}

Match "abbb", "abbbb" and "abbbbb".

When "n" is omitted, it is defaulted to zero. When "M" is omitted, the default is infinity. When ", M" is omitted, it means repeating exactly "n" Times. For example:

Pattern Match times

\{,4} 0,1,2,3 or 4

\{3,} 3,4,5, etc.

\{0,1} 0 or 1, same as \=

\{0,} 0 or more, same as *

\{1,} 1 or more, with \+

\{3} 3

5, multiple Select a match

In a lookup mode, the OR operator is "\|". For example:

/foo\|bar

This command matches "foo" or "bar". More choices can be attached to the back:

/one\|two\|three

Matches "One", "one", or "three".

To match its multiple repetitions, the entire decision structure must be placed between "\ (" and "\)":

/\ (foo\|bar\) \+

This command matches "foo", "Foobar", "Foofoo", "Barfoobar", and so on.

Let me give you an example:

/end\ (if\|while\|for\)

This command matches "endif", "Endwhile" and "ENDfor".

Vim shortcut key Operation command

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.