Я хотел бы создать скрипт, который просто очищает пробелы и вкладки для нескольких файлов в папке для меня. Я создал файл оргии с среди прочего:emacs --daemon с --batch и input file
emacsclient -t -e '(progn (prelude-cleanup-buffer-or-region) (save-buffer-kill-terminal))' $FILE
Теперь это, кажется, не работает, как он интерпретирует все аргументы файлов в качестве функции для запуска (так что $ FILE выполняется как функция). (PS прелюдия-очистка-буфер или регион является from here)
Теперь то, что я действительно хочу, по-видимому, --batch
described here (так как я на самом деле не хочу, чтобы отобразить что-либо на экране), но это не один из параметры emacsclient. Причина, по которой я хочу использовать emacsclient, а не просто использовать emacs --batch
, заключается в том, что у меня много файлов автозагрузки, поэтому хочу, чтобы все это оставалось загруженным, иначе мой скрипт займет слишком много времени.
Есть ли у кого-нибудь советы о том, как это сделать?
Заранее спасибо.
отличный ответ, спасибо. Моим решением было 'emacsclient -e '(progn (find-file \" $ FILE \ ") (prelude-cleanup-buffer-or-region) (save-buffer) (kill-buffer)) в конце. Обратите внимание на '(kill-buffer)', так как без этого мой скрипт висит, если я попробовал его дважды, поскольку буфер, уже открытый, останавливает вашу команду. –
hmm - мой пример должен был быть подсказкой, но find-file в порядке с буферами, которые уже посещаются. Может быть, что-то в ваших других формах заставляло его ожидать большего вклада во второй раз? Во всяком случае, принцип звучит, я рад, что вы его исправили. – cms
Да, я смутился об этом сам, поскольку я думал, что файл find был идемпотентным, в любом случае, гарантируя, что вы «kill-buffer» после исправления ошибки для меня (как бы там ни было ошибка). Еще раз спасибо. –