One, VIM: is the enhanced version of VI, Visual Interface improved, it is full screen editor, modal editor, text version processing tool.
Vim Editor four modes: Edit mode (command line mode), input mode, last line mode, visual mode.
Second, vim open file, such as: Vim Test.txt if test.txt exists, open this file, do not exist to create this file and open, it should be noted that if there is a directory in front of the file, this directory must exist, such as Vim/my/test.txt so/my must exist.
vim +n test.txt打开test.txt并跳到第n行 vim + test.txt打开test.txt并跳到第最后一行 vim +/pattern test.txt 打开test.txt文件并且跳到第一次匹配到的pattern的行
Three, the switch between modes
vim打开文件时,是处于编辑模式下。 编辑模式--->输入模式,按: i:在当前光标所在字符前,转为输入模式,I:跳到行首(非空白字符),进入输入模式 o:在当前光标所在行的下一行,新建下一行,进入输入模式,O:在当前光标所在行的上一行,新建上一行,进入输入模式 a:跳到当前光标所在字符的后面一个字符,进入输入模式,A:跳到行尾,进入输入模式 输入模式--->编辑模式 按ESC退出输入模式,进入编辑模式 编辑模式--->末行模式 按 : 进入末行模式 末行模式--->编辑模式 按 ESC ESC 两下 编辑模式--->可视化模式 v或V 可视化模式--->编辑模式 按 ESC ESC 两下
Iv. cursor Movement (in edit mode)
1.上下左右方向键单个字符移动 2.k、j、l、h 可以上下左右单个字符移动光标 (与数字件的组合,可以实现多个字符移动,如 3 加上 h 可以向右移动三个字符) 3.以单词为单位移动 w:跳到下一个单词的词首 e:跳到单词的行尾,或下一个单词的词尾 b:跳到单词的行首,或上一个单词的词首 (同样可以和数字组合) 4.行内跳转 0:跳到行首 ^:跳到行首(非空白字符的行首) $:跳到行尾 5.行间跳转 G:跳到文件的最后一行 gg:跳到文件的最上一行 (同样可以和数字组合,在末行模式下直接给出行号,然后按回车键即可)
V. Flip screen Jump (edit mode)
ctrl+f :向下翻一屏 ctrl+b :向上翻一屏 ctrl+d :向下翻半屏 ctrl+u:向上翻半屏
Vi. Delete characters (in edit mode)
x:向后删除一个字符(可以和数字组合) dd:删除光标所在的行 dw,de:删除光标所在的单词的后面那部分,db:删除光标所在的单词的前面那部分(w不删除单词后面的空格,e删除空格,b不删除空格) 和数字组合如:d2下(方向键下)删除当前光标所在的行以及下面的两行 在末行模式下: .d回车,表示删除光标所在的那一行 $d回车,删除最后一行 +nd,删除当前光标所在行,以及下面的n行 n,md 删除第n行和第m行以及之间的行 需要注意:以上方式删除字符类似windows下的剪切,另外也可以直接在输入模式下按删除键删除。
Seven, copy characters, use the combination of Y, method with delete character
Eight, paste (in edit mode)
p:如果复制的某行的部分,那么粘贴在光标的行尾,否则粘贴在下一行 P:如果复制的某行的部分,那么粘贴在光标的行首,否则粘贴在上一行
Nine, replace (edit mode)
R: Replace the single character selected by the cursor
R: Enter replacement mode
X. Undo (Edit mode)
u:撤销前一次操作,可连续按u(可以和数字组合) ctrl+r:可以取消上一次的撤销操作
Xi. visualization mode (in edit mode)
v:一个字符一个字符的选取 V:矩形方式选取 (可以和y,d等组合,如选取之后按y,表示复制所选内容)
12. Find (edit mode)
/string or? String full-Text search for string characters, and jump to N or N to search for content
13. Find and replace (in the last line mode)
如:n,ms/string1/string2/gi 将n行至m行的string1替换成string2,g表示全部替换如果不加,则只替换第一个匹配到的,i 忽略大小写; n,$s/string1/string2/gi 将n行至最后行的string1替换成string2,g表示全部替换如果不加,则只替换第一个匹配到的,i忽略大小写; %s/string1/string2/g 全文替换,g表示全部替换如果不加,则只替换第一个匹配到的
14. Exit file (in the last line mode)
q 关闭文件不保存 q! 强制关闭文件,不保存(如果文件改动了,不想保存) wq 或 x 保存并退出,wq!强制保存退出 w ,w! 保存,强制保存不退出 在编辑模式下:ZZ 保存并退出。
Other than that:
在末行模式下,使用 read!command命令,可以执行command,并且把执行结果输出到光标的下一行,如在 “末行模式下” :read!cat /etc/inittab 可以把/etc/inittab中的文件内容输出到光标的下一行。
VI or VIM Editor