to raczej podstawowe pytanie, ale jaka jest praktyczna różnica między otwarciem nowego pliku w oddzielnej ramce (make-new-frame) z emacsa lub otwarciem pliku w instancji emacsclient? Widzę, że jeśli pracujesz przez terminal, różnica jest oczywista ... ale czy emacsclient może dodatkowo ograniczyć listę buforów dostępnych przez (menu-bufora) lub ido-tryb do buforów otwartych w tej konkretnej instancji emacsclient?Emacs - emacsclient lub nowa ramka?
Odpowiedz
Nie ma naprawdę żadnej różnicy między tymi dwoma sytuacjami, poza faktem, że serwer ustawia pewien bufor-stan lokalny, aby umożliwić C-x #
(aka server-edit
).
Można ograniczyć M-x list-buffers
zachowanie jak pytasz z następującą radę:
(defadvice list-buffers-noselect (before list-buffers-noselect-limit-to-those-for-emacsclient activate)
"When the current buffer is a being viewed by an emacclient, restrict the buffers to those associated with the emacsclient"
(when (and (null (ad-get-arg 1)) server-buffer-clients)
(let ((blist (delete-dups (reduce 'append
(mapcar (lambda (proc) (process-get proc 'buffers))
server-buffer-clients)))))
(ad-set-arg 1 blist))))
Teraz kiedy robisz M-x buffer-menu
w buforze odwiedzanym przez emacsclient
, widzisz tylko inne bufory odwiedzone przez tego samego klienta (s). Działa normalnie, gdy bufor nie jest odwiedzany przez emacsclient
.
Nie używam ido
, ale wyobrażam sobie, że dostosowanie byłoby podobne (jeśli ta rada nie działa tak, jak jest).
Szczegóły są takie, że po uruchomieniu emacsclient
bufory, które są otwierane, są powiązane z procesem serwera (może to być więcej niż jeden, ponieważ można otworzyć ten sam plik za pomocą wielu wywołań emacsclient
). Klienci serwera bufora są zapisani w lokalnej zmiennej buforowej server-buffer-clients
.
Aby dowiedzieć się, które bufory są związane z konkretnym wywołaniu emacsclient
, znalezienie sposobu tego emacsclient, a nie: (process-get proc 'buffers)
(gdzie proc
jest zwłaszcza proces emacsclient - jeden z elementów listy znaleźć w server-buffer-clients
).
Taka jest cała rada.
Nie ma żadnej różnicy w emacs 23, o ile działa emacsserver. Lista buforów będzie taka sama w każdej z nich.
Dzięki - tak, wygląda na to, że jest poprawny, ale wydaje się, że część emacs ma świadomość, który klient uzyskuje dostęp do konkretnego pliku, jak zaznacza Trey ... ale dzięki za twój wkład! – hatmatrix
- 1. Obramowanie/ramka wokół ramki Emacs
- 2. Emacsclient nie reaguje na kliknięcia myszą
- 3. Wejście inne niż łacińskie w emacsclient
- 4. jak sprawdzić, czy emacs w ramce lub w terminalu?
- 5. nowa data(). Godzina lub nowa Date.getTime() zwracająca liczbę ujemną?
- 6. Tworzenie lub ponowne używanie istniejącej ramki GUI Emacs
- 7. Emacs wersja 24.4: Nowa nieprzyjemna utrata wcięcia po trafieniu POWRÓT
- 8. Emacs: Pobierz nową klatkę i emacsclient -c, aby użyć rozmiaru ramki zestawu?
- 9. Emacs: wyłącz kolor tła motywu na terminalu
- 10. Dwukolorowa ramka
- 11. Czy istnieje sposób otwarcia pliku za pomocą emacsclient (użytkownik), ale z uprawnieniami administratora?
- 12. Sprawdzanie, czy ramka danych jest kopiowana lub wyświetlana w Pandach
- 13. iteracyjnie skonstruowana ramka danych w R
- 14. Wewnętrzna ramka Scrape HTML
- 15. Zablokowana ramka w reCapcha
- 16. IE 8 ramka obramowania
- 17. Co zawiera ramka audio?
- 18. Pandy: unikalna ramka danych
- 19. Emacs: GUI z emacsem - nie ładuje poprawnie czcionek
- 20. nawet gdy emacsclient jest uruchamiany w terminalu, system okien nie jest zerowy
- 21. Lists.newArrayList kontra nowa ArrayList
- 22. Cardview - biała ramka wokół karty
- 23. Nowa linia zapytania SQL
- 24. Emacs osadzone w aplikacji Qt
- 25. Jak automatycznie oceniać niektóre kody lisp po uruchomieniu emacsclient?
- 26. mysql "nie zmienna lub NOWA pseudo-zmienna" wiadomość
- 27. staging heroku lub nowa aplikacja w heroku na inscenizację?
- 28. Czy wyrażenie "nowa T" określa wartość r lub wartość l?
- 29. nowa data() pokazuje różnice w wynikach przeglądarki Chrome lub Firefox
- 30. CodeIgniter- aktywna wstawka rekordu, jeśli nowa lub aktualizacja duplikatu
Dzięki! Jak wspomina Jed, wydaje się, że nie ma różnicy, kiedy otwierana jest nowa ramka, ale powyższe porady działają, gdy otwieram nowy plik z emacsclient -t. Interesujące ... Zajrzę do tego w trybie ido i ewentualnie ibuffera. Bardzo doceniane! – hatmatrix
Czy pracujesz z ido? – tatsuhirosatou