V可视化选中当前行,根据光标可多行3d
ctrl+v 可视化块blog
v可视化根据光标ip
行间移动ci
快速增删改查ast
d 0 删除当前位置到行首可视化
d $ 删除当前位置到行尾cli
d t (" ] ) )符号 删除直到某个符号乱码
d a w 删除单词(包括空格) d i w 删除单词(不包括空格)bfc
dd 删除当前行file
x 删除字符
数字 + 命令,屡次执行 e.g. 4dd 删除4行 4x 删除4个单词
r a 单个字符的修改
s a删除当前字符,进入插入模式
R 不断进行当前字符替换
S 删除当前行,进入插入模式
c a w 删除单词 并进入插入模式
C 删除当前行,进入插入模式
c t + 符号 删除到某个符号,并进入插入模式
: set hls 匹配的词高亮
: set incsearch 边匹配边高亮
搜索替换
搜索替换
: % s/profile/profile222/g
: 1,10 s/profile/profile222/g
:1,15 s/profile//n 计算1到15行出现profile的个数
:1,15 s/\<profile\>/profile222/g 利用正则匹配替换 “profile” 为 profile222
多文件操做VIM
e.g
:e filename 打开多个文件
:ls 列出当前缓冲区
e.g : tabnew filename 打开新标签文件
gt 在标签里切换
VIM 的 Text Object
e.g
viw 选中单词 vaw 选中单词(包括空格)
c i w 删除单词并变为插入模式
c a w 删除单词(包括空格)并变为插入模式
vi [ / "
ci [ / "
set autoindent
set paste 在插入模式粘贴拷贝代码时不会格式混乱
set nopaste 使得换行时set autoindent继续生效
“ a 指定寄存器a ,yy 复制到到寄存器a : reg a 查看寄存器 a的内容
“ a p 粘贴寄存器a的内容出来
: echo has('clipboard') 检查是否有剪切板 返回1 表明有
: set clipboard=unamed 设置为系统剪切板
: e ! 从新加载文件,不保存当前文本
解决粘贴乱码 : set paste (set nopaste 恢复) 或者 " + 或者 : set clipboard=unamed
VIM 宏(macro)
qa " "
@a
: CTRL+ P上一次的命令
VIM 补全大法