Передача текста в качестве аргумента во внешнюю программу с использованием emacs - PullRequest
4 голосов
/ 27 июля 2011

Допустим, у меня есть этот текст в файле:

/home is where the heart is.

Если, например, я выбираю текст /home, используя C-spc, есть ли способ отправить его в ls, поэтомучто в итоге если выполнит ls /home?M-| не работает.

Ответы [ 3 ]

5 голосов
/ 27 июля 2011

Попробуйте M- | xargs ls.То есть передайте «xargs ls» в качестве команды оболочки для выбранного региона.

См. xargs .

5 голосов
/ 27 июля 2011

Насколько я знаю, в 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))))))
3 голосов
/ 27 июля 2011

Ответ Виктора является хорошим ответом на вопрос, который вы задали, но в вашем конкретном случае вы могли бы рассмотреть возможность использования M-x ffap (найти файл в точке). Это даст вам буфер dired для каталога /home.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...