vim的基本介绍
简单来说,Vim是一个类似于vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性,支持Linux/Mac OS X/Windows系统,利用它可以建立、修改文本文件。
在终端输入命令$vim [filename]即可使用,其中filename为编辑器的文件的路径名。如果文件不存在,它将为你建立一个新文件。
vim的基本模式
-
Normla(正常模式)mode
当你启动Vim后,Vim会处于Normal模式。正常模式主要用来浏览和修改文本内容的。在任何模式下,只要按下 Esc 键就可以返回正常模式。

正常模式
-
Insert(插入模式)mode
插入模式则用来向文本中添加内容的。如何进入插入模式下面会有介绍。

插入模式
-
visual(可视化模式)mode
在正常模式按下v, V, <Ctrl>+v,可以进入可视模式。可视模式中的操作有点像拿鼠标进行操作,选择文本的时候有一种鼠标选择的即视感,有时候会很方便。

可视化模式
-
command(命令模式)mode
在正常模式中,按下:(冒号)键,会进入命令模式。在命令模式中可以执行
一些输入并执行一些vim或插件提供的指令,就像在shell里一样。这些指令包括
设置环境、文件操作、调用某个功能等等。

命令模式
vim的基础操作
-
文件命令
| 命令 | 操作 |
|---|---|
| vim file | 打开文件 |
| vim file1,file2,file3 | 打开多个文件 |
| :open file | 在新窗口中打开文件 |
| :bn | 切换到上一个文件 |
| :bp | 切换到下一个文件 |
| :args | 查看当前打开的文件列表 |
| :w filename | 保存到filename |
| :#,# w filename | 保存部分文件内容#~#之间 |
| :r filename | 向当前插入其他文件的内容 |
| :q! | 不保存退出 |
| :wq | 保存并退出 |
| :e! | 放弃所有修改退出 |
-
移动命令
| 命令 | 操作 |
|---|---|
| h/j/k/l | 向左/下/上/右移动 |
| w/b | 下一个/上一个单词开头 |
| e/ge | 下一个/上一个单词结尾 |
| W/B | 和w/b相同,但跳过符号 |
| 0 | 本行第一个字符上 |
| ^ | 本行第一个非空白字符 |
| $ | 行尾 |
| % | 查找匹配的括号 |
| {/} | 上一段/下一段 |
| gg | 文件头部 |
| G | 文件结尾 |
| :line | 到第line行 |
| C-d/C-u | 向下/向上滚到半屏 |
| C-f/C-b | 向下/向上滚到一屏 |
-
编辑命令
| 命令 | 操作 |
|---|---|
| i/a | 当前位置之前/之后插入 |
| I/A | 当前行行首/行尾插入 |
| o/O | 当前行之后/之前插入一行 |
| s/old/new | old替换new,只替换一个 |
| [%/#,#]s/old/new/g | old替换new,替换当前行所有,%是全文,#,#是指两行之间 |
| x | 删除当前字符 |
| X | 删除当前字符的前一个字符 |
| dl/dh | =x/X |
| dd/dj/dk | 删除当前行/上一行/下一行 |
| yy | 拷贝当 前行 |
| p/P | 在当前行后/前粘贴 |
| v选择后+y | 可视模式选择后复制 |
| :1,10 co 20 | 1到10行拷贝到20行之后 |
| :1,10 m 20 | 1到10行移动到20行之后 |
| </> | 缩进/反缩进 |
| C-n/C-p | 在编辑模式下自动补齐 |
-
查找命令
| 命令 | 操作 |
|---|---|
| /text | 正向查找text,n下一个,N上一个 |
| ?text | 反向查找text,n下一个,N上一个 |
| */# | 对当前词正向/反向查找 |
| fx | 向后搜索x |
| :set ignorecase | 忽视大小写 |
| :set hlsearch | 高亮搜索 |
| :set incsearch | 逐步搜索,对当前输入的进行搜索 |
| :set noxxxx | xxxx对应以上操作,指取消选项 |
| :set wrapscan | 重新搜索 |
| ctrl+b | 向上快速翻页 |
| ctrl+f | 向下快速翻页 |
-
窗口命令
| 命令 | 操作 |
|---|---|
| new/split/vsplit | 打开一个新窗口,最后一个水平 |
| C-w+方向 | 移动到指定窗口 |
| :close/q | 关闭窗口,如果只有个一个窗口,q会退出vim |
-
控制命令
| 命令 | 操作 |
|---|---|
| u | 撤销最后执行的命令 |
| U | 修正整行 |
| C-r | Redo命令 |
| C-g | 显示光标所在行位置及文件状态信息 |
| . | 重复上一次命令 |
| v | 可视化模式 |
| C-v | 可视化块模式 |
-
其他命令
| 命令 | 操作 |
|---|---|
| :! | 执行外部命令 |