Play the VIM editor

Source: Internet
Author: User
Tags set background

One: Vim Quick start1.vim Mode Introduction

The following introductory content is from the Wikipedia vim

There are many modes of vim from VI, this unique design is easy to confuse the beginner. Almost all editors have two modes of inserting and executing commands, and most editors use a different approach to vim: the command directory (mouse or keyboard driver), the combination of keys (usually with the control key (CTRL) and the ALT key (ALT)) or the mouse input. Vim and VI, just as the keyboard to switch among these modes. This allows vim to operate without a menu or mouse, and to minimize the operation of key combinations. It can greatly enhance the speed and efficiency of the text entry clerk or programmer.

VIM has 6 basic modes and 5 derivation modes, and here we simply introduce the next 6 basic modes:

    • Normal mode

In normal mode, the editor commands, such as moving the cursor, deleting text, and so on. This is also the default mode after Vim is started. This is exactly the opposite of what many new users expect (most editor default mode is insert mode).

Vim's powerful editor can come from its normal mode commands. Normal mode commands often require an operator end. For example, the normal mode command dd deletes the current row, but the first "D" can be followed by another move command instead of the second one d , such as a "J" key that moves to the next line to delete the current row and the next row. You can also specify the number of commands to repeat, 2dd (repeat dd two times), and dj the effect is the same. Users learn a variety of text between the move/jump commands and other common mode of editing commands, and can be used flexibly combined, can be more efficient than those without the pattern of the editor for text editing.

In normal mode, there are many ways to get into insert mode. The more common way is to press a (append/append) or i (insert/insert) key.

    • Insertion modes (insert mode)

In this mode, most keystrokes insert text into the text buffer. Most new users want this mode to persist throughout the text editor editing process.

In insert mode, you can press the ESC key back to normal mode.

    • Visual modes (visual mode)

This pattern is similar to normal mode. However, the move command expands the highlighted text area. The highlighted area can be a character, a line, or a piece of text. When a non-moving command is executed, the command is executed to the highlighted area. Vim's "text object" can also be used in this mode as the move command.

    • Selection mode (select modes)

This pattern is similar to the behavior of the modeless editor (the way Windows standard text controls are). In this mode, you can use the mouse or cursor keys to highlight the selection of text, but the input of any character, Vim will use this character to replace the selected highlighted text block, and automatically enter the insertion mode.

    • Command line mode

In command-line mode, you can enter text that will be interpreted and executed. For example, execute commands ( : keys), search ( / and ? keys), or filter commands ( ! keys). After the command is executed, VIM returns to the pattern before the command-line mode, usually in normal mode.

    • Ex modes (ex mode)

This is similar to command-line mode, where :visual you can execute multiple commands at one time before using the command to leave the ex mode.

This is commonly used in common mode, insert mode, and command line mode, and this course covers only the three common patterns.

2. Switching of three common modes

