2013-05-28 3 views
0

Пожалуйста, помогите мне отладить следующее определение простой функции eshell. Да, я знаю, что я могу определить l как псевдоним, но мне нужно научиться писать функции eshell.Как добавить новую команду оболочки в eshell?

(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)

Смежные вопросы