不常用的vi命令

vi

u 撤回
ctrl+r 撤回的撤回

全文替换
:%s/old/new/g
:%s#old/new/g
:1,$s#old/new/g

指定行区间替换
12,15s/old/new/g

c替换前确认
12,15s/old/new/gc

用#代替分隔符,用户关键字有/字符时候
12,15s#old#new#g

从当前行删除到末行
dG
从当前行删除到首行
dgg

删除也叫剪贴
dd

将13到16行内容另存到newfile中
:13,16 w /tmp/newfile.txt

复制newfile.txt内容到当前文件当前行
:r /tmp/newfile.txt

恢复文件到初始状态
:e!

删除全文,%就是全部的意思
:%d

纵向选择
ctrl+v
r:进入改写模式,只有一个字符
I:光标前插入字符(可以是多个)
A:光标后插入字符(可以是多个)

删除包含特定字符的行:
1. 全局删除匹配到的行
:g/pattern/d

2. 删除第1-10行里的匹配到的行
:1,10g/pattern/d

3. 删除不包含指定字符的行
:v/pattern/d

:g!/pattern/d

vim查找时区别大小写
:set ic (ignore case)忽略大小写
:set noic 不忽略大小写
输入了上述指令,
当每次的查找操作都会受到当前设定的影响,不过每次在退出vim编辑后,再重新打开以后的设置仍旧失效。

第二种方法
/CWord : 区分大小写的查找
/cword : 不区分大小写的查找
这个操作针对当前的查找有效, 所以不必考虑下次查找操作是否会受到影响.

原文地址:https://www.cnblogs.com/goozgk/p/9332816.html