M-x eww
monituje o adres URL lub słowa kluczowe i otwiera nowy *eww*
bufor. W eww-mode
, G
jest związany eww
, co zastępuje zawartości bufora jednym eww.
Aby utworzyć wiele buforów dla różnych stron internetowych, postanowiłem utworzyć nowy bufor, ustawić eww-mode
ręcznie, a następnie nacisnąć G
(lub M-x eww
), aby odwiedzić adres URL.
Mogę łatwo napisać funkcję, która robi to wszystko za mnie, ale jestem zaskoczony, że ta funkcja nie jest tylko wbudowana. Po prostu mi tego brakuje?
eww
z argumentem przedrostka; patrz moja odpowiedź poniżej.Odpowiedzi:
Masz rację, że
eww
nie tworzy automatycznie nowych buforów dla Ciebie. Ale korzystałem z tej sztuczki z ergoemacs.org i działa świetnie!Z poniżej eval'ed, za każdym razem zrobić
M-x eww
z non-eww buforze, zostanie utworzony unikatowy bufor eww.Jeśli chcesz odrodzić nowy bufor eww będąc w buforze eww, zapoznaj się z poniższą radą (nadal będziesz musiał ewaluować powyższe, aby nowe
eww
bufory otrzymały unikalne nazwy).źródło
rename-uniquely
, co jest skuteczne, jeślieww
aktywuję z bufora innego niż eww. Jeśli jestem w buforze eww, hak nie uruchamia się, ponieważ tryb się nie zmienia. Przynajmniej myślę, że tak się dzieje.M-x eww
z bufora innego niż eww. Nie było jasne, czy zamierzałeś mieć nowy spawn bufora eww w buforze eww. Zaktualizuję rozwiązanie, jeśli coś wymyślę. Jestem również na najnowszej wersji Master.eww
funkcji, jak widać w kodzie źródłowym:(pop-to-buffer-same-window (if (eq major-mode 'eww-mode) (current-buffer) (get-buffer-create "*eww*")))
.Wygląda na
eww
to, że ma na celu uniknięcie tego zachowania. Tę funkcjęeww-new
można wywołać, gdy pożądany jest nowy bufor eww:źródło
Aktualizacja
To zachowanie zostało omówione w błędzie # 34374 i połączone 15.02.2019 .
Tak więc w Emacs 27 wywołanie
eww
z argumentem przedrostka mówi mu, aby używał nowego bufora zamiast ponownego użycia*eww*
bufora domyślnego .Tak i nie. Podobna funkcjonalność została dodana w Emacsie 26 jako polecenie
eww-open-in-new-buffer
, które M-RETdomyślnie jest powiązane z buforami EWW:Jedyny problem polega na tym, że w momencie pisania ta komenda jest ograniczona do działania tylko w buforach EWW. W szczególności zgłasza,
user-error
jeśli nie zostanie znaleziony znaczący link w punkcie, zgodnie z opcją użytkownikaeww-suggest-uris
:Kolejnym ograniczeniem polecenia jest to, że nie monituje on użytkownika o podanie adresu URL ani wyszukiwanych terminów jako polecenia
eww
zrobiłoby .Oto prosty przykład, jak można zlikwidować te różnice
eww
ieww-open-in-new-buffer
:Co to robi to najpierw zadzwoń
interactive
Spec odeww
, co skłania do adresów URL lub poszukać terminy jak zwykle. Następnie wywołujeeww-open-in-new-buffer
z poprzednio wprowadzonymi adresami URL lub wyszukiwanymi terminami jako jedynym sugerowanym identyfikatorem URI, dzięki czemu polecenie nie wywołuje furii.To polecenie będzie działać zarówno w buforach EWW, jak i bez nich, więc może działać jako zamiennik domyślny
eww-open-in-new-buffer
, jeśli wolisz:Tak czy inaczej, możesz wywołać go z dowolnego miejsca M-x
my-eww-new-buffer
RETlub powiązać globalnie z wygodniejszym kluczem.źródło
Rozszerzyłem nieco fragment RP Dillona . Co czyni go dobrym kandydatem do tworzenia aliasów
(defalias 'w #'af/eww)
i otwierania eww za pomocą funkcji poniżej. Jedyną różnicą jest sprawdzenie warunkowe, czy*eww*
bufor już istnieje, a następnie tworzony jest nowy, jeśli nie,eww
wywoływany jest natywny .źródło
Używam Emacsa 25.1 i
eww-open-in-new-buffer
nie ma tam funkcji. Więc muszę zmienić nazwę bufora eww, w którym jestem, zwykle z pewnym łatwym tytułem na temat strony, na której jestem, i dzwonię ponownieeww
z dowolnego innego bufora otwartego w Emacsie (na przykład z bufora trybu buforowego lub buforów dired, od zera, inny dokument, dowolny) zabiera mnie do innego bufora eww. Wreszcie przechodzęS
do listy buforów eww, aby wybrać stamtąd. Dziwne, ale działa i wymaga kilku kroków. Zastanawiam się, dlaczegoeww-new
nie był wbudowany od samego początku. Oczywiście z powyższym kodem jest czystszy, spróbuję. Cieszę się, że funkcja została dodana w Emacs 26.źródło
eww
z argumentem przedrostka tworzy teraz nowy bufor EWW; patrz moja odpowiedź powyżej.M-x rename-uniquely
.