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 : 不区分大小写的查找
这个操作针对当前的查找有效, 所以不必考虑下次查找操作是否会受到影响.