我試圖建立的bash完成了實用劇本我寫的,所以我加了下面的腳本/etc/bash_completion.d:bash補防止退格
_mcd()
{
local cur words
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
words=`mcd-completion-words`
COMPREPLY=($(compgen -W "${words}" -- "$cur"))
return 0
}
complete -F _mcd mcd
的mcd-completion-words
腳本編程發現可用的運算符爲命令。當我重新啓動bash(或源代碼腳本)時,我可以成功完成標籤,但如果我這樣做了,我不能再退格一個完整的字符。另外,如果我嘗試列出所有選項(例如,我試圖將選項卡填充到w /沒有適當的詞),bash會向該命令添加一個選項卡,我也不能退格。
如何讓bash模仿正常的文件完成行爲?任何幫助表示讚賞。謝謝!
這是一個簡化的mcd-completion-words的測試用例,它仍然表現出相同的行爲。奇怪的是,丹尼斯的案例也適用於我(例如,當用文字替換=「一二三」時)。
#!/usr/bin/env php
<?php
print "one two three four five six seven eight nine";
當我做'詞=「一些測試詞」'它似乎工作。請發佈'mcd-completion-words'的內容。問題可能在那裏。 – 2010-09-13 18:14:14
我在Ubuntu 11.10上遇到了完全相同的問題。 – scribu 2011-10-04 00:58:53