emacs扩展执行系统调用、睡眠,然后重新加载缓冲区
我想编写一个emacs扩展,这样当我执行M-x,b,k,e时,会发生以下事情:emacs扩展执行系统调用、睡眠,然后重新加载缓冲区,emacs,lisp,Emacs,Lisp,我想编写一个emacs扩展,这样当我执行M-x,b,k,e时,会发生以下事情: 执行系统/shell调用,其中最后一个参数是当前选定缓冲区文件的完整路径 如果无法阻止返回系统调用,请等待命令终止或休眠3秒钟 重新加载/恢复当前缓冲区 这是怎么做到的?给你(三个中至少有两个) 1) 带最后一个参数的Shell调用 (defun b () (interactive) (shell-command (concat (read-string "$ ") " " buffer-file-name)
(defun b ()
(interactive)
(shell-command (concat (read-string "$ ") " " buffer-file-name)))
2) 我不知道,对不起
3) 重新加载文件
(defun e ()
(interactive)
(revert-buffer t t t))
给你(三个中至少两个)
1) 带最后一个参数的Shell调用
(defun b ()
(interactive)
(shell-command (concat (read-string "$ ") " " buffer-file-name)))
2) 我不知道,对不起
3) 重新加载文件
(defun e ()
(interactive)
(revert-buffer t t t))
除密钥绑定部分外,此问题与:elisp:.相同。除密钥绑定部分外,此问题与:elisp:.相同。此问题应关闭:
(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))
这应该很接近:
(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))
一个好的开始方法是学习Lisp。一个好的开始方法可能的重复是学习Lisp。它可能的重复看起来像shell命令块,因此它将固有地等待。谢谢你的回答。它看起来像shell命令块,所以它会等待。谢谢你的回答。太好了!我刚刚用
(全局设置键(kbd“C-C bke”)'bke)
将它绑定到一个键序列,然后我就开始运行了。谢谢完美的我刚刚用(全局设置键(kbd“C-C bke”)'bke)
将它绑定到一个键序列,然后我就开始运行了。谢谢