2016-05-21 30 views
2

我已经写了一个bash脚本,可以找到任何单词的押韵字。我希望能够完成此脚本的结果。Vim:从bash脚本检索结果的自定义选项卡完成

我想这可能与vimscript。基本步骤是查看当前行上方的行,将该行作为参数传递,然后显示Tab完成视图(可能通过某个插件)并显示脚本返回的结果。

我写过一些vim脚本,但我不知道从哪里开始执行bash脚本或打开tab完成菜单。有谁知道这可能是怎么可能的?

+0

如果你解释如何找到押韵的逻辑,将很容易分析。我认为你在每一行的结尾找到它们。不是吗? – SibiCoder

+0

是的,bash脚本(它实际上只是一个ruby脚本)可以接受任何字符串,然后返回一个单词韵列表。因此,理想情况下,这个vimscript会将光标移到光标上方,然后将它发送到bash脚本,然后用结果显示标签完成列表。 – BananaNeil

+0

如果有其他人参与并回答了此问题的标签填写部分,我会很乐意授予其他的奖励。 – BananaNeil

回答

2

对此,您可以使用fzffzf.vim。这是一个示例键映射。

inoremap <expr> <c-x><c-k> fzf#complete('./script.sh ' . getline(line(".")-1)) 

fzf#complete可以运行该脚本并打开一个带有该脚本输出的菜单。您可以模糊搜索输出或使用箭头键选择条目。所选条目被插入到vim缓冲区中。

getline(line(".")-1)将当前行上方的行传递给名为script.sh的脚本。

这不完全像您问的那样完成标签,但它的用途相同,并且还通过脚本中的结果进行模糊搜索。

+1

对不起,我花了几天的时间才得到这个答案 - 我已经在最后期限之下。虽然Friggin很酷。我现在要赶快注册它,并且再花几天时间来看看是否有人能够回答标签完成部分,仅仅因为我认为这需要一个标准答案。如果选项卡完成答案未通过,您将获得接受的答案/奖励。 – BananaNeil

+0

只是提醒:) – ronakg

+1

嘿,谢谢。我甚至在我的手机上设置了提醒。 = P – BananaNeil