Size: a a a

Emacs — русскоговорящее сообщество

2021 September 03

¥

¥αros!αν in Emacs — русскоговорящее сообщество
ещё и кросс-редакторно
источник

ℙ𝕚𝕜𝕜𝕤𝕖𝕝 𝕆𝕟𝕖... in Emacs — русскоговорящее сообщество
Ну ладно, спасибо, поковыряю что-нибудь
источник

ℙ𝕚𝕜𝕜𝕤𝕖𝕝 𝕆𝕟𝕖... in Emacs — русскоговорящее сообщество
Посмотрю что-нить из предложенного
источник
2021 September 04

VL

Valeriy L in Emacs — русскоговорящее сообщество
Юзаю list-buffers как дид
источник

A

Aragaer in Emacs — русскоговорящее сообщество
я тоже
источник

АО

Александр Олейников... in Emacs — русскоговорящее сообщество
Вот есть функция call-process-region для синхронного запуска процесса и передачи ему инпута из буфера. У неё сигнатура такая:
(call-process-region START END PROGRAM &optional DELETE BUFFER DISPLAY &rest ARGS)

В документации написано:
If START is nil, that means to use the entire buffer contents; END is ignored.

Я написал что-то в буфер с именем *foo* и запускаю:
(call-process-region nil nil "wc" t "*foo*" t "-l")

Я жду, что она запустит процесс с wc -l, передаст ему весь текст из буфера *foo*,  и заменит текст в буфере на то, что wc написала в STDOUT.

Но на деле я получаю: Wrong type argument: integer-or-marker-p, nil

Что я делаю не так?
источник

A ß in Emacs — русскоговорящее сообщество
трейс покажи
источник

A ß in Emacs — русскоговорящее сообщество
умвр, короче
источник

A ß in Emacs — русскоговорящее сообщество
(with-current-buffer
   (get-buffer-create "*foo*")
 (erase-buffer)
 (insert "foo\nbar\nbaz\n")
 (call-process-region nil nil "wc" t t nil "-l")
 (buffer-string))
источник

АО

Александр Олейников... in Emacs — русскоговорящее сообщество
Интересно. А какая версия Emacs? У меня 27.1
источник

A ß in Emacs — русскоговорящее сообщество
28.0.50
источник

АО

Александр Олейников... in Emacs — русскоговорящее сообщество
У меня дело оказалось в том, что t четвёртым аргументом. Меняю на nil и работает.
источник

A ß in Emacs — русскоговорящее сообщество
в смысле четвертым?
источник

A ß in Emacs — русскоговорящее сообщество
а, понял
источник

АО

Александр Олейников... in Emacs — русскоговорящее сообщество
В смысле DELETE который.
источник

A ß in Emacs — русскоговорящее сообщество
попробуй вместо имени буфера использовать настоящий буфер
источник

АО

Александр Олейников... in Emacs — русскоговорящее сообщество
В общем, это, видимо, баг в 27.1, раз у тебя этот код сработал.

Потому что я вот запустил emacs -Q, и в *scratch* написал:
(call-process-region (point-min) (point-max) "wc" t t)
(call-process-region nil nil "wc" t t)

Первое работает, на втором ошибка: wrong type argument integer-or-marker-p nil.
источник

A ß in Emacs — русскоговорящее сообщество
грепни по мейллисту
источник

АО

Александр Олейников... in Emacs — русскоговорящее сообщество
https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=42306747d8dece897805e89c36c3741bfb8d5e7c
Fix error in 'call-process-region' when START is nil (Bug#40576)
источник

A ß in Emacs — русскоговорящее сообщество
нормально
источник