
**vim** 是**vi**的升级版本，它不仅兼容vi的所有指令，还有一些新特性
```
// 使用vim模式打开文件
▶ vim [path/filename]
```

## 概述

* 命令模式（command mode）-  默认模式
* 插入模式（Insert mode）通过按下字母`i`进入该模式，用于输入文字
* 可视模式   按下  `v` 进入，常用于复制粘贴
* 底行模式（last line mode）通过`:`进入，用于保存以及退出


## 一、插入模式

* `i` 进入插入模式后从当前位置开始输入文字
* `o` 插入新的一行，从行首开始输入文字
* `a`	从当前光标的下一个位置开始输入文字

`esc`退出插入模式


## 二、命令模式

### 1、移动
正规的vi操作是`h(左)、j(下)、k(上)、l(右)`分别控制光标移动

* `ctrl+u` 屏幕向上半页， 不是光标移动
* `ctrl+d` 屏幕向下半页， 不是光标移动

* `0`到行首
* `$`到行末

* `w` 到下个单词的开头
* `e` 到下个单词的字尾
* `b` 回到上个单词的开头

### 2、删除
* 小写`x` 每按一次，删除当前光标一个字符, `#x`删除`#`个
* 大写`X` 每按一次，删除当前光标前面一个字符

* `dd`删除一行, `#dd`从当前行开始删除`#`行

### 3、复制粘贴
* `yy`复制当前行， `#yy`复制`#`行
* `p` 粘贴 粘贴到当前行的下方

### 4、撤销
`u`撤销上一步操作


## 三、可视模式

* 从当前光标开始，移动光标，会选中内容
* `y`复制
* 移动光标到对应位置，`p`粘贴
* `esc`退出


## 四、底行模式

* `w [filename]`将文章以指定的文件名`[filename]`保存
* `w`保存   `wq` 保存并退出
* `q!` 不保存强制退出

* `set nu` 列出行数
* `#`再回车，光标就会自动跳转到第`#`行
* `[#1],[#2]d`回车，删除`[#1]` -> `[#2]`行

* `/[搜索词]`， 一直按`n`可持续向下查找
* `?[搜索词]`， 一直按`n`可持续向上查找


## 五、其他操作

### 1、多行注释/插入
* `ctrl + v` 进入区块模式 (VISUAL BLOCK)
* 移动光标选择多行（可视模式下移动光标即为选择该行）
* 大写`I`，进入插入模式
* 输入注释符`#或者//`，这里只会看见注释了一行，不要慌
* `esc`退出，稍等一会选中的全部行都会被注释

如果要同时编辑多行，道理是一样的，可以自己试一下，把注释符号理解为插入字符即可

### 2、多行删除
* `ctrl + v` 进入区块模式 (VISUAL BLOCK)
* 移动光标选择多行（可视模式下移动光标即为选择该行）
* `x`或者`d` 删除对应字符
注意，按一次只能删除一个字符，如果是`//`这种，需要执行两次操作
