1、vi的基本概念
基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),进入vi之后,是处于「命令行模式(command mode)」,在「命令行模式(command mode)」下按一下字母「i」就可以进入「插入模式(Insert mode)」,这时候你就可以开始输入文字了。按一下「ESC」键转到「命令行模式(command mode)」。

2、命令行模式(command mode)功能键
1). 移动光标

「gg」:移到文章的开头。

「SHIFT-G」:移动到文章的最后。

「$」:移动到光标所在行的“行尾”。

「^」:移动到光标所在行的“行首”

2). 删除文字

「dd」:删除光标所在行。

「#dd」:从光标所在行开始删除#行

3). 复制

「yw」:将光标所在之处到字尾的字符复制到缓冲区中。

「#yw」:复制#个字到缓冲区

「yy」:复制光标所在行到缓冲区。

「#yy」:例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字。

「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。

4). 撤消

「u」:输入 u 撤消最后执行的(一次)命令。

3、Last line mode下命令简介
在使用「last line mode」之前,请记住先按「ESC」键确定您已经处于「command mode」下后,再按「:」冒号即可进入「last line mode」。

1) 列出行号

「set nu」:输入「set nu」后,会在文件中的每一行前面列出行号。

2) 跳到文件中的某一行

「#」:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行。

3) 查找

「/关键字」:先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往后寻找到您要的关键字为止。

「?关键字」:先按「?」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往前寻找到您要的关键字为止。

4) 查找并替换
  「%s/old/new/g」:全局替换 old 为 new。
  「%s/old/new/gc」:进行全文替换时询问用户确认。
  「#,#s/old/new/g」:替换两行之间出现的每个匹配串 old 为 new(#,#代表的是两行的行号)。

5) 保存文件

「w」:在冒号输入字母「w」就可以将文件保存起来。

6) 离开vi

「q」:按「q」就是退出,如果无法离开vi,可以在「q」后跟一个「!」强制离开vi。

「wq」:一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件。

7) 在 VIM 内执行外部命令
  输入 :!command 用于执行一个外部命令 command。所有的外部命令都可以以这种方式执行。所有的 : 命令都必须以 <回车> 告终。

  例子∶
  :!dir  -  用于显示当前目录的内容。
  :!rm FILENAME  -    用于删除名为 FILENAME 的文件。

8)文件保存与提取
  :w FILENAME  可将当前 VIM 中正在编辑的文件保存到名为 FILENAME 的文件中。
  :#,#w FILENAME 可将当前编辑文件第 # 行至第 # 行的内容保存到文件FILENAME 中。
  :r FILENAME 可提取磁盘文件 FILENAME 并将其插入到当前文件的光标位置后面。
  :e FILENAME 打开另外一个文件(打开新文件前,请先保存文件。