1. 什么是vim编辑器
vim是一款纯命令行操作、功能可扩展、高度可定制的文本编辑器。
1.1 安装vim编辑器
Ubuntu发行版本安装命令:
# apt-get install vim //管理员(root)用户
$ sudo apt-get install vim //普通用户
红帽类发行版本安装命令:
yum install vim
查看版本号:vim -v
输出:

1.2 vim常用命令
1.2.1 vim工作模式
vim有多种工作模式,方便我们浏览、编辑、搜索等。常见的工作模式如下:
- 普通模式: 打开文件时的默认模式,在其他模式下按下ESC按键都可返回该模式;
- 插入模式: 按i/o/a键进入该模式,可进行文本编辑操作,不同之处在于插入位置在光标之前还是之后;
- 命令行模式:普通模式下输入冒号(英文的:)后会进入该模式,可在该模式下输入命令来,如输入":set nu"用来显示行数;
- 可视化模式:在普通模式下按v键可以进入该模式。在该模式下移动光标可以选中一块文本,然后进行复制、剪切、删除、粘贴等操作;
- 替换模式: 在普通模式下通过光标选中一个字符,然后按下r键,在输入一个字符就可以替换光标选中的字符。
1.2.2常用命令
-
单个字符移动
- k:光标向上移动一个字符
- j:光标向下移动一个字符
- h:光标向左移动一个字符
- l:光标向右移动一个字符
-
单词移动
- w:光标移动到下一个单词的开头
- b:光标移动到上一个单词的开头
- e:光标移动到下一个单词的词尾
- E:光标移动到下一个单词的词尾(忽略标点符号)
- ge:光标移动到上一个单词的词尾
- 2w:指定移动光标2次移动到下下个单词的开头
-
行移动
- $:将光标移动到当前行的行尾
- 0:将光标移动到当前行的行首
- ^:将光标移动到当前行的第一个非空字符
- 2|:将光标移动到当前行的第2列
- fx:将光标移动到当前行的第1个字符x上
- 3fx:将光标移动到当前行的第3个字符x上
- %:符号间移动,在()、[]、{}之间跳跃
-
屏幕移动
- nG:光标条状到指定的第n行
- gg/G:光标跳转到文件的开头/末尾
- L:光标移动到当前屏幕的末尾
- M:光标移动到当前屏幕的中间
- ctrl + g:光标查看当前的位置状态
- ctrl + u/d:光标向前/后半屏滚动
- ctrl + f/b:光标向前/后全屏滚动
-
文本的基本操作
- i/a:在当前光标的前/后插入字符
- I/A:在当前光标所在行的行首/行尾插入字符
- o:在当前光标所在行的下一行插入字符
- x:删除当前光标所在的字符
- X:删除当前光标左边的字符
- dw:删除一个单词
- dd:删除当前光标所在的行
- 2dd:删除当前光标所在的一行和下一行
- yw:复制一个单词
- yy:复制光标所在的一行
- p:粘贴,粘贴到光标所在的下一行
- J:删除一个分行符,将当前行和下一行合并
-
文件的查找与替换
- /string:普通模式下输入/string即可向下查找字符串string
- ?string:反向查找字符串string
- :set hls:高亮显示光标处的单词,按下n键浏览下一个
- s/old/new:将当前行的第一个old字符串替换为new
- s/old/new/g:将当前行的所有old字符串替换为new
- %s/old/new/g:将文本中所有的old字符串替换为new
- %s/^old/new/g:将文本中所有以old开头的字符串替换为new
-
文本的保存和退出
- u:撤销上一步操作
- q:若文件没有修改,可直接退出
- q!:不保存直接退出
- wq:保存退出
- e!:放弃修改,还原到文件打开时的状态
- w !sudo tee %:在shell的普通用户模式下保存root读写权限的文件。
1.3 vim相关配置
略,自行百度。