2009-01-03 24 views
2

我已經建立了一些具體的工作輔助功能,可能是我的團隊& MDASH的其他成員是有用的。但是我已經將它們全部寫入了Emacs的Elisp,並且讓它們從Notepad ++進行轉換不會發生。Emacs的ido完成是否有Perl等價物?

所以,我想轉換功能的Perl。沒問題。

除非我用IDO完成所有的時間限制響應:

(setq client (ido-completing-read "Select a Client: " '("IniTrade" "HedgeCorp" "GlobalTech" "OCP") nil t)) 

編輯:IDO-完成讀取類似於completing-read,除了所有的選項都是可見的,並且可以通過騎自行車來選擇[箭頭鍵,通常]或打字完成。在上面的例子中,提示看起來像

Select a Client: {IniTrade | HedgeCorp | GlobalTech | OCP} 

選擇可以在最左邊的項目擊中RET進行,或通過部分輸入(在這種情況下,第一個字母都是唯一的,所以這是所有那將是需要的,匹配項目將成爲最左邊的)。

零的例子是一個未使用的PARAM,但「T」要求完全匹配 - 例如,用戶必須做出的選擇之一。該函數返回一個字符串,如「IniTrade」。

我的「輔助功能」是用於內部需求 - 打開一個特定的錯誤日誌,批量還原到的服務器,等等。對於這些操作,用戶需要指定測試或生產環境,客戶端,舞臺等。在幾乎所有情況下,這些都是用於構建另一個shell命令的字符串選擇。如果返回一個數字項目,那麼可以將其重新轉換爲一個字符串 - 但由於選擇通常是必需的字符串,如果可以跳過該步驟,那將會很不錯。 [編輯完]

是否有一個Perl相當於?我看過Term::Prompt,它提供了一個編號菜單......離我最近的地方。這不像ido完成那樣漂亮,我仍然必須將數字結果向後轉換爲字符串(不是主要問題;只是煩人)。

在撰寫本文時,我注意到我使用了術語「菜單」,所以做了一些更多的搜索,並提出了Term::Menus.我還沒有試過這個。

+0

如果您解釋ido完成,它可能有助於獲得答案。 – Schwern 2009-01-03 20:41:47

+1

這將有助於瞭解您編寫的幫助函數的類型。他們是否適應Term :: Menus方法? – 2009-01-04 13:46:46

回答

2

期限::可能的ReadLine你在找什麼,但它可能更像是一個比「IDO-完成讀取」完成讀取'。

相關問題