还是更习惯在 gnome-terminal 之类的终端中操作各类命令。 如何可以把命令输出的文本内容导入到 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 这些命令,所以要想复制一个命令的全部输出还是挺方便的。
谢谢。简单看了一下,回头再试用。现在不像以前那样想折腾了。
EmacsWiki: Emacs Pipe 好像有类似实现。
我自己用的 emacsclient, 所以改了一下,改成类似于... | vim -
的形式
比如:
ls | et -
可以临时查看编辑,或者另存为。 详细见 et.sh
可以用 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 的内容
shell-command-to-string
?
这个内置函数还挺好用的
evil-mode下直接! !
C-u M-! 即可