ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Vim 直接打开网址的 map 设置(重点是字符转义)

2021-02-11 10:02:30  阅读:183  来源: 互联网

标签:map execute lines 转义 start let str 选中 Vim


这只是个小功能,但在转义符上也被卡了很久,导致打开的网址只有一部分,特此分享,主要步骤有:

  1. 选中网址
  2. 获取选中内容,可以使用如下函数,注释掉的是另一种方法
    "获取visual模式下选中的内容
    " from interestingwords
    " Why is this not a built-in Vim script function?!
    function! hy_string#get#select() abort
      let [lnum1, col1] = getpos("'<")[1:2]
      let [lnum2, col2] = getpos("'>")[1:2]
      let lines = getline(lnum1, lnum2)
      let lines[-1] = lines[-1][: col2 - (&selection == 'inclusive' ? 1 : 2)]
      let lines[0] = lines[0][col1 - 1:]
      return join(lines, "\n")
    "     let temp = @s
    "     normal! gv"sy
    "     let res = @s
    "     let @s = temp
    "     return res
    endfunction

     

  3. 指定浏览器访问选中内容,重点:转义符是 ^,而不是常规的 \,&符要转成^&即可 里面的g:browser 可以自行换成自己的浏览器路径
vnoremap <F3> :call SmartRun(hy_string#get#select())<cr>
function! SmartRun(str)
    if a:str =~? '^http'
        execute 'silent! !start /b '.g:browser.' '.escape(substitute(a:str,'&','^&','g'), '#')
    elseif a:str =~? '\v^\{\x{8}(-\x{4}){3}-\x{12}\}$' "clsid
        execute '!start explorer.exe shell:::' . a:str
    else
        execute 'silent! !start ' . a:str
    endif
endfunction

标签:map,execute,lines,转义,start,let,str,选中,Vim
来源: https://www.cnblogs.com/hyaray/p/14397346.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有