2013-03-28 56 views
1

我寫了一個小程序來讀取輸入,並打印結果和循環。像REPL如何在shell按鈕上按下按鈕以顯示最新輸入

而且我想,當我按下鍵盤上的向上鍵之前輸入我已經inputed和編輯此輸入,像什麼bashzsh一樣。我不知道實施。我也搜索了網頁,但沒有結果我想要。有人能爲我指點道路嗎?或者給我一些文章閱讀?

問題是:如何在屏幕上打印EDITABLE行?

回答

2

你只需要:

  • 存儲用戶輸入的歷史,就像bash和zsh中做;
  • 收聽按鍵,就像bash和zsh一樣;
  • 顯示最後的命令時被按下。就像,你猜對了,bash和zsh。

這是什麼節目是所有關於:打破大的問題,我們不知道如何解決成更小的問題,我們做知道如何解決,或能更容易弄清楚如何解決。因此,如果您不知道如何執行上面列出的任何內容,請嘗試編寫一些代碼,閱讀API文檔,在Google/Stack Overflow上尋找答案,或者再次 - 將它們分解爲子問題。

+0

你是說這已經沒有神奇功能了? :) – squiguy 2013-03-28 03:12:36

+1

@squiguy'* gasp *''' – 2013-03-28 03:15:08

+0

其實,有。 – ikegami 2013-03-28 03:21:44

4

我對此沒有親身經歷,但我的理解是Term::ReadLine提供了具有歷史記錄的命令編輯功能。它甚至是perl發行版的一部分。

2

如果你的觀點是「print」也許你需要Term :: Screen。示例代碼在這裏:code

否則,如果你的觀點是「歷史」,man/perldoc Term :: ReadLine。

+0

我想打印上次輸入的可編輯內容,我認爲「** print **」是重點,因爲我可以自己保存歷史記錄。您的示例代碼太長,我會在CPAN上看到Term :: Screen。非常感謝你。 :) – lpy 2013-03-28 09:09:34

相關問題