M-x eww
solicita url o palabras clave y abre un nuevo *eww*
búfer. En eww-mode
, G
está vinculado a eww
, que reemplaza el contenido del único búfer eww.
Para crear múltiples buffers para diferentes páginas web, he recurrido a la creación de un nuevo buffer, configurando eww-mode
manualmente, luego presionando G
(o M-x eww
) para visitar una URL.
Puedo escribir fácilmente una función que hace todo esto por mí, pero me sorprende que esta funcionalidad no solo esté integrada. ¿Me lo estoy perdiendo?
eww
con un argumento prefijo; mira mi respuesta a continuación.Respuestas:
Tienes razón, eso
eww
no crea automáticamente nuevos buffers para ti. ¡Pero he estado usando este truco de ergoemacs.org y funciona muy bien!Con la siguiente evaluación, cada vez que lo haga
M-x eww
desde un búfer que no sea eww , se creará un búfer eww único.Si desea generar un nuevo búfer de eww mientras se encuentra en un búfer de eww, evalúe los siguientes consejos (aún deberá evaluar lo anterior para que
eww
se asignen nombres únicos a los nuevos buffers).fuente
rename-uniquely
, lo que es efectivo si activoeww
desde un búfer que no es eww. Sin embargo, si estoy en un búfer eww, el gancho no se dispara, porque el modo no está cambiando. Al menos creo que eso es lo que está sucediendo.M-x eww
desde un búfer que no es eww. No estaba claro si tenía la intención de generar un nuevo búfer eww mientras estaba en un búfer eww. Actualizaré la solución si se me ocurre algo. También estoy en la última versión de master.eww
función como se ve en el código fuente:(pop-to-buffer-same-window (if (eq major-mode 'eww-mode) (current-buffer) (get-buffer-create "*eww*")))
.Parece que
eww
está diseñado para evitar este comportamiento. Esta función,eww-new
se puede invocar cuando se desea un nuevo búfer eww:fuente
Actualizar
Este comportamiento se discutió en el error # 34374 y se fusionó el 15/02/2019 .
Entonces, en Emacs 27, llamar
eww
con un argumento de prefijo le dice que use un nuevo búfer en lugar de reutilizar el*eww*
búfer predeterminado .Si y no. Se agregó una funcionalidad similar en Emacs 26 como el comando
eww-open-in-new-buffer
, que está vinculado a los M-RETbúferes EWW de forma predeterminada:El único problema es que, al momento de escribir, este comando se limita a trabajar solo en buffers EWW. En particular, arroja un
user-error
enlace si no se encuentra un enlace significativo en el punto, según lo determinado por la opción del usuarioeww-suggest-uris
:Una limitación adicional del comando es que no solicita al usuario una URL o términos de búsqueda, como lo
eww
haría el comando .Aquí hay un ejemplo simple de cómo podría salvar estas diferencias entre
eww
yeww-open-in-new-buffer
:Lo que esto hace es primero llamar a la
interactive
especificación deeww
, que solicita URL o términos de búsqueda como de costumbre. Luego llamaeww-open-in-new-buffer
con las URL de entrada o los términos de búsqueda previamente ingresados como el único URI sugerido, para que el comando no haga berrinche.Este comando funcionará tanto dentro como fuera de los buffers EWW, por lo que puede actuar como un reemplazo directo para el valor predeterminado
eww-open-in-new-buffer
, si lo prefiere:De cualquier manera, puede invocarlo desde cualquier lugar M-x
my-eww-new-buffer
RETo vincularlo globalmente a una tecla más conveniente.fuente
Extendí un poco el fragmento RP Dillon . Lo que lo hace un buen candidato para crear alias como
(defalias 'w #'af/eww)
y abrir eww usando la función a continuación. La única diferencia es la verificación condicional si el*eww*
búfer ya existe, luego se crea uno nuevo, si noeww
se invoca el nativo .fuente
Yo uso Emacs 25.1 y la
eww-open-in-new-buffer
función no está allí. Así que tengo que cambiar el nombre del búfer eww en el que estoy, generalmente con un título sencillo sobre la página en la que estoy, y volver a llamareww
desde cualquier otro búfer abierto en Emacs (por ejemplo, desde el búfer en modo de búfer, o búferes directos, desde cero, otro documento, cualquiera) me lleva a otro búfer eww. Finalmente voyS
a la lista de buffers de eww para seleccionar desde allí. Extraño pero funciona, y con pocos pasos. Me pregunto por quéeww-new
no fue incorporado desde el principio. Por supuesto, es más limpio con el código anterior, lo intentaré. Me alegra ver que la función se agregó en Emacs 26.fuente
eww
con un argumento prefijo ahora crea un nuevo búfer EWW; mira mi respuesta arriba.M-x rename-uniquely
.