当vim命令在浏览器中的光标处打开url时,如何重定向标准输出?
我正在使用一个vim插件,当我想在在线api文档中查找光标下的函数时,我键入“\da” 以下是键映射的vimscipt代码:当vim命令在浏览器中的光标处打开url时,如何重定向标准输出?,vim,Vim,我正在使用一个vim插件,当我想在在线api文档中查找光标下的函数时,我键入“\da” 以下是键映射的vimscipt代码: nnoremap <buffer> <LocalLeader>dda :silent call <SID>OpenURL('http://api.drush.ws/api/function/')<CR><C-L> nnoremap-dda:静默调用OpenURL('http://api.drush.ws/api
nnoremap <buffer> <LocalLeader>dda :silent call <SID>OpenURL('http://api.drush.ws/api/function/')<CR><C-L>
nnoremap-dda:静默调用OpenURL('http://api.drush.ws/api/function/')
当命令运行时,它将标准输出从shell写入当前vim缓冲区,因此短语:
“在现有浏览器会话中创建了新窗口。”将写入当前缓冲区
这里还有openurl函数:
function s:OpenURL(base)
let open = b:Drupal_info.OPEN_COMMAND
if open == ''
return
endif
let func = shellescape(expand('<cword>'))
if a:base == 'api.d.o'
if strlen(b:Drupal_info.CORE)
execute '!' . open . ' http://api.drupal.org/api/search/' .
\ b:Drupal_info.CORE . '/' . func
else
execute '!' . open . ' http://api.drupal.org/' . func
endif
else
execute '!' . open . ' ' . a:base . func
endif
endfun
函数s:OpenURL(基本)
let open=b:Drupal\u info.open\u命令
如果打开=“”
返回
恩迪夫
设func=shellescape(展开(“”))
如果a:base=='api.d.o'
if strlen(b:Drupal_info.CORE)
执行“!”。打开。”http://api.drupal.org/api/search/' .
\b:Drupal_info.CORE.“/”。func
其他的
执行“!”。打开。”http://api.drupal.org/' . func
恩迪夫
其他的
执行“!”。打开。a:基地。func
恩迪夫
结束
如何修复此/重定向标准输出
(我正在使用ubuntu/gnome。)
谢谢 我没有看到任何将命令输出放入当前缓冲区的内容。但如果您根本不想观察命令输出,可以执行以下两种操作之一:
前面放置静音
(注意:您必须在静默
之后有空格)并添加重画代码>紧靠endfunction
之前的命令
执行“!”使用调用system()
(在这种情况下,参数中有换行符很可能导致错误)