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

rva*_*bdn 1 vim bash plugins

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

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

我是 vim 新手,所以我不确定这是否可以简单地通过在我的 vimrc 文件中创建命令来完成,或者是否需要创建一个插件。

任何建议将不胜感激。

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

function! Foo(a1)
    new
    r !myscript a:a1
endfunction
Run Code Online (Sandbox Code Playgroud)

这还不太行得通。它似乎传递名称 a:a1 而不是值。

seh*_*ehe 5

我将从一个像这样的简单函数开始(注意:示例用作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
Run Code Online (Sandbox Code Playgroud)

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

:vnoremap QQ y:call CallMyScript(@")<Enter>
Run Code Online (Sandbox Code Playgroud)

当您点击时,这将使用当前选定的文本调用脚本QQ