将shell命令的输出插入emacs缓冲区

时间:2012-09-06 02:37:36

标签: emacs

我想设置一个键绑定来将日期插入缓冲区。我在.emacs文件中写了以下lisp。以date为例:

;;put the date                                                                  
(global-set-key
 (kbd "C-c C-d")
 (shell-command "date" (current-buffer))
)

当我使用'next-line之类的其他命令时,键绑定可以正常工作,但是当读取.emacs时,shell-command会将其放入*scratch*缓冲区并将其保留。{ / p>

也许我需要使用shell-command-on-region

2 个答案:

答案 0 :(得分:72)

对于将任何shell命令输出插入当前缓冲区的一般情况,您可以使用内置键盘和弦:

C-u M-! <shell-command>

运行相同的shell-command函数,并将输出插回当前缓冲区中的点。

整个键击行程本身可以保存为宏(也许可以分配给快捷键),以便更轻松地调用常见的shell命令。

答案 1 :(得分:11)

我的一位朋友在工作中帮助了我。

(defun put-the-date ()
  (interactive)
  (insert (shell-command-to-string "date")))

(global-set-key
 (kbd "C-c C-d")
 'put-the-date
 )