# vim三种模式
![](http://kanyun.huikezk.com/3545dde7a3b6e7d389b95f327b7508f2)
**命令模式(Command mode)**,**输入模式(Insert mode)和底线命令模式(Last line mode)**
## 命令模式
| 命令 | 作用 |
| --- | --- |
| dd | 剪切 |
| 5dd | 从光标处开始剪切5行 |
| yy | 复制 |
| 5yy | 从光标开始复制5行 |
| n | 显示搜索下一个字符串 |
| N | 显示搜索上一个字符串 |
| u | 撤销 |
| p | 粘贴 |
| db | 删除单词 |
| b | 移动到单词开头 |
| e | 移动到单词结尾 |
| G | 移动到文档末尾 |
| gg | 移动到文档第一行 |
| 0 | 移动到一行最前 |
| $ | 移动到一行最后 |
| . | 重复上一个动作 |
## 底线命令模式
| 命令 | 作用 |
| --- | --- |
| :w | 保存 |
| :q | 退出 |
| :q! | 强制退出放弃修改 |
| :x | 保存并退出 |
| :noh | 取消高亮 |
| :set nu | 显示行号 |
| :命令 | 执行命令 |
| :整数 | 跳转到该行 |
| :s/one/two | 替换本行第一个one |
| :s/one/two/g | 替换本行所有one |
| :%s/one/two/g | 替换全文one |
| ?字符串 | 从下到上搜索字符 |
| /字符串 | 从上到下搜索字符 |
| :n1,n2d | 删除n1-n2行 |
## 输入模式
| 命令 | 作用 |
| --- | --- |
| i,I | 进入输入模式从光标处开始 |
| a,A | 进入输入模式从光标后开始 |
| o,O | 进入输入模式从光标上一行开始 |
| r,R | 进入取代模式 |
```
set ts=4
set nu
set expandtab
set autoindent
set hls "查找高亮
set ai "保存上次的缩进
set smartindent "为C程序提供自动缩进
set shiftwidth=4 "自动缩进
et softtabstop=4
filetype plugin indent on " 必须 加载vim自带和插件相应的语法和文件类型相关脚本
set completeopt=longest,menu " 智能补全 Ctrl + n / p
set incsearch "在搜索时,输入的词句的逐字符高亮(类似firefox的搜索)
set cindent " 使用C样式的缩进
set fenc=utf-8
set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936
syntax on "语法高亮
set spell
set autowrite "自动保存
set mouse=nv "允许使用鼠标点击 普通和可视模式
set autoread " 文件修改之后自动载入
set nowrap "不断行
```
# 插件
下载插件:[https://www.vim.org/scripts/script\_search\_results.php](https://www.vim.org/scripts/script_search_results.php)
~/.vim/plugin里放置下载的插件
#
# 常用操作
## **一次打开多个文件**
一、如果在终端还没有打开vim
1、vim横向分屏打开多个文件
~~~
vim -o 文件1 文件2
~~~
2、vim纵向分屏打开多个文件
~~~
vim -O 文件1 文件2
~~~
二、如果在终端已经打开vim
1、横向分屏打开另一个文件
~~~
:vs 文件
~~~
2、纵向分屏打开另一个文件
~~~
:sp 文件
~~~
三、关闭窗口
1、关闭所有
~~~
:qa
~~~
2、关闭光标所在窗口
~~~
:q或者:close
~~~
3、关闭除光标所在的窗口之外的其它窗口
~~~
:only
~~~
四、切换窗口
~~~
ctrl + w w(w按两次)
或者
ctrl + hjkl
~~~