Vimscript函数没有';行不通

Vimscript函数没有';行不通,vim,escaping,macvim,Vim,Escaping,Macvim,这是一个从其他人那里复制的功能,经过修改,可在my MacOS上的Chrome中以可视模式搜索选定文本: function! GoogleSearch() let searchterm = getreg("g") exec ":!open -a Google\ Chrome \"http://google.com/search?q=" .searchterm . "\" &" endfunction vnoremap <F6> "gy<Esc>

这是一个从其他人那里复制的功能,经过修改,可在my MacOS上的Chrome中以可视模式搜索选定文本:

function! GoogleSearch()
     let searchterm = getreg("g")
     exec ":!open -a Google\ Chrome \"http://google.com/search?q=" .searchterm . "\" &" 
endfunction
vnoremap <F6> "gy<Esc>:call GoogleSearch()<CR>
函数!谷歌搜索
设searchterm=getreg(“g”)
exec:“!打开-a Google\Chrome\”http://google.com/search?q=“.searchterm.”\“&”
端功能
vnoremap“gy:调用GoogleSearch()
但它只输出命令并说“按ENTER键或键入command继续”:

我所测试的
  • 复制整个命令
    :!open-a Google Chrome“http://google.com/search?q=silent“&
    进入命令行,按下按钮,它工作
  • 将第三条语句替换为
    exec:!打开-谷歌浏览器“http://google.com/search?q=“.搜索术语。“\”
    并调用它,它失败了
  • 在执行之前测试一些系统函数以转义命令字符串,例如escape()shellescape(),它们都失败

那么这里有什么问题呢?虽然有一些插件提供这种功能,但我想找出代码的错误。

假设Google Chrome被设置为默认浏览器,只要url有效,您就可以删除应用程序调用

function! GoogleSearch()
     let searchterm = getreg("g")
     exec ":!open \"http://google.com/search?q=" .searchterm . "\" &" 
endfunction
vnoremap <F6> "gy<Esc>:call GoogleSearch()<CR>
function!谷歌搜索()
设searchterm=getreg(“g”)
执行官:“!开放\“http://google.com/search?q=“.搜索术语。"\" &" 
端功能
vnoremap“gy:调用GoogleSearch()

我相信你需要引用
“Google Chrome”
,所以不要引用
:!打开-一个谷歌浏览器url…
试试
:!打开-一个谷歌浏览器url…
。此外,您可以从
vnoremap
中删除