Расширение Emacs, чтобы сделать системный вызов, сон, затем перезагрузить буфер - PullRequest
0 голосов
/ 02 февраля 2011

Я хочу написать расширение emacs таким образом, чтобы при выполнении Mx, b, k, e происходили следующие вещи:

  1. , где выполнялся системный вызовпоследний аргумент - полный путь к файлу выбранного в данный момент буфера.
  2. дождитесь завершения команды или переведите ее в спящий режим на 3 секунды, если невозможно заблокировать возврат системного вызова.
  3. перезагрузить / восстановить текущий буфер

Как это сделать?

Ответы [ 3 ]

1 голос
/ 02 февраля 2011

Кроме части связывания ключей, этот вопрос такой же, как: elisp: команда вызова для текущего файла .

1 голос
/ 02 февраля 2011

Это должно быть близко:

(defun bke ()
  (interactive)
  (let ((buf-name (buffer-file-name)))
    (with-temp-buffer
      (shell-command (concat "your-command-here " buf-name) t))
    (revert-buffer t t t))
1 голос
/ 02 февраля 2011

Вот, пожалуйста (хотя бы два из трех)

1) Вызов оболочки с последним аргументом

(defun b ()
  (interactive)
  (shell-command (concat (read-string "$ ") " " buffer-file-name)))

2) Не знаю, извините.3) Перезагрузить файл.

(defun e ()
  (interactive)
  (revert-buffer t t t))
...