wiki/运维/操作系统/Linux/笔记/12.文本编辑-VIM.md
2026-04-08 15:02:24 +08:00

180 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 1、Vim 概览
Vim 是 Linux 中最常见的文本编辑器之一,特点是:
- 几乎所有 Linux 环境都能遇到
- 适合终端内快速编辑文件
- 对运维排障、改配置、写脚本都很常用
学习 Vim 的关键,不是死记命令,而是先理解它的**模式切换**。
## 2、Vim 的常见模式
### 2.1 普通模式
打开 Vim 后默认进入普通模式,用于:
- 移动光标
- 删除、复制、粘贴
- 查找
- 执行命令
### 2.2 插入模式
用于输入和编辑文本。
常见进入方式:
- `i`:在当前位置前插入
- `a`:在当前位置后插入
- `o`:在下一行插入
`Esc` 可以回到普通模式。
### 2.3 命令行模式
在普通模式下输入 `:` 进入,用于:
- 保存
- 退出
- 查找替换
- 设置选项
- 执行外部命令
## 3、常用命令操作
### 3.1 文件读写
- `:w`:保存文件
- `:q`:退出
- `:wq`:保存并退出
- `:q!`:强制退出不保存
- `:w filename`:另存为其他文件
- `:r filename`:把另一个文件内容读入当前文件
### 3.2 调用外部命令
- `:!command`:执行外部命令
- `:r !command`:读取命令输出到当前文件
示例:
```vim
:!ls
:r !date
```
### 3.3 删除、复制、粘贴
- `d`:删除
- `dd`:删除当前行
- `y`:复制
- `yy`:复制当前行
- `p`:在后面粘贴
- `P`:在前面粘贴
### 3.4 撤销与恢复
- `u`:撤销
- `Ctrl + r`:恢复撤销的内容
- `U`:某些版本中用于撤销当前行的修改,但现代 Vim 更常用 `u`
## 4、常用设置项
以下命令通常在命令行模式执行:
- `:set nu`:显示行号
- `:set nonu`:取消行号
- `:set ic`:查找时忽略大小写
- `:set noic`:查找时区分大小写
- `:set ai`:启用自动缩进
- `:set noai`:关闭自动缩进
- `:set list`:显示不可见字符
- `:set nolist`:不显示不可见字符
### 4.1 加密说明
```vim
:set key=passwd
```
可以为文件设置编辑时的加密口令。
```vim
:set key=
```
取消口令。
不过这类方式现在并不是最常见的安全手段,实际生产中更常依赖系统权限和加密存储方案。
## 5、查找与替换
### 5.1 查找
在普通模式下输入:
```vim
/关键字
```
然后:
- `n`:向下查找下一个
- `N`:向上查找上一个
### 5.2 替换
基本格式:
```vim
:s/旧内容/新内容/修饰符
```
### 5.3 常见修饰符
- `i`:忽略大小写
- `g`:一行内全局替换
- `gc`:替换前逐个确认
### 5.4 示例
替换当前行第一个 `old`
```vim
:s/old/new/
```
替换当前行全部 `old`
```vim
:s/old/new/g
```
替换全文所有 `old`
```vim
:%s/old/new/g
```
替换全文并逐个确认:
```vim
:%s/old/new/gc
```
## 6、日常使用建议
- 改系统配置文件前,先备份
- 编辑大文件时优先用查找和行号定位
- 做全局替换时,尽量先用 `gc` 确认,避免误改
- 需要长期使用时,可以把常用设置写入 `~/.vimrc`
## 7、小结
- Vim 的核心是理解普通模式、插入模式和命令行模式
- `:w``:q``:wq``:q!` 是最常用的保存退出命令
- `dd``yy``p``u` 是高频编辑命令
- `/` 查找和 `:%s///g` 替换是最常用功能
- 熟练掌握 Vim 后,终端下改配置文件会高效很多