如何在Vim中对多行字符串URL编码以用于搜索引擎查询
在Vim中实现选中文本的URL编码并调用搜索引擎搜索
你可以利用Vim内置的urlencode()函数对选中的文本进行URL编码,修改后的命令如下:
:'<,'>y|call system('firefox https://www.gnod.com/search/ai?q='.urlencode(@*))
关键修改说明
- 替换原命令中的
shellescape()为urlencode():shellescape()仅用于对shell命令参数做转义,避免特殊字符干扰shell执行,但不处理URL编码规则;而urlencode()专门适配URL规范,会自动将空格、&、?等特殊字符转换为符合要求的编码格式。 - 保留
@*寄存器的使用:@*对应系统剪贴板(或Vim默认寄存器,取决于个人配置),用于存储你选中并复制的文本内容。
如果你的Vim配置中,选中文本复制后未存入@*寄存器,可改用Vim无名寄存器@",命令调整为:
:'<,'>y|call system('firefox https://www.gnod.com/search/ai?q='.urlencode(@"))
若想让操作更便捷,还可以将命令映射为快捷键,比如在~/.vimrc中添加如下配置(以普通模式下的<leader>s为例):
vnoremap <leader>s y:call system('firefox https://www.gnod.com/search/ai?q='.urlencode(@"))<CR>
之后选中文本后,按下<leader>s即可直接触发编码并搜索的操作。
内容的提问来源于stack exchange,提问作者no_gravity
相关产品推荐
相关产品推荐

