2017-08-10 65 views
0

我以fish開頭,在廣泛的文檔中找不到的是自動填充的Feed。如何將自動填充數據提供給魚別名?

在本教程中提到了Tab Completions,但它解決了現有機制本身的存在,而不是其配置。

我有一堆我連接到虛擬機通過

machinectl shell <name of machine> /bin/bash 

我可以通過

function cm 
    machinectl $argv shell /bin/bash; 
end 

使alises爲我所有的機器,但是這需要記住並輸入計算機名。

我怎麼能使用的machinectl list | tail -n +2 | head -n -2 | cut -f1 -d' '輸出作爲飼料/提示我cm命令,使其使用標籤當顯示他們呢?


編輯:我種種原因錯過了在文檔的頂部這一權利:Tab completion(我發現它回顧了答案後)

回答

2

這應該讓你有一個良好的開端:

complete --command cm --no-files \ 
--arguments '(machinectl list | tail -n +2 | head -n -2 | cut -f1 -d" ")' 

進入,在命令行就會啓動當前會話;如Kurtis所述(~/.config/fish/completions/cm.fish),使其永久添加到完成文件中。

2

help complete。您可以在$__fish_datadir/completions中找到帶有魚的完成項,包括ssh的完成項。你寫一個私有函數或命令完成將被放置在~/.config/fish/completions/$cmd_name.fish