# 如果是想把光标所在行置于屏幕中央,是 zz。它不移动光标,而是重绘屏幕,以使光标所在行位于屏幕中间位置。
# 水平和垂直分割打开多个文件
vim -o
vim -O // 垂直
# 模式匹配
:%s/\(\w\{1,}\)/metadata.\1 = fileInfo.\1/gc
#去重
:sort
:g/^\(.\+\)$\n\1/d
#粘贴格式问题
:set paste
#不要折行显示
:set nowrap
有利于竖向编辑
1.
复制到缓存器
"ayy
表示复制一行到 "a 缓存
2.正则表达式后向引用
() 表示要后向引用,第一个括号的是 \1 ,但在 vim 里要注意 () 要转义,例如,给某些单词加上 “”
:%s/\(\w\{4,10}\)/”\1”/gc
表示 \w\{4,10} 的结果加上 “”
\w\{8}
vim 里表示 匹配数量是 \{m,n} ,光写 {m,n} 是不行的
正则帮助 :help pattern.txt
总结,如果正常的正则表达式不起作用,考虑加转义 \
3.纵向编辑
Ctrl + v
4.命令行模式 复制 202 co 209 复制第 202 行到 209 行
10,20 co 209 10到20行复制到209行
标签
移到起始行,输入 ma
移到结束行,输入 mb
移到粘贴行,输入 mc
然后 :’a, ‘b co ‘c
m 是剪切,de 是删除
5.精确匹配查找单词
如果你输入 "/the",你也可能找到 "there"。要找到以 "the" 结尾的单词,可以用:
/the\> "\>" 是一个特殊的记号,表示只匹配单词末尾。类似地,"\<" 只匹配单词的开头。
这样,要匹配一个完整的单词 "the",只需:/\
6.匹配空格 \s\+
行尾空格 \s\+$
数据库表-》映射
%s/\s\+$//gc
%s/^/”/gc
%s/$/”,/gc
%s/\s\+/”=>”/gc
7.两个空格以上
\s\{2,\}/’/gc
8.利用反向引用构造键值对
初始状态
visitDate,
visitCompany,
visitContact,
visitType,
visitContent,
visitAttach,
sendUid,
替换表达式
:’<,’>s/\(\w\{2,\}\)/\1:\1/gc
visitDate:visitDate,
visitCompany:visitCompany,
visitContact:visitContact,
visitType:visitType,
visitContent:visitContent,
visitAttach:visitAttach,
sendUid:sendUid,
9.
每行前面插入行号如下
:%s/^/\=line(".")/
可视区域插入从1开始的编号
:'<,'>s/^/\=line('.') - line("'<") + 1/
10.删除相同行
:sort
:g/^\(.\+\)$\n\1/d
:g/^\(.\+\)$\n\1/d
11.删除空行
:g/^\s*$/d
11、匹配 10.10.10.29
\(\d\+\.\)\+\d\+
先在fehelper(chrome浏览器插件)上写
12、搜索不区分大小写
末尾加上 \c
比如搜Process, 输入 /process\c
13、默认情况下mapleader不设置,特殊字符串""表示\
比如使用 nerdtree commenter 注释 先按 ESC, 再按下 1\cc 就注释一行
14、显示隐藏行号
set nonu