使用emacs将文本作为参数传递给外部程序

时间:2011-07-27 11:37:28

标签: emacs

假设我在文件中包含此文本:

/home is where the heart is.

例如,如果我选择/home文本,使用C-spc,有没有办法将它发送到ls,那么最终是否会执行ls /homeM-|不起作用。

3 个答案:

答案 0 :(得分:5)

据我所知,直接在Emacs中无法做到这一点。但是在elisp的帮助下可以实现一切:

(defun region-as-argument-to-command (cmd)
  (interactive "sCommand: ")
  (shell-command
   (format
    "%s %s"
    cmd
    (shell-quote-argument
     (buffer-substring (region-beginning)
                       (region-end))))))

答案 1 :(得分:5)

尝试 M- | xargs ls。也就是说,在所选区域上传递“xargs ls”作为shell命令。

请参阅xargs

答案 2 :(得分:3)

对于您提出的问题,Victor的回答很好,但在您的具体情况下,您可以考虑使用M-x ffap(find-file-at-point)。这将为dired目录提供/home缓冲区。