M-x eww
запрашивает URL или ключевые слова и открывает новый *eww*
буфер. In eww-mode
, G
связан с eww
, который заменяет содержимое одного буфера eww.
Чтобы создать несколько буферов для разных веб-страниц, я прибегнул к созданию нового буфера, его настройке eww-mode
вручную, а затем нажатию G
(или M-x eww
) для просмотра URL-адреса.
Я легко могу написать функцию, которая делает все это за меня, но я удивлен, что эта функция не просто встроена. Я просто скучаю по нему?
eww
с префиксным аргументом; см. мой ответ ниже.Ответы:
Вы правы, что
eww
не создает автоматически новые буферы для вас. Но я использовал этот трюк с ergoemacs.org, и он отлично работает!С ниже eval'ed, каждый раз , когда вы делаете
M-x eww
из не-EWW буфера, уникальный буфер EWW будет создан.Если вы хотите порождать новый буфер eww, находясь в буфере eww, оцените приведенный ниже совет (вам все равно нужно будет оценить вышеупомянутый, чтобы новым
eww
буферам назначались уникальные имена).источник
rename-uniquely
, однако, который эффективен, если я активируюeww
из буфера не-www. Однако, если я нахожусь в буфере eww, ловушка не срабатывает, потому что режим не меняется. По крайней мере, я думаю, что это происходит.M-x eww
из буфера, не принадлежащего eww. Было неясно, намеревались ли вы создать новый буфер eww в буфере eww. Я обновлю решение, если что-нибудь придумаю. Я также на последней версии мастера.eww
функции , как показано в исходном коде:(pop-to-buffer-same-window (if (eq major-mode 'eww-mode) (current-buffer) (get-buffer-create "*eww*")))
.Кажется
eww
, предназначен, чтобы избежать этого поведения. Эта функцияeww-new
может быть вызвана, когда требуется новый буфер eww:источник
Обновить
Это поведение обсуждалось в ошибке # 34374 и объединено 2019-02-15 .
Поэтому в Emacs 27 вызов
eww
с аргументом префикса говорит ему использовать новый буфер вместо повторного использования*eww*
буфера по умолчанию .Да и нет. Подобная функциональность была добавлена в Emacs 26 как команда
eww-open-in-new-buffer
, которая M-RETпо умолчанию связана с буферами EWW:Единственная проблема заключается в том, что на момент написания этой команды она работала только в буферах EWW. В частности, он выдает,
user-error
если значимая ссылка не найдена в точке, как определено опцией пользователяeww-suggest-uris
:Еще одним ограничением команды является то, что она не запрашивает у пользователя URL или условия поиска, как это делает команда
eww
.Вот простой пример того, как вы могли бы преодолеть эти различия между
eww
иeww-open-in-new-buffer
:Что это делает сначала вызвать
interactive
SPEC изeww
, который подсказки для URL - адресов или поиск терминов , как обычно. Затем он вызываетeww-open-in-new-buffer
ранее введенные URL-адреса или условия поиска в качестве единственного предлагаемого URI, чтобы команда не вызывала истерику.Эта команда будет работать как внутри, так и без EWW-буферов, поэтому она может выступать в качестве замены по умолчанию
eww-open-in-new-buffer
, если вы предпочитаете:В любом случае, вы можете вызвать его из любого места M-x
my-eww-new-buffer
RETили связать глобально с более удобным ключом.источник
Я немного расширил фрагмент RP Диллона . Что делает его хорошим кандидатом для создания псевдонима
(defalias 'w #'af/eww)
и откройте eww, используя функцию ниже. Единственное отличие - это условная проверка, если*eww*
буфер уже существует, то создается новый, если неeww
вызывается нативный .источник
Я использую Emacs 25.1 и
eww-open-in-new-buffer
функции там нет. Поэтому я должен переименовать буфер eww, в котором я нахожусь, обычно с легким заголовком о странице, на которой я нахожусь, и снова вызыватьeww
из любого другого буфера, открытого в Emacs (например, из буфера в режиме буфера или из буферов Dired, с нуля, другой документ, любой) переносит меня в другой буфер eww. Наконец, я идуS
к списку буферов eww, чтобы выбрать оттуда. Странно, но это работает, и с несколькими шагами. Интересно, почемуeww-new
не было встроено с самого начала. Конечно, с приведенным выше кодом все будет чище, я попробую. Я рад видеть, что эта функция была добавлена в Emacs 26.источник
eww
с аргументом префикса теперь создает новый буфер EWW; см. мой ответ выше.M-x rename-uniquely
.