代码之家  ›  专栏  ›  技术社区  ›  huwr

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

  •  46
  • huwr  · 技术社区  · 12 年前

    我想设置一个密钥绑定,以便将日期插入缓冲区。我在我的 .emacs 文件使用 date 例如:

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

    当我使用其他命令(如 'next-line 但是 shell-command 将其放入 *scratch* 当.emacs被读取时缓冲区,并将其保留在该缓冲区。

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

    2 回复  |  直到 12 年前
        1
  •  97
  •   Anupam    12 年前

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

    C-u M-! <shell-command>
    

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

    整个键笔划本身可以保存为宏(也许可以指定给快捷方式),以便更容易地调用常见的shell命令。

        2
  •  15
  •   huwr    12 年前

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

    (defun put-the-date ()
      (interactive)
      (insert (shell-command-to-string "date")))
    
    (global-set-key
     (kbd "C-c C-d")
     'put-the-date
     )