# vim编辑器之神
### 配置vimrc配置
在shell中可以通过 `vim ~/.vimrc` 或者 `vim /etc/vimrc` 打开vimrc文件对vim进行配置。在这个文件中可以进行很多和vim相关的配置,常用的如下(如果对其他配置感兴趣的可以自己百度):
```
syntax on " 语法高亮
set number " 设置显示行号
set tabstop=4 " 设置一个tab键对应4个空格
set ruler " 显示光标位置信息
set cursorline " 突出显示当前行
set autoindent " 自动缩进
```
### 常用操作
#### 1.模式切换
我们可以将vim分为命令模式、编辑模式和末行模式三种
**命令模式:**进入vim的时候vim是处于命令模式状态下的,这个时候输入内容不会出现在编辑区 (最末什么都没有)
**末行模式:**在命令模式下输入冒号,让vim进入末行模式。在末行模式的冒号后面可以输入相关的一些指令进行相关操作 (最后有一个冒号)
**编辑模式:**在命令模式下按'i'进入编辑模式。在编辑模式下可以对文件内容进行编辑 (最后 --INSERT-- 或者 --插入--)
#### 2.保存和退出
在**末行模式**下输入相应的指令可以对编辑区的内容进行保存和退出vim界面
**w** -- 只保存(类似快捷键ctr+s)
**q** -- 退出(在编辑区的内容全部都保存的情况下才有效)
**wq** -- 保存并退出
**q!** -- 强制退出(不保存修改信息)
#### 3.光标操作
以下光标操作都是在**命令模式**下输入的
**^(shift+6)** -- 移动到行首
**$(shift+4)** -- 移动到行尾
**w** -- 往前移动一个单词
**b** -- 往后移动一个单词
**G(shift+g)** -- 移动到文件末尾
**行号G** -- 移动到指定行,例如:30G, 让光标直接跳转到行号是30的那一行
**gg** -- 移动到文件开头
#### 4.文本操作
以下操作不带冒号的是在命令模式下输入,前面有冒号代表后面的内容是在末行模式下输入
**yy** -- 复制光标所在的行
**数字yy** -- 从光标所在行开始复制指定行数的内容
**p** -- 将复制的内容粘贴到光标所在的位置
**dd** -- 删除光标所在的行
**数字dd** -- 从光标所在行开始往后面开始删,删除指定数量行内容
**:%d** x -- 删除所有
**u** -- 撤销
**ctr+r** -- 反撤销
**:%!sort** -- 对内容排序(将一行内容看成一个字符串,然后按字符串大小进行排序)
**:/正则表达式** -- 搜索匹配正则表达式的内容,按回车回到命令模式后按n往前查找,按N往后查找
注意: 正则表达式除了表示次数的符号前需要加\,别的和python是一样的.例如:
```
:/\d\{2} -> 查找两个数字
:/a\+ -> 查找a出现一次或者多次
```
**:1,$s/被替换对象/替换内容/参数** -- 将正则表达式匹配到的内容替换成指定内容
注意: 参数可以没有
- g: 全局匹配 (默认情况下每一行只替换一个查找对象,全局匹配的时候一行如果有多个查找全部替换)
- i: 忽略大小写
- c: 替换时需要提示
- e: 忽略错误
#### 5.高级操作
##### 1)比较多个文件
vim -d 文件1 文件2
##### 2)打开多个文件
vim 文件1 文件2 文件2 ...
```shell
# 1.显示文件
末行模式下输入: ls # 查看当前打开的所有的文件和对应的标号
末行模式下输入: b 标号 # 让当前窗口显示指定的文件内容
#2.拆分和切换窗口
末行模式下输入: sp/vs #对当前窗口进行水平/垂直拆分(拆分后可以通过ctr+ww来切换窗口)
```06.vim编辑器日常指令
本节1996字2025-03-13 18:38:28