[room] emacs shell command = grep ?

Evgenii Terechkov =?iso-8859-1?q?evg-krsk_=CE=C1_yandex=2Eru?=
Вт Фев 10 15:08:45 MSK 2009


Michael Bykov пишет:

> Евгений,
> попытаюсь еще раз.
> Есть последовательность команд, последняя - grep.
> Нужно ее выполнить, причем параметр - то слово, которое высвеченно.
> Например, высвеченно 'word'. Нужно сделать ls | grep word.
> В руководстве сказано, что stdin передается в command по-умолчанию.
> Да, передается. Например в cat или в gpg. Почему не передается в grep?

Читайте внимательно: "stdin". Это не command line
arguments.

> Проще всего - высветите любое слово и сделайте
> M-| ls | grep <RET>.
> вы увидите ошибку.

Никакой ошибки - читайте внимательно документацию.

> Как записать цепочку ls | grep чтобы туда попало значение word?
> Как написать такую цепочку команд?

Надо писать код, из коробки этого я не вижу. Например, вот такой:

(defun shell-command-and-grep-by (command start end)
  (interactive "sCommand:\nr")
  (shell-command (format "%s | grep -e %s" command 
                         (buffer-substring-no-properties start end))))

Далее поправьте по вкусу.

P.S.: с таки лучше в xmpp://emacs@conference.jabber.ru
-- 
                                                С уважением, Терешков
                                                Евгений.


Подробная информация о списке рассылки smoke-room