分页: 1 / 1

求问这个map的详细解释

发表于 : 2010-08-05 15:10
skylyj
vnoremap <silent> ,/ y/<C-R>=escape(@", '\\/.*$^~[]')<CR><CR>
找了很多地方,都没有好的解释,里面的 C-R 和 escape是什么意思啊?多谢啊!

Re: 求问这个map的详细解释

发表于 : 2010-08-05 22:15
aerofox
<C-R>=
    执行后面的表达式

escape(@", '\\/.*$^~[]‘)<CR>
    给 @" 寄存器结果中的 \、/、.、$、^、~、[、] 字符加上转义。

Re: 求问这个map的详细解释

发表于 : 2010-08-05 22:44
skylyj
aerofox 写了:<C-R>=
    执行后面的表达式

escape(@", '\\/.*$^~[]‘)<CR>
    给 @" 寄存器结果中的 \、/、.、$、^、~、[、] 字符加上转义。
:em11 请问这个是从哪儿学到的呢?help中好像没有,我google了半天没找到?
那个escape函数的说明有吗? 那个y 是普通的复制的意思吗?
是不是说v模式下选择了区域后,然后@" 寄存器就有了东西了,然后把这些东西做了转义,
最后y送给/取执行搜索?

Re: 求问这个map的详细解释

发表于 : 2010-08-06 12:25
aerofox
我在是 help 中学的,看到你的问题,我也不懂,跟你一起学了。
帮助中 <C-R> 写的是 c_<C-R>

代码: 全选

:he <C-R>
:he escape()
escape()后有个<CR>,是因为 <C-R>= 的帮助中说明的,

代码: 全选

			'='	the expression register: you are prompted to
				enter an expression (see |expression|)
因为是提示输入一个表达式,所以需要用回车来完成输入。