我希望能够选择一个文本并执行在浏览器中打开谷歌搜索的命令。
现在,我只是复制和粘贴。有没有什么插件可以做到这一点?我使用的是 Mac OSX。
答案1
当我看到你的问题时,我花了大约 5 分钟的时间写了这篇文章,但它在 Linux 上还是有效的。当然,将“ firefox
”更改为你最喜欢的浏览器的命令,然后更改<F6>
为你想要执行此操作的任何键或组合键。
function! GoogleSearch()
let searchterm = getreg("g")
silent! exec "silent! !firefox \"http://google.com/search?q=" . searchterm . "\" &"
endfunction
vnoremap <F6> "gy<Esc>:call GoogleSearch()<CR>
这使用 g 寄存器,因此不要将 g 寄存器用于任何您不想通过调用此命令覆盖的内容。我也没有对其进行过多测试。
对于 Mac,第三行可能需要稍微更改:
silent! exec "silent! !firefox \"http://google.com/search?q=" . searchterm . "\""
但没有 Mac 可以测试,所以我不知道。
答案2
为什么不使用:
xnoremap <f1> "zy:!firefox "http://www.google.com/search?q=<c-r>=substitute(@z,' ','%20','g')<cr>"<return>gv
?
(由于您是 Mac 用户,您可能会firefox
用其他浏览器替换!)
请注意,如果您的单词包含&
或 ,#
您可能必须对它们以及%26
和进行转义%23
。
答案3
扩展 frabjous 的想法,因为该功能使我的屏幕变黑并在中间打印“在现有浏览器会话中创建新窗口”(这是直接运行 google-chrome 的终端输出)。
function! GoogleSearch()
" Now with > /dev/null to prevent writing to the screen
silent! exec "silent! !google-chrome \"http://google.com/search?q=" . @g . "\" > /dev/null"
" Without this, vim goes blank
redraw!
endfunction
vnoremap <F6> "gy<Esc>:call GoogleSearch()<CR>
" Added this to google the word under the cursor
nnoremap <leader>goo b"gye:call GoogleSearch()<CR>
答案4
如果您firefox
使用上述命令切换open
,则无论默认浏览器设置为什么,它都会起作用。只要您使用的是 OS X。