20. VIM命令操作技巧
vi ~/.vimrc
set nocp
set backspace=2
set nocompatible

V可视化选中当前行,根据光标可多行
ctrl+v 可视化块
v可视化根据光标



行间移动



快速增删改查
d 0 删除当前位置到行首
d $ 删除当前位置到行尾
d t (" ] ) )符号 删除直到某个符号
d a w 删除单词(包括空格) d i w 删除单词(不包括空格)
dd 删除当前行
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 补全大法









浙公网安备 33010602011771号