Vim starts into normal mode, in insert mode or command line mode, just press Esc or Ctrl+[ (this is no use in the VIM course environment) to enter normal mode. In normal mode i , press (insert) or a (attach) keys to enter the insert mode, in normal mode press : enter command line mode. In the command line mode, enter the wq carriage return and save and exit Vim.

Third, enter the VIM1. Use the VIM command to enter the Vim interface

Vim is appended with the file name that you want to open, or that does not exist (then as a new file). Open the Xfce terminal and enter the following command

$ vim practice_1.txt

Vim editor can also be opened using Vim directly, but no files will be opened.

$ vim

Enter the command line mode and the :e 文件路径 same file can be opened.

2. Cursor movement

After entering Vim, press the i key to enter insert mode. In this mode you can enter text information below, please enter the following three lines of information:

Press Esc Enter normal mode, use the arrow keys in this mode or,,, the h j k l Key can move the cursor.

Key Description
h Left
l Right (lowercase L)
j Under
k On
w Move to the next word
b Move to the previous word

Try using the arrow keys to move the cursor over these letters in normal mode shiyanlou .

Iv. Enter insert mode 1. Enter insert mode

Use the following key in normal mode to enter insert mode, and to start typing from the corresponding position

Command Description
i Edit at current cursor
I Insert at beginning of line
A Inserting at the end of a row
a Insert an edit after the cursor
o Insert a new row after the current row
O Insert a new row before the current line
cw Replace the character from the position of the cursor to the end of a word

Try different ways to get into the insert mode from normal mode, add in front of the last line Shiyanlou www. , Notice that each time you go back to normal mode to switch to insert mode in different ways

V. Save a Document 1. Save the document in command line mode

Enter the : command line mode from normal mode, enter w a carriage return, and save the document. Enter to save the :w 文件名 document as a different file name or save it to another path

Vi. exit vim1. Exit vim in command line mode

Enter : command line mode from normal mode, enter wq return, save and exit edit

Here are a few other ways to exit:

Command Description
:q! Force quit, do not save
:q Exit
:wq! Force Save and exit
:w <文件路径> Save As
:saveas 文件路径 Save As
:x Save and exit
:wq Save and exit
2. Exiting vim in normal mode

Normal mode input Shift+zz can be saved out of vim

Vii. deletion of text 1. Delete vim text information in normal mode

Go to normal mode and use the following commands to quickly delete text:

Command Description
x Delete the character that the cursor contains
X Delete the previous character of a cursor
Delete Withx
dd Delete entire row
dw Delete a word (not in Chinese)
d$OrD Delete to end of line
d^ Delete to beginning of line
dG Delete to end of document
d1G Delete to document header

In addition, you can add a number to the command before it, indicating that multiple rows are deleted at once, such as:

2ddRepresents deleting 2 rows at a time

Let's do the following exercises:

$ cp /etc/protocols .$ vim protocols

Viii. Summary

Vim first experience you feel very strange, perhaps at present you do not have vim to produce any favor, do not think it is a good editor, it can only be because you have not mastered the essence of vim, or you type too slow, go back to the Little Overlord learning machine to practice it-_-| | Here can also be revealed, the essence of vim is the command key combination, the operation of the whole keyboard, you can not leave the keyboard input area to complete all the operation, that can be real efficient and cool experience ah, when you master this skill can definitely seconds off other not with VIM programmer several street (at least in the momentum bar, And of course to get rid of the only Emacs programmers, because there is a war between Emacs and Vim, it is interesting to see Emacs and Vim here: God's editor and editor of God)

Two: Vim document editor one, vim repeat command 1. Repeat the last command

In normal mode . (decimal point) means the last command operation is repeated

Copy test files to a local directory

$ cp /etc/protocols .

Open a file for editing

$ vim protocols

Normal mode input x , delete the first character, the input . (decimal point) will be deleted again a character, in addition to also can be repeated dd delete operation

2. Execute commands of the same number of times

Enter Normal mode input N<command> , n indicates the number of repetitions, and the following is the practice:

Open file file for editing

$ vim protocols

Below you can do the following exercises in turn:

    • Input 10x , delete 10 consecutive characters
    • Input 3dd , 3 lines of text will be deleted

In normal mode, you can also dw daw delete a word with or (delete a word), so you can easily associate (n with the dnw corresponding number ) to delete n words

Ii. Quick jump of cursors

In normal mode, the following command allows the cursor to be quickly reversed to the specified position, we discuss the rapid implementation of the inline jump and in-line jump

1. Jump between rows
Command Description
nG(n shift+g) Cursor moves to nth row (if no line number is displayed by default, enter command mode first :set nu to display line numbers)
gg Cursor moves to the first row
G(SHIFT+G) To the last line

Let's practice it:

Open the practice document with VIM

$ vim protocols

Do the following exercises in turn:

    • Quickly jump to line 9th and delete the row
    • Go back to the first line, delete 8 rows down
    • Jump to the end of the document and delete the row

tip: After you have completed the jump, you can use the Ctrl+o quick to go back to the previous (before the jump) cursor position , this technique is very practical, such as when you write code, suddenly think of a bug, need to change, this time you jump over to change, just need to press Ctrl+o You can go back to where you were before. Vim will be waiting for you to explore with a lot of similar tips.

2. In-line jump

In normal mode, use the following command to jump within a line in a word

Command Description
w To the beginning of the next word
e To the end of the next word
b To the beginning of the first word
ge To the end of the previous word
0Or^ to the wardrobe.
$ To end of line
f<字母> Search backwards < letters > and jump to the first matching position (very useful)
F<字母> Search forward < letters > and jump to the first matching position
t<字母> Search backwards < letters > and jump to a letter before the first matching position (not used)
T<字母> Search forward < letter > and jump to a letter after the first matching position (not used)

Do the following exercises in turn:

    • In normal mode, jump to a line, use w jump to the beginning of a word, and then use dw the word delete
    • In normal mode, use e jump to the end of a word and use ~ the letter that contains the cursor to capitalize or lower case

Third, copy paste and cut 1. Copy and paste text
    • Use replication in normal mode y

      • In normal mode, yy the entire line where the cursor is copied ( 3yy representing the replication of 3 rows)
      • In normal mode, y^ copy to the beginning of the line, or y0 . Does not contain the character at which the cursor is located.
      • In normal mode, y$ copy to end of line. The character where the light is contained.
      • In normal mode, yw copy a word.
      • In normal mode, y2w copy two words.
      • In normal mode, yG copy to the end of the text.
      • In normal mode, y1G copy to the beginning of the text.
    • Use paste in normal mode p

      • In normal mode, p (lowercase) represents pasting to the cursor (bottom)
      • In normal mode, P (uppercase) means pasting to the front of the cursor (top)

Open the file into normal mode practice the above command, you can now feel free yy to

$ vim protocols
2. Cut and paste

In fact, the dd deletion of the command is cut, each time you dd delete the contents of the document can be used p to paste, also this allows us to achieve a very refreshing function-exchange up and down line:

ddp, so simple, that it implements the fast Exchange cursor where the line is with the line below it

Iv. Summary

In this section you should have mastered several frequently used operations, including fast inter-line movement and fast inline movement, as well as cutting and copying and pasting operations, and I hope you will be able to practice more skillfully, and once you have mastered these operations, you can greatly improve your productivity.

Three: Find replacement one, character substitution and undo (undo Action) 1. Replace and revoke (undo) command

Both the Replace and undo commands are for normal mode operations

Command Description
r+< to replace letters > Replace the letter that contains the cursor with the specified letter
R Continuous replacement until you press theEsc
cc Replace the entire row, which deletes the row of the cursor and enters insert mode
cw Replace a word, delete a word, and enter insert mode
CUppercase Replace cursor later to end of line
~ Reverses the case of a cursor in the same letter
uN Undo One or N operations
UUppercase Undo all changes to the current line
Ctrl+r Redo, that is, undo undo operation

To open a file for editing:

$ vim practice_2# 输入以下文本

Then do the following:

    • Input 11G , jump to 11 lines
    • Enter FA to jump to the first a character
    • Input r , and the input b,a character is replaced by the B character (practical)
    • Enter a R replacement character, enter a new string, press ESC to return to normal mode (useful)
    • Enter cc replace whole line character, enter new string, press ESC to return to normal mode after entering
    • Enter cw replace one English word (word), press ESC to return to normal mode (useful)
    • Input ~ , the case of the character in which the rollover cursor is located
    • The input is C replaced with the end of the line, that is, the word will be replaced after the cursor is in place, press ESC to return to normal mode
    • Enter u undo Last action

Second, fast indent 1. Use commands to quickly adjust indent operations

This section learns how to indent quickly in vim and indent operations are effective in normal mode

Open a file for editing

$ vim protocols
    • Normal mode input 15G , jump to 15 lines
    • Input entire line in normal mode >> indent right (used to format code super cool)
    • Enter the entire line in normal mode to the << left fallback
    • Normal mode enter : command line mode to shiftwidth set values to control the number of characters for indentation and fallback
2.shiftwidth command

shiftwidthThe command refers >> to the indentation generated by the previous command (which can be abbreviated sw ). Enter : command line mode to set values in normal mode to control the number of characters in shiftwidth indentation and fallback get current setpoint

:set shiftwidth?

Set indent to 10 characters

:set shiftwidth=10

Enter ESC back into normal mode and try again to >> see if the indent changes

3. Adjust the text position

Command line mode enter :ce (center) command to center the contents of the bank


Command line mode enter :ri (right) command to make our text


Command line Mode enter: le (left) command to leave the contents of the bank


Third, find 1. Quick Find

Enter Normal mode / and then type the string you want to find and press ENTER to find it. is the same as the / function, but looks up and / down. After entering the lookup, the input n and N can continue to find n the expression to continue the lookup, N reverse Lookup

2. Quick Find Exercises

Use VIM to open a file for editing

$ vim protocols
    • Normal mode input /icmp find string ICMP
    • Normal mode Enter to n find the next ICMP
    • Normal mode input ?tcp up lookup string TCP
    • Normal mode input N to find the last occurrence of TCP
3. Advanced Search
    • Enter \* a word in normal mode to find where the cursor is located
    • Normal mode input \# Ibid, but \* forward (up) to find, #则是向后 (bottom) find
    • Normal mode g\* \* , but partially matches the word
    • Normal mode g\# \# , but partially matches the word

Search for n The above, N continue to find command can still be used

Four: Introduction to advanced functions one, multi-file editing 1. Use Vim to edit multiple files

There are two forms of editing multiple files, one being a parameter that is used before entering Vim is multiple files. Another is to enter vim and then edit the other files. Create two new files and edit them simultaneously

$ vim 1.txt 2.txt

Default Access 1.txt to file editing interface

    • Command line mode input :n edit 2.txt file, you can ! :n! Force switch, the input of a file is not saved, just switch to another file
    • Command line mode input :N edit 1.txt file, can be ! forced to :N! switch, the input in the previous file is not saved, just switch to another file
2. Open a new file after entering vim
    • Command line mode enter :e 3.txt open new file 3.txt
    • Command line mode input :e# back to the previous file
    • command-line mode input :ls to list previously edited documents
    • Command line mode input :b 2.txt (or number) can be directly into the file 2.txt edit
    • Enter :bd 2.txt (or number) in command-line mode to delete a file item from a previously edited list
    • Command line mode input :e! 4.txt , new open file 4.txt, discard the file being edited
    • Enter :f The file name you are editing in command line mode
    • Input in command line mode :f new.txt , change the file being edited name to New.txt
3. Recover files

If the document is not saved due to a power outage, you can use the recovery method, enter the vim -r document, input :ewcover 1.txt to restore

$ vim -r 1.txt
Second, Visual Mode 1. Introduction to Visual Mode commands
    • Enter in normal mode v (lowercase), enter the character selection mode, you can move the cursor, where the cursor will be selected. The selection is deselected when the V-meeting is pressed again.
    • In normal mode input Shift+v (lowercase), enter the line selection mode, press V will be the entire row selection, you can move up and down the cursor select more rows, again, press once Shift+v can be deselected.
    • In normal mode Ctrl+v (lowercase), this is the area selection mode, you can select the rectangular region, and then cancel the selection by one time Ctrl+v .
    • Enter d Delete selection area in normal mode
    • Enter y Copy selection area contents in normal mode
2. Visual Mode Command Practice

Copy the practice file to the current directory

$ cp /etc/protocols .

Open the practice file

$ vim protocols
    • In normal mode 9G , jump to line 9th, enter Shift+v (lowercase v), enter the visual mode for row selection, select 5 rows, press >> indent, indent 5 rows into oneshiftwidth
    • Enter in normal mode Ctrl+v (lowercase v), enter visual mode for rectangular area selection, select the first column character and then x delete the whole column

Third, Windows Operation 1. Introduction to Windows operation

Vim can open multiple windows in one interface for editing, which are called Vim windows. There are many ways to open a method, for example, you can use the command line mode input to :new open a new Vim window, and enter the window to edit a new file (Normal mode Ctrl+w can also be entered, but Ctrl+w in Chrome will be closed tab page with Chrome shortcut keys conflict, So with this shortcut you can practice in IE or other browsers, in addition to the :new command, the following list of methods can also be used in command mode or Normal mode to open a new window:

    • Command-line mode enter :sp 1.txt open new Landscape window to edit 1.txt
    • Command-line mode :vsp 2.txt to open a new vertical window to edit 1.txt
    • Ctrl-w ssplit the current window into two horizontal windows in normal mode
    • Ctrl-w vsplit the current window into two vertical windows in normal mode
    • In normal mode Ctrl-w q , it is: Q ends the split window. If you have input in a new window, you need to use the mandatory character! namely: q!
    • Ctrl-w oOpen a window in normal mode and hide all previous windows
    • Ctrl-w jmove to the following window in normal mode
    • Ctrl-w kmove to the upper window in normal mode
    • Ctrl-w hmove to the left window in normal mode
    • Ctrl-w lmove to the right window in normal mode
    • Ctrl-w Jmove the current window below in normal mode
    • Ctrl-w Kmove the current window to the top in normal mode
    • Ctrl-w Hmove the current window to the left in normal mode
    • Ctrl-w Lmove the current window to the right in normal mode
    • Ctrl-w -reduce the height of the window in normal mode
    • Ctrl-w +increase the height of the window in normal mode
2. Windows Operation exercises

Open the practice file

$ vim 1.txt
    • command-line mode input :new open a new vim window
    • Command-line mode enter :sp 2.txt open new Landscape window to edit 2.txt
    • Command-line mode enter :vsp 3.txt open new Landscape window to edit 3.txt
    • If you use a non-Chrome browser, you can use Ctrl+w the jump between windows
    • Enter :q! exit multi-window editing in command-line mode of different windows

Iv. document Encryption 1. Create an encrypted document
$ vim -x file1

Enter your password to confirm the password so that the next time you open, VIM will ask you to enter the password

V. Executing external commands in vim

Enter command-line mode ! to execute external shell commands

    • :!lsUsed to display the contents of the current directory
    • :!rm FILENAMEUsed to delete a file named filename
    • :w FILENAMESave the file you are editing in the current VIM as a filename file
Vi. viewing Help in the Help system 1.vim
    • Press F1 vim to open your own preset help document in normal mode
    • Enter :h shiftwidth shiftwidth The open Help file in command line mode
    • Input :ver display version and parameters in command line mode
Seven, function set 1.vim function setting

Can be set when editing the file function settings, such as the command line mode input :set nu (display number of lines), set value exit Vim will not be saved. To permanently save the configuration, you need to modify the Vim configuration file. Vim configuration file ~/.vimrc , you can open the file for modification, but be careful not to affect the normal use of vim

2. Get the current settings
    • Enter :set or :se display all modified configurations in command line mode
    • command-line mode input :set all displays all the SetPoint values
    • Command-line mode :set option? to enter a setting value that displays option
    • Command line mode to enter the :set nooption cancel current set value
Description of the 3.set function
    • :set autoindent(ai)automatic indentation of input settings in command line mode
    • Command line mode input :set autowrite(aw) set AutoArchive, default not open
    • Enter or in command line :set background=dark mode light , set the background style
    • Command line mode input :set backup(bk) set automatic backup, default not open
    • Command line mode input : set cindent(cin) set C language style indent

For more detailed parameters, please refer to the VIM manual

Viii. Summary

Through these four chapters of simple learning, you should have mastered the basic operation and use of VIM, but the main purpose of this course is to let you learn in the experimental building other need to use vim of the course without any problems. If you want to simply learn and master the Vim editor, through a variety of tutorials including the course of learning is not able to meet, because to master is related to your personal choice, which requires your constant contact and adhere to the long-term use of vim to complete a variety of editing operations to achieve, At the same time you need to master how to change and write vim configuration files and install various VIM plug-ins to achieve a variety of powerful features to meet your various demanding needs, and finally hope you have a good time in the experimental building

Play the VIM editor

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: 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.