在 Vim 里,你这个需求本质是:**“删除当前字符并立即输入一个新字符”**,最短路径如下:
---
### ✅ 最快:`r`
```vim
rX
```
👉 含义:
* `r` = replace(替换当前光标所在字符)
* `X` = 你要替换成的字符
---
### 🎯 示例
光标在 `a` 上:
```text
cat
^
```
输入:
```vim
rb
```
结果:
```text
cbt
^
```
---
### ⚡ 为什么这是最快的
* 不进入插入模式(比 `x + i` 少一步)
* 不移动光标
* 单指令完成替换
---
### 🚫 常见但更慢的写法
| 写法 | 问题 |
| ------- | --------------------------------- |
| `x i X` | 多一步进入插入模式 |
| `sX` | 会进入 insert mode(适合连续输入,但不适合单字符替换) |
---
### 📌 补充(进阶)
* `R`:进入**连续替换模式**(类似覆盖写)
* `cw`:替换一个单词(不是单字符)
---
如果你平时在做类似“批量改配置 / 改IP / 改域名”的活,我可以给你一套 Vim 高频操作组合(非常适合你现在做 Ansible / 运维场景)。
```
如果你平时在做类似“批量改配置 / 改IP / 改域名”的活,我可以给你一套 Vim 高频操作组合(非常适合你现在做 Ansible / 运维场景)。
```
好,这类“改配置 / 改 IP / 改域名”的场景,本质是**高频重复编辑 + 模式化替换**,在 Vim 里可以做到非常高效。下面给你一套**实战型组合拳**(偏运维 / Ansible 场景):
---
# 一、全局替换(最核心)
### ✅ 批量改 IP / 域名
```vim
:%s/10\.75\.17\.15/10.75.17.25/g
```
👉 要点:
* `%` = 全文件
* `g` = 一行中全部替换
* `.` 必须转义
---
### ✅ 带确认(防误伤)
```vim
:%s/src\.old\.com/src.new.com/gc
```
👉 每次替换前确认(y/n/a/q)
---
### ✅ 只替换匹配行
```vim
:g/nginx/s/80/8080/g
```
👉 只在包含 `nginx` 的行里替换端口
---
# 二、可视块批量改(改多行同一列)
👉 运维改配置神器(比如改一列 IP)
### 操作步骤:
```text
Ctrl + v # 进入块模式
选中多行列
Shift + i # 插入
输入内容
Esc # 批量生效
```
---
### 🎯 示例
批量在行首加 `#`:
```text
server1
server2
server3
```
操作后:
```text
#server1
#server2
#server3
```
---
# 三、宏(解决重复操作)
👉 适合“结构一样但不能纯替换”的场景
### 录制宏:
```vim
qa # 录制到寄存器 a
...操作...
q # 结束
```
### 执行:
```vim
@a # 执行一次
10@a # 执行10次
```
---
### 🎯 示例(改 hosts 格式)
```
10.1.1.1 test1
10.1.1.2 test2
```
改成:
```
test1 ansible_host=10.1.1.1
```
👉 用宏比手动快 10 倍
---
# 四、正则增强(精准匹配)
### ✅ 匹配 IP
```vim
:%s/\v\d+\.\d+\.\d+\.\d+/REPLACED/g
```
---
### ✅ 交换 IP 和主机名
```vim
:%s/\v(\S+)\s+(\S+)/\2 ansible_host=\1/
```
👉 非常适合你做 Ansible inventory
---
# 五、多文件批量处理(运维高频)
### ✅ 打开多个文件
```bash
vim *.ini
```
### ✅ 批量执行替换
```vim
:argdo %s/old/new/ge | update
```
👉 含义:
* `argdo`:对所有文件执行
* `e`:忽略错误
* `update`:有修改才保存
---
# 六、快速改“当前词”(最常用)
### ✅ 改当前单词
```vim
ciw
```
👉 删除当前词并进入插入模式
---
### ✅ 全文替换当前词
```vim
:%s/<C-r><C-w>/new/g
```
👉 `<C-r><C-w>` = 当前光标单词
---
# 七、跳转 + 修改(提速关键)
### ✅ 快速跳到下一个并改
```vim
n + .
```
👉 含义:
* `n`:下一个匹配
* `.`:重复上次修改
---
### 🎯 场景
1. `/8080` 搜索
2. `r9` 改成 9090
3. `n . n . n .`
👉 秒级批量修改
---
# 八、删除 IP(你之前那个问题的正解)
```vim
diW
```
👉 删除整个“WORD”(含点号的 IP)
---
# 总结(给你一个运维优先级)
最值得掌握的 5 个:
1. `:%s///g` —— 全局替换
2. `Ctrl+v` —— 块编辑
3. `ciw` —— 改单词
4. `.` —— 重复操作
5. `:argdo` —— 多文件处理
---
如果你愿意,我可以**专门给你定制一套:Ansible / inventory / nginx / hosts 文件的 Vim 快速编辑模板**,直接贴你现在的文件结构,我帮你把操作路径优化到“最少按键数”。
```
专门给你定制一套:Ansible / inventory / nginx / hosts 文件的 Vim 快速编辑模板,我只是修改单个文件时间较多,想最少步骤实现vim操作文件罢了。
```
明白,你的目标不是“炫技”,而是**单文件场景下最少按键数完成修改**。那我给你一套**极简操作模型(偏运维高频场景)**,只保留真正有用的。
基于 Vim,下面这些就是“效率上限组合”。
---
# 一、核心原则(先建立思维模型)
你所有操作可以压缩成 3 类:
1. **就地改**(不移动光标)
2. **跳一下 + 改**
3. **一次改 + 无限复用(.)**
---
# 二、最少按键的“就地修改”
### ✅ 改一个字符(你刚问的)
```vim
rX
```
---
### ✅ 改整个 IP(重点)
```vim
ciW
```
👉 比 `diW + i` 少一步
---
### ✅ 改变量 / 域名(最常用)
```vim
ciw
```
👉 例如:
```
server_name old.com;
```
光标在 `old.com` → `ciw new.com`
---
### ✅ 改到行尾(改 nginx 特别多)
```vim
C
```
👉 等价于 `c$`
---
### ✅ 改引号/括号内内容(高级但高频)
```vim
ci"
ci'
ci)
ci]
```
👉 例如:
```nginx
proxy_pass "http://old";
```
光标在里面 → `ci"` → 输入新地址
---
# 三、跳一下 + 改(比全局替换更快的场景)
### ✅ 改下一个匹配(极高频)
```vim
/old
```
然后:
```vim
n + .
```
---
### 🎯 实战(改多个 IP)
1. `/10.75`
2. `ciW 10.52.14.86`
3. 然后:
```vim
n . n . n .
```
👉 比 `:%s` 更安全(避免误伤)
---
# 四、可控替换(比宏更轻量)
### ✅ 当前词全局替换(极推荐)
```vim
:%s/<C-r><C-w>/new/g
```
👉 你只需要:
* 光标放在旧词上
* 一条命令搞定
---
# 五、删除类(你之前问过的延伸)
### ✅ 删除 IP(最优)
```vim
diW
```
---
### ✅ 删除等号右边(配置文件神器)
```vim
d$
```
---
### ✅ 删除到某字符
```vim
dt=
```
👉 删除到 `=` 前(不包含)
---
# 六、重复操作 = 效率核心
### ✅ 万能键
```vim
.
```
👉 规则:
> 你只需要“认真做一次”,剩下全靠 `.`
---
### 🎯 示例(改多行端口)
第一行:
```vim
ciw 8080
```
后面:
```vim
j . j . j .
```
---
# 七、你这个场景最优“组合拳”(总结版)
### 👉 改 IP
```vim
ciW + .
```
---
### 👉 改域名
```vim
ciw + .
```
---
### 👉 改整行配置
```vim
C
```
---
### 👉 改多个但不想误伤
```vim
/xxx → n → 修改 → n .
```
---
### 👉 批量但精准
```vim
:%s/old/new/gc
```
---
# 八、给你一个“运维最短路径口诀”
> **能 `ciw` 就别 `x+i`
> 能 `.` 就别重复敲
> 能 `/ + n` 就别手找
> 能 `ci"` 就别删整行**
---
如果你再往上走一步(进阶优化),可以给你做两件事:
1. **定制 `.vimrc`(专门适配你这种运维编辑习惯)**
2. **把常用操作压缩成 1~2 个快捷键(比如一键改 IP)**
你可以把你现在常改的 nginx / inventory / hosts 文件贴一段,我可以帮你把操作路径再压缩一半。
---
### ✅ 最快:`r`
```vim
rX
```
👉 含义:
* `r` = replace(替换当前光标所在字符)
* `X` = 你要替换成的字符
---
### 🎯 示例
光标在 `a` 上:
```text
cat
^
```
输入:
```vim
rb
```
结果:
```text
cbt
^
```
---
### ⚡ 为什么这是最快的
* 不进入插入模式(比 `x + i` 少一步)
* 不移动光标
* 单指令完成替换
---
### 🚫 常见但更慢的写法
| 写法 | 问题 |
| ------- | --------------------------------- |
| `x i X` | 多一步进入插入模式 |
| `sX` | 会进入 insert mode(适合连续输入,但不适合单字符替换) |
---
### 📌 补充(进阶)
* `R`:进入**连续替换模式**(类似覆盖写)
* `cw`:替换一个单词(不是单字符)
---
如果你平时在做类似“批量改配置 / 改IP / 改域名”的活,我可以给你一套 Vim 高频操作组合(非常适合你现在做 Ansible / 运维场景)。
```
如果你平时在做类似“批量改配置 / 改IP / 改域名”的活,我可以给你一套 Vim 高频操作组合(非常适合你现在做 Ansible / 运维场景)。
```
好,这类“改配置 / 改 IP / 改域名”的场景,本质是**高频重复编辑 + 模式化替换**,在 Vim 里可以做到非常高效。下面给你一套**实战型组合拳**(偏运维 / Ansible 场景):
---
# 一、全局替换(最核心)
### ✅ 批量改 IP / 域名
```vim
:%s/10\.75\.17\.15/10.75.17.25/g
```
👉 要点:
* `%` = 全文件
* `g` = 一行中全部替换
* `.` 必须转义
---
### ✅ 带确认(防误伤)
```vim
:%s/src\.old\.com/src.new.com/gc
```
👉 每次替换前确认(y/n/a/q)
---
### ✅ 只替换匹配行
```vim
:g/nginx/s/80/8080/g
```
👉 只在包含 `nginx` 的行里替换端口
---
# 二、可视块批量改(改多行同一列)
👉 运维改配置神器(比如改一列 IP)
### 操作步骤:
```text
Ctrl + v # 进入块模式
选中多行列
Shift + i # 插入
输入内容
Esc # 批量生效
```
---
### 🎯 示例
批量在行首加 `#`:
```text
server1
server2
server3
```
操作后:
```text
#server1
#server2
#server3
```
---
# 三、宏(解决重复操作)
👉 适合“结构一样但不能纯替换”的场景
### 录制宏:
```vim
qa # 录制到寄存器 a
...操作...
q # 结束
```
### 执行:
```vim
@a # 执行一次
10@a # 执行10次
```
---
### 🎯 示例(改 hosts 格式)
```
10.1.1.1 test1
10.1.1.2 test2
```
改成:
```
test1 ansible_host=10.1.1.1
```
👉 用宏比手动快 10 倍
---
# 四、正则增强(精准匹配)
### ✅ 匹配 IP
```vim
:%s/\v\d+\.\d+\.\d+\.\d+/REPLACED/g
```
---
### ✅ 交换 IP 和主机名
```vim
:%s/\v(\S+)\s+(\S+)/\2 ansible_host=\1/
```
👉 非常适合你做 Ansible inventory
---
# 五、多文件批量处理(运维高频)
### ✅ 打开多个文件
```bash
vim *.ini
```
### ✅ 批量执行替换
```vim
:argdo %s/old/new/ge | update
```
👉 含义:
* `argdo`:对所有文件执行
* `e`:忽略错误
* `update`:有修改才保存
---
# 六、快速改“当前词”(最常用)
### ✅ 改当前单词
```vim
ciw
```
👉 删除当前词并进入插入模式
---
### ✅ 全文替换当前词
```vim
:%s/<C-r><C-w>/new/g
```
👉 `<C-r><C-w>` = 当前光标单词
---
# 七、跳转 + 修改(提速关键)
### ✅ 快速跳到下一个并改
```vim
n + .
```
👉 含义:
* `n`:下一个匹配
* `.`:重复上次修改
---
### 🎯 场景
1. `/8080` 搜索
2. `r9` 改成 9090
3. `n . n . n .`
👉 秒级批量修改
---
# 八、删除 IP(你之前那个问题的正解)
```vim
diW
```
👉 删除整个“WORD”(含点号的 IP)
---
# 总结(给你一个运维优先级)
最值得掌握的 5 个:
1. `:%s///g` —— 全局替换
2. `Ctrl+v` —— 块编辑
3. `ciw` —— 改单词
4. `.` —— 重复操作
5. `:argdo` —— 多文件处理
---
如果你愿意,我可以**专门给你定制一套:Ansible / inventory / nginx / hosts 文件的 Vim 快速编辑模板**,直接贴你现在的文件结构,我帮你把操作路径优化到“最少按键数”。
```
专门给你定制一套:Ansible / inventory / nginx / hosts 文件的 Vim 快速编辑模板,我只是修改单个文件时间较多,想最少步骤实现vim操作文件罢了。
```
明白,你的目标不是“炫技”,而是**单文件场景下最少按键数完成修改**。那我给你一套**极简操作模型(偏运维高频场景)**,只保留真正有用的。
基于 Vim,下面这些就是“效率上限组合”。
---
# 一、核心原则(先建立思维模型)
你所有操作可以压缩成 3 类:
1. **就地改**(不移动光标)
2. **跳一下 + 改**
3. **一次改 + 无限复用(.)**
---
# 二、最少按键的“就地修改”
### ✅ 改一个字符(你刚问的)
```vim
rX
```
---
### ✅ 改整个 IP(重点)
```vim
ciW
```
👉 比 `diW + i` 少一步
---
### ✅ 改变量 / 域名(最常用)
```vim
ciw
```
👉 例如:
```
server_name old.com;
```
光标在 `old.com` → `ciw new.com`
---
### ✅ 改到行尾(改 nginx 特别多)
```vim
C
```
👉 等价于 `c$`
---
### ✅ 改引号/括号内内容(高级但高频)
```vim
ci"
ci'
ci)
ci]
```
👉 例如:
```nginx
proxy_pass "http://old";
```
光标在里面 → `ci"` → 输入新地址
---
# 三、跳一下 + 改(比全局替换更快的场景)
### ✅ 改下一个匹配(极高频)
```vim
/old
```
然后:
```vim
n + .
```
---
### 🎯 实战(改多个 IP)
1. `/10.75`
2. `ciW 10.52.14.86`
3. 然后:
```vim
n . n . n .
```
👉 比 `:%s` 更安全(避免误伤)
---
# 四、可控替换(比宏更轻量)
### ✅ 当前词全局替换(极推荐)
```vim
:%s/<C-r><C-w>/new/g
```
👉 你只需要:
* 光标放在旧词上
* 一条命令搞定
---
# 五、删除类(你之前问过的延伸)
### ✅ 删除 IP(最优)
```vim
diW
```
---
### ✅ 删除等号右边(配置文件神器)
```vim
d$
```
---
### ✅ 删除到某字符
```vim
dt=
```
👉 删除到 `=` 前(不包含)
---
# 六、重复操作 = 效率核心
### ✅ 万能键
```vim
.
```
👉 规则:
> 你只需要“认真做一次”,剩下全靠 `.`
---
### 🎯 示例(改多行端口)
第一行:
```vim
ciw 8080
```
后面:
```vim
j . j . j .
```
---
# 七、你这个场景最优“组合拳”(总结版)
### 👉 改 IP
```vim
ciW + .
```
---
### 👉 改域名
```vim
ciw + .
```
---
### 👉 改整行配置
```vim
C
```
---
### 👉 改多个但不想误伤
```vim
/xxx → n → 修改 → n .
```
---
### 👉 批量但精准
```vim
:%s/old/new/gc
```
---
# 八、给你一个“运维最短路径口诀”
> **能 `ciw` 就别 `x+i`
> 能 `.` 就别重复敲
> 能 `/ + n` 就别手找
> 能 `ci"` 就别删整行**
---
如果你再往上走一步(进阶优化),可以给你做两件事:
1. **定制 `.vimrc`(专门适配你这种运维编辑习惯)**
2. **把常用操作压缩成 1~2 个快捷键(比如一键改 IP)**
你可以把你现在常改的 nginx / inventory / hosts 文件贴一段,我可以帮你把操作路径再压缩一半。
作者:jack@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/13310/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!
评论列表


