2013-05-28 53 views
0

請幫我調試一下簡單的eshell函數的下面的定義。是的,我知道我可以將l定義爲別名,但我需要學習如何編寫eshell函數。如何向eshell添加新的shell命令?

(defun eshell/l (&rest args) 
    "a shortcut for ls that automatically adds some flags to the ls" 
    (apply #'eshell/ls "-h" "-F" "-t" args)) 

這幾乎是正確的。錯誤在於ls命令的輸出在之後插入新提示。

+1

可能感興趣的注意事項:(1)沒有「-F」的說法。 (2)如果你顯式地運行'eshell/l',而不是'l',它就可以工作。 (3)如果編輯函數定義以準確地匹配'eshell/ls',除了額外的參數,它仍然失敗。 (4)如果將額外的參數添加到'eshell/ls'定義中,'ls'仍然正常工作。 – phils

回答

2

這是可以做到簡單:

(defun eshell/l (&rest args) 
    "a shortcut for ls that automatically adds some flags to the ls" 
    (eshell/ls "-h" "-F" "-t" args)) 

我不知道關於「-F」(好象在Emacs的24.3不起作用Windows 7)