emacs扩展做系统调用,休眠,然后重新加载缓冲区

时间:2011-02-02 19:22:47

标签: emacs lisp

我想编写一个emacs扩展名,以便当我执行 M-x,b,k,e 时,会发生以下情况:

  1. 执行系统/ shell调用,其中最后一个参数是当前所选缓冲区文件的完整路径。
  2. 如果无法阻止系统调用的返回,请等待命令终止或休眠3秒钟。
  3. 重新加载/恢复当前缓冲区
  4. 这是怎么做到的?

3 个答案:

答案 0 :(得分:1)

你去(三个中至少两个)

1)使用最后一个参数进行Shell调用

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

2)我不知道,抱歉。

3)重新载入文件。

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

答案 1 :(得分:1)

除了键绑定部分,这个问题与:elisp:call command on current file相同。

答案 2 :(得分:1)

这应该是关闭的:

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