M-x eww
solicita URL ou palavras-chave e abre um novo *eww*
buffer. Em eww-mode
, G
é vinculado a eww
, que substitui o conteúdo do buffer eww único.
Para criar vários buffers para diferentes páginas da web, eu recorri à criação de um novo buffer, definindo eww-mode
manualmente e pressionando G
(ou M-x eww
) para visitar um URL.
Posso escrever facilmente uma função que faz tudo isso para mim, mas estou surpreso que essa funcionalidade não seja apenas incorporada. Eu só estou sentindo falta disso?
eww
com um argumento de prefixo; veja minha resposta abaixo.Respostas:
Você está certo que
eww
não cria automaticamente novos buffers para você. Mas eu tenho usado esse truque no ergoemacs.org e funciona muito bem!Com a avaliação abaixo, cada vez que você faz a
M-x eww
partir de um buffer não eww , um buffer eww exclusivo será criado.Se você deseja gerar um novo buffer eww enquanto estiver em um buffer eww, avalie as recomendações abaixo (você ainda precisará avaliar o acima para que novos
eww
buffers recebam nomes exclusivos).fonte
rename-uniquely
, no entanto, o que é eficaz se eu ativar aeww
partir de um buffer não-eww. Se eu estiver em um buffer eww, no entanto, o gancho não dispara, porque o modo não está mudando. Pelo menos eu acho que é isso que está acontecendo.M-x eww
um buffer que não seja eww. Não ficou claro se você pretendia gerar um novo buffer eww enquanto estava em um buffer eww. Atualizarei a solução se surgir alguma coisa. Eu também estou na versão mais recente do master.eww
função como visto no código fonte:(pop-to-buffer-same-window (if (eq major-mode 'eww-mode) (current-buffer) (get-buffer-create "*eww*")))
.Parece que
eww
foi projetado para evitar esse comportamento. Esta funçãoeww-new
,, pode ser chamada quando um novo buffer eww for desejado:fonte
Atualizar
Esse comportamento foi discutido no bug # 34374 e mesclado em 15/02/2019 .
Assim, no Emacs 27, chamar
eww
com um argumento prefix diz para usar um novo buffer em vez de reutilizar o*eww*
buffer padrão .Sim e não. Funcionalidade semelhante foi adicionada no Emacs 26 como o comando
eww-open-in-new-buffer
, que está vinculado aos M-RETbuffers do EWW por padrão:O único problema é que, no momento da escrita, esse comando se limita a trabalhar apenas em buffers EWW. Em particular, ele lança um
user-error
se nenhum link significativo for encontrado no momento, conforme determinado pela opção do usuárioeww-suggest-uris
:Uma limitação adicional do comando é que ele não solicita ao usuário um URL ou termos de pesquisa, como
eww
seria o comando .Aqui está um exemplo simples de como você pode superar essas diferenças entre
eww
eeww-open-in-new-buffer
:O que isto significa é primeira chamada a
interactive
especificação deeww
que prompts para URLs ou pesquisar termos como de costume. Em seguida, chamaeww-open-in-new-buffer
com os URLs inseridos anteriormente ou termos de pesquisa como o único URI sugerido, para que o comando não faça birra.Este comando funcionará dentro e sem os buffers EWW, portanto, ele pode atuar como um substituto para o padrão
eww-open-in-new-buffer
, se você preferir:De qualquer forma, você pode invocá-lo de qualquer lugar M-x
my-eww-new-buffer
RETou vinculá-lo globalmente a uma chave mais conveniente.fonte
Estendi um trecho do RP Dillon . O que o torna um bom candidato para criar alias como
(defalias 'w #'af/eww)
e abrir eww usando a função abaixo. A única diferença é a verificação condicional, se o*eww*
buffer já existir, um novo será criado, se o nativo nãoeww
for chamado.fonte
Eu uso o Emacs 25.1 e a
eww-open-in-new-buffer
função não está lá. Portanto, tenho que renomear o buffer eww em que estou, geralmente com algum título fácil sobre a página em que estou, e chamando novamenteeww
de qualquer outro buffer aberto no Emacs (por exemplo, no modo de buffer ou nos buffers direcionados, do zero, outro documento, qualquer) me leva a outro buffer eww. Finalmente, vouS
para a lista de buffers eww para selecionar a partir daí. Estranho, mas funciona, e com alguns passos. Eu me pergunto por queeww-new
não foi incorporado desde o início. Claro que é mais limpo com o código acima, vou tentar. Fico feliz em ver que a função foi adicionada no Emacs 26.fonte
eww
com um argumento de prefixo agora cria um novo buffer EWW; veja minha resposta acima.M-x rename-uniquely
.