2016-05-21 61 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