Культурный офтопик
 help / color / mirror / Atom feed
* [room] emacs shell command = grep ?
@ 2009-02-09 16:40 Michael Bykov
    2009-02-24 11:29 ` Alexey Voinov
  0 siblings, 2 replies; 3+ messages in thread
From: Michael Bykov @ 2009-02-09 16:40 UTC (permalink / raw)
  To: Культурный
	офтопик

как грепнуть что-то в емаксе?

мне нужно выполнить цепочку команд, последняя - grep. Как грепу
передать высвеченный регион? В руководстве прямо про grep примера нет.

Вот из руководства: высвечиваем регион, (пусть слово word), затем
выполняем произвольную команду по M-|:

M-| cat <RET> --> word.

M-| gpg <RET> - корректно работает. (В gpg регион передается).

M-| ls <RET> --> правильно отдает список файлов (регион на ls не влияет).

а как выполнить команду

M-| ls | grep <RET> ? ---> ошибка.

здесь регион не передается почему-то. Голову сломал :(

М.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [room] emacs shell command = grep ?
  @ 2009-02-10 12:08     ` Evgenii Terechkov
  0 siblings, 0 replies; 3+ messages in thread
From: Evgenii Terechkov @ 2009-02-10 12:08 UTC (permalink / raw)
  To: smoke-room

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
-- 
                                                С уважением, Терешков
                                                Евгений.


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [room] emacs shell command = grep ?
  2009-02-09 16:40 [room] emacs shell command = grep ? Michael Bykov
  @ 2009-02-24 11:29 ` Alexey Voinov
  1 sibling, 0 replies; 3+ messages in thread
From: Alexey Voinov @ 2009-02-24 11:29 UTC (permalink / raw)
  To: smoke-room, m.bykov

Michael Bykov <m dot bykov at gmail dot com> writes:
> как грепнуть что-то в емаксе?
> 
> мне нужно выполнить цепочку команд, последняя - grep. Как грепу
> передать высвеченный регион? В руководстве прямо про grep примера нет.
> 
> Вот из руководства: высвечиваем регион, (пусть слово word), затем
> выполняем произвольную команду по M-|:
> 
> M-| cat <RET> --> word.
> 
> M-| gpg <RET> - корректно работает. (В gpg регион передается).
> 
> M-| ls <RET> --> правильно отдает список файлов (регион на ls не влияет).
> 
> а как выполнить команду
> 
> M-| ls | grep <RET> ? ---> ошибка.
> 
> здесь регион не передается почему-то. Голову сломал :(
Не усложняй. :)
Выполни сначала M-! ls, выдели что нужно (хоть всё), и потом M-! grep
Можно, конечно, выпендриться, и чуть-чуть обернуть
shell-command-on-region, чтобы при пустом выделении оно посылало на
вход весь буфер.

-- 
Alexey Voinov



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2009-02-24 11:29 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-02-09 16:40 [room] emacs shell command = grep ? Michael Bykov
2009-02-10 12:08     ` Evgenii Terechkov
2009-02-24 11:29 ` Alexey Voinov

Культурный офтопик

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/smoke-room/0 smoke-room/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 smoke-room smoke-room/ http://lore.altlinux.org/smoke-room \
		smoke-room@lists.altlinux.org smoke-room@lists.altlinux.ru smoke-room@lists.altlinux.com smoke-room@altlinux.ru smoke-room@altlinux.org smoke-room@altlinux.com
	public-inbox-index smoke-room

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.smoke-room


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git