> For the complete documentation index, see [llms.txt](https://qmmms.gitbook.io/note/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://qmmms.gitbook.io/note/linux/qms07vim-bian-ji-qi.md).

# vim编辑器

## vim三种状态

***

**一般模式**：(这是默认的模式)。在这个模式中， 你可以使用上下左右按键来移动光标，你可以使用删除字符或删除整行来处理文件内容， 也可以使用复制、粘贴来处理你的文件数据。

**编辑模式**：可以编辑文件的内容，一般模式当按下【i, I, o, O, a, A, r, R】等任何一个字母之后会进入编辑模式。这时候屏幕的左下方会出现【INSERT或 REPLACE】的字样，此时才可以进行编辑。按下【Esc】即可退出编辑模式，回到一般模式。

**命令行模式**：输入【 : / ? 】三个中的任何一个，就可以将光标移动到最底下那一行。在这个模式中， 可以提供查找、读取、存盘、替换字符、离开vim（q 加 Enter）、显示行号等的动作。

## 一般模式按钮说明

***

**移动光标**

【h、j、k、l】，分别控制光标左、下、上、右移一格

【w】光标跳到下个字的开头

【b】光标跳到前一个字的开头

【e】光标跳到下个字的字尾

【gg】 移动到这个文件的第一行

【G】 移动到这个文件的最后一行

【ctrl + f】屏幕往"后"移动一页

【ctrl + b】屏幕往"前"移动一页

**删除、复制与粘贴**

【x】 为向后删除一个字符 (相当于【del】键)

【X】 为向前删除一个字符(相当于【backspace】键)

【nx】 连续向后删除n个字符

【dd】 删除光标所在行

【yy】 复制光标所在的那一行

【p】将已复制的数据在光标下一行粘贴上

**撤销与重做**

【u】 恢复前一个操作

【Ctrl+r】重做上一个操作

【.】 是重复前一个操作

## 命令行模式按钮说明

***

【:w】 保存编辑的内容

【:w!】强制写入该文件，但跟你对该文件的权限有关

【:q】 离开vi

【:q!】 不想保存修改强制离开

【:wq】 保存后离开

【:x】 保存后离开

【ZZ】 若文件没有更动，则不保存离开，若文件已经被更改过，则保存后离开

## 可视区块

***

这个功能可以自由选择区块进行操作，选中的部分会反白显示

* `v`：字符选择
* `V`：行选择
* `[Ctrl]+v`：区块选择
* `y`：复制选中区块
* `d`：删除选中区块
* `p`：黏贴选中区块

## 多文件编辑

***

* 使用命令`vim 文件1 文件2 ...`来一次打开多个文件
* `:files`：列出当前开启的所有文件
* `:n`编辑下一个文件
* `:N`编辑上一个文件

## 多窗口编辑

***

* `:sp`：打开一个新窗口
* `[Ctrl] + w + j`：移到下方窗口（按住 \[Ctrl] 按 w，然后全松开，按 j ）
* `[Ctrl] + w + [下方向键]`：移到下方窗口
* `[Ctrl] + w + k`：移到上方窗口
* `[Ctrl] + w + [上方向键]`：移到上方窗口
* `:close`：关闭所在窗口
* `[Ctrl] + w + q`：关闭所在窗口

## vim设置

***

* `:set nu`：设置行号
* `:set nonu`：不要行号
* `:set autoindent`：自动缩进
* `:set noautoindent`：不要自动缩进
* `:set`展示与默认设置不同的参数
* `:set ts=4`：设置\[tab]键为四个空格

以上的设置都是一次性的，如果需要一直保留设置，建立`/.vimrc`文件，编辑设置（去掉冒号）
