emacs может использовать gpg-агент в терминале вообще?

Странно. Для меня обе работы вариантов (grep (GNU grep) 2.13):

grep 'foo\|321'
grep -E 'foo|321'

Редактирование 1 - показывает файлы с обоими соответствиями только

for file in * ответьте на работы, но может стать кошмаром производительности (для больших сумм файлов): по крайней мере два процесса на файл. Это быстрее (в мире GNU):

find . -type f -print0 | xargs -0 -r grep --files-with-matches --null -- string1 |
  xargs -0 -r grep --files-with-matches -- string2

string1 должен быть тем, который приводит к меньшему количеству соответствий.

9
13.11.2012, 21:42
3 ответа

ЭТО! -> https://github.com/ecraven/pinentry-emacs

Вам придется немного пошалить, но использование этой штуки сработало на меня. Поместите скрипт туда в каталог в вашем PATH и затем добавьте следующую запись в ~/.gnupg/gpg-agent.conf:

pinentry-program <path-to-pinentry-emacs>/pinentry-emacs

Затем перезагрузите агент:

$ echo RELOADAGENT | gpg-connect-agent

Работает как сон для меня :)

.
4
27.01.2020, 20:07

Альтернативой, если у вас достаточно недавняя версия pinentry / gpg2 (протестированная с 0.9.7 и 2.1.11 соответственно в Arch Linux), можно использовать http://elpa.gnu.org/packages/pinentry .html .

Установите pinentry из Mx list-packages , затем поместите

allow-emacs-pinentry

в свой .gnupg / gpg-agent.conf и вставьте

(setenv "INSIDE_EMACS" (format "%s,comint" emacs-version))
(pinentry-start)

в ваш .emacs.d / init.el . Мне пришлось поместить туда setenv, потому что, хотя INSIDE_EMACS устанавливается при запуске M-x shell , он не устанавливается при простом открытии файла .gpg .

Теперь gpg-agent использует обычную версию curses из терминала, а внутри Emacs - read-passwd (который скрывает символы из приглашения и из view-lossage ) .


РЕДАКТИРОВАТЬ: Похоже, в пакете Debian есть патч для удаления поддержки Emacs, так что на данный момент это решение работает только для других дистрибутивов / людей, готовых самостоятельно компилировать pinentry.

3
27.01.2020, 20:07

В 2021 году вы можете использовать настройку pinentry-mode loopbackв ~/.gnupg/gpg.confпосле настройки агента gpg -и использования allow-loopback-entryв ~/.gnupg/gpg-agent.conf

.
2
25.06.2021, 14:54

Теги

Похожие вопросы