Vim函数用参数调用bash脚本并返回结果

时间:2011-08-07 17:25:18

标签: bash vim plugins

我有一个bash脚本,它接受一个参数并返回大约8-10行文本。

我希望能够在vim中调用此脚本。理想情况下,通过突出显示一串字符作为参数。然后,我希望脚本的输出显示在新窗格中。

我是vim的新手所以我不确定是否可以通过在我的vimrc文件中创建命令或者是否需要创建插件来完成此操作。

非常感谢任何建议。

经过一段谷歌搜索后,我想出了

function! Foo(a1)
    new
    r !myscript a:a1
endfunction

这还不太有效。它似乎传递了名称a:a1而不是值。

1 个答案:

答案 0 :(得分:4)

我从一个像这样的简单函数开始(注意:示例使用echo作为脚本......有点蹩脚......但你明白了)

function! CallMyScript(params)
    new                 " open a new buffer
    " se buftype=nofile " add spice to taste, e.g.
    silent! exec "r!echo '" . a:params . "'"
endfunction

然后是视觉模式的映射,如;

:vnoremap QQ y:call CallMyScript(@")<Enter>

当您点击 Q Q

时,这将使用当前选定的文本调用脚本