分页: 1 / 1

vim 查找 url 地址问题。

发表于 : 2010-04-29 22:51
hjjdebug
假如有一个文件,包含了许多url 地址。举例如下:

代码: 全选

http://www.xunlei.com/video/123.html
http://www.xinlang.com/video/abc.html
...
http://www.xunlei.com/video/123.html
http://www.xunlei.com/video/123.html
我想查一下 http://www.xunlei.com/video/123.html
到底都在哪出现过。我会这样操作
1. 将http://www.xunlei.com/video/123.html 选中,copy 到系统剪切板
2. /<ctrl-v> 将查找的内容贴到了命令行。

但是,这样得不到预期的结果,因为字符串中包含/, 需要改为\/, 但这样一个个改太烦人了。
用/\M<ctrl-v> 也不行, 用\V<ctrl-v> 也不行,
那么, 有没有其它好办法呢 ?
:em25

Re: vim 查找 url 地址问题。

发表于 : 2010-04-29 23:25
hjjdebug
找到了一个比较好的办法。用%s#\V<ctrl-v>#&#
针对此例那就是
%s#\Vhttp://www.xunlei.com/video/123.html#&#

用n,N 可以浏览下一个,上一个匹配。

与大家共勉,大家有更好的办法,希望不吝赐教!

Re: vim 查找 url 地址问题。

发表于 : 2010-04-30 12:20
lilydjwg
贡献两个不记得从哪来弄来的键映射:

代码: 全选

vnoremap <Leader># "9y?<C-R>='\V'.substitute(escape(@9,'\/'),'\n','\\n','g')<CR><CR>
vnoremap <Leader>* "9y/<C-R>='\V'.substitute(escape(@9,'\/'),'\n','\\n','g')<CR><CR>
用法:

用于可视模式,与普通模式的 * 和 # 的用法类同,即选中你要搜索的字符串,按 \* 或者 \# 来向下或者向上搜索之,按 n/N 搜索下/上一个。

Re: vim 查找 url 地址问题。

发表于 : 2010-05-01 8:45
zerger
贡献一个插件(http://code.google.com/p/txtbrowser/), 跟这个功能类似, 不过支持跨行查找, 同时支持支持打开光标下的URL.
lilydjwg 写了:贡献两个不记得从哪来弄来的键映射:

代码: 全选

vnoremap <Leader># "9y?<C-R>='\V'.substitute(escape(@9,'\/'),'\n','\\n','g')<CR><CR>
vnoremap <Leader>* "9y/<C-R>='\V'.substitute(escape(@9,'\/'),'\n','\\n','g')<CR><CR>
用法:

用于可视模式,与普通模式的 * 和 # 的用法类同,即选中你要搜索的字符串,按 \* 或者 \# 来向下或者向上搜索之,按 n/N 搜索下/上一个。

Re: vim 查找 url 地址问题。

发表于 : 2010-05-05 17:24
hjjdebug
谢谢2位, 受益!