使用elisp/emacs运行一个进程并将结果复制到剪贴板(或kill ring)

5
我使用以下代码在scratch缓冲区中运行"ls -l ./"并获取结果。
(start-process "my-process" "*scratch*" "ls" "-l" "./")
  • 我该如何将结果复制到剪贴板或其他地方(kill ring或其他)以便在需要时轻松复制结果?
2个回答

6

您可以根据自己的喜好进行调整:

(kill-new (shell-command-to-string "ls -l ."))

调用kill-new将从shell-command-to-string获取的字符串放入剪贴板。


2

shell-command(绑定到M-!)运行一个shell命令并把输出结果放在* Shell Command Output *中。如果给定一个参数(例如:M-1 M-!),它将把结果放在当前缓冲区中。

关于这个命令的更多信息,请访问Emacs wiki上的ExecuteExternalCommand页面。


随后它可以立即被删除。因此,C-u M-! (command) RET C-w 将结果放入 kill ring 中。您可以使用 minibuffer 的历史记录 (C-p 或向上箭头) 轻松地重新输入最近的命令,而无需重新输入它们。 - phils

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接