Пожалуйста, помогите мне отладить следующее определение простой функции 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) Он работает без аргумента «-F». (2) Он работает, если вы запускаете 'eshell/l' явно, а не' l'. (3) Если вы отредактируете определение функции, чтобы точно соответствовать «eshell/ls», кроме дополнительных аргументов, оно все равно терпит неудачу. (4) Если вы добавите дополнительные аргументы в определение 'eshell/ls',' ls' все еще работает нормально. – phils