# Vim查找替换

# 字符的替换及撤销(Undo操作)

# 替换和撤销(Undo)命令

替换和 Undo 命令都是针对普通模式下的操作:

命令 说明
r+<待替换字母> 将游标所在字母替换为指定字母
R 连续替换,直到按下 Esc
cc 替换整行,即删除游标所在行,并进入插入模式
cw 替换一个单词,即删除一个单词,并进入插入模式
C(大写) 替换游标以后至行末
~ 反转游标所在字母大小写
{n}u 撤销一次或 n 次操作
U(大写) 撤销当前行的所有修改
Ctrl+r redo,即撤销 undo 的操作

然后依次进行如下操作

  • 输入 fa 跳转到第一个 a 字符
  • 输入 r 并且输入 b,a 字符被 b 字符替换(实用)
  • 输入 R 替换字符,输入新字符串,输入完按 ESC 回到普通模式(实用)
  • 输入 cc 替换整行字符,输入新字符串,输入完按 ESC 回到普通模式
  • 输入 cw 替换一个英文字(word),输入完按 ESC 回到普通模式(实用)
  • 输入 ~,翻转游标所在字符的大小写
  • 输入 C 替换至行尾,即游标所在处以后的字都会被替换,输入完按 ESC 回到普通模式
  • 输入 u 撤销上一次的操作
  • 输入 2G,跳转到 2 行

# 快速缩进

  • 普通模式下输入 15G,跳转到 15 行
  • 普通模式下输入 >> 整行将向右缩进(使用,用于格式化代码超爽)
  • 普通模式下输入 << 整行向左回退
  • 普通模式下输入 : 进入命令行模式下对 shiftwidth 值进行设置可以控制缩进和回退的字符数

# shiftwidth 命令

shiftwidth 命令是指上一节 >> 命令产生的缩进(可以简写成sw),普通模式下输入 : 进入命令行模式下对 shiftwidth 值进行设置可以控制缩进和回退的字符数。

获取目前的设定值:

:set shiftwidth?
1

设置缩进为 10 个字符:

:set shiftwidth=10
1

输入 ESC 回到普通模式,再次尝试 >> 看缩进量是否变化。

# 调整文本位置

命令行模式下输入 :ce(center)命令使本行内容居中:

:ce
1

命令行模式下输入 :ri(right)命令使本行文本靠右:

:ri
1

命令行模式下输入 le(left)命令使本行内容靠左:

:le
1

# 查找

# 快速查找

普通模式下输入 / 然后键入需要查找的字符串,按回车后就会进行查找。?/ 功能相同,只不过 ? 是向上而 / 是向下查找。

进入查找之后,输入 nN 可以继续查找。n 是查找下一个内容,N 查找上一个内容。