查找当前选中的文本
可以使用:h visual-search查找帮助
使用如下脚本,可在可视模式下通过*,#对选中的文本进行查找1
2
3
4
5
6
7
8xnoremap * :<C-u>call<SID>VSetSearch()<CR>/<C-R>=@/<CR><CR>
xnoremap # :<C-u>call<SID>VSetSearch()<CR>?<C-R>=@/<CR><CR>
function s:VSetSearch()
let temp = @s
norm! gv"sy
let @/ = '\V' . substitute(escape(@s, '/\'), '\n', '\\n', '\g')
let @s = temp
endfunction
结识substitute命令
语法: :[range][substitute]/{pattern}/{string}/[flags]
关于标志位,可查询:h s_flags
替换域中的特殊字符
| 符号 | 描述 |
|---|---|
| \r | 插入一个换行符 |
| \n | 插入一个制表符 |
| \ | 插入一个反斜杠 |
| \1 | 插入第1个子匹配 |
| \2 | 插入第2个子匹配(以此类推,最多到9) |
| \0 | 插入匹配模式所有内容 |
| ~ | 使用上一次调用:substitute时的{string} |
| \={vim stript} | 执行{vim stript}表达式,并将返回的接轨作为替换{string} |
替换命令
1 | :s/going/rolling 仅替换第一个匹配 |
替换命令中,如果查找域为空,则会重用上次的查找结果。
*可以输入:s/<C-r>//replace/g
gv命令会激活可是模式,重新将上次被选中的文本高亮起来。
vim C语言函数名高亮
在/usr/share/vim/vim80/syntax/c.vim中添加如下代码,设置高亮为蓝色:
syn match cFuntions display “[a-zA-Z_]{-1,}\s{-0,}({1}”ms=s,me=e-1
hi cFunctions gui=NONE cterm=bold ctermfg=blue