shell命令输出如何可以导入emacs编辑器?

还是更习惯在 gnome-terminal 之类的终端中操作各类命令。 如何可以把命令输出的文本内容导入到 emacs 编辑器中呢?

当然了,使用 终端复制、粘贴也勉强可以凑和。

moreutils 里面的 vipe 工具应该就是你想要的。

我自用的方案还是基于 Emacs 内置的终端:emacs-newbie/introduction-to-builtin-modes.md at master · condy0919/emacs-newbie · GitHub

Emacs 的 term-mode 默认是在「char-mode」中,用起来和正常的终端一样。我实现了一个「browse-mode」,可以把 term-mode 的 buffer 变成一个普通的只读 buffer,这样就可以浏览和复制了。

注意到 term-mode 自带 next/prev-prompt 这些命令,所以要想复制一个命令的全部输出还是挺方便的。

谢谢。简单看了一下,回头再试用。现在不像以前那样想折腾了。 :frowning:

EmacsWiki: Emacs Pipe 好像有类似实现。

我自己用的 emacsclient, 所以改了一下,改成类似于... | vim - 的形式 比如:

ls | et -

可以临时查看编辑,或者另存为。 详细见 et.sh

1 个赞

可以用 pfuture 这个包,用法很简单


(defun execute-shell-command (&rest args)
  (let ((future1 (apply #'pfuture-new args)))
    (pfuture-await future1)
    (message "Future stdout: [%s]" (pfuture-result future1))
    (message "Future stderr: [%s]" (pfuture-stderr future1))
    ))

(execute-shell-command "git" "--help")

(pfuture-result future1) 获取 stdout 的内容

1 个赞

shell-command-to-string?

这个内置函数还挺好用的

evil-mode下直接! !

这个问题和 这个贴子 感觉是一个意思

C-u M-! 即可