2010-09-18 14 views
9

Mam wiele podziałów otwarte, patrząc na różne bufory. Ale kiedy na przykład sprawdzę pomoc w funkcji, zastąpi ona jeden z podziałów buforem pomocy. Kiedy skończyłem czytać pomoc, muszę ręcznie powrócić do prawidłowego bufora, co jest uciążliwe. Jak sprawić, by Emacs był ładniejszy dla moich buforów?Jak powstrzymać Emacs od zmiany moich buforów podziału?

Aktualizacja: Pomoc pozwoli Ci nacisnąć q, aby powrócić do poprzedniego bufora. Ale powodując pojawienie się śladu wstecznego Emacsa, kradnie też jedno z moich okien bufora i nie ma ono q .

Aktualizacja: Backtrace DOES ma q, aby wrócić. Moje pierwotne pytanie wciąż pozostaje: jak poprosić Emacsa, aby nie ukradł jednego z moich podziałów?

Odpowiedz

6

Dodanie do pliku init linii

(push "*Help*" special-display-buffer-names)
powinno spowodować, że kolejne wywołania bufora pomocy pojawią się we własnej ramce (co zwykle nazywane jest "okienkiem") i pozostawić oryginalną ramkę z własną konfiguracją.

Zobacz Special Buffer Frames.

+0

Piękny. Po prostu muszę ponownie powiązać "delete-frame" z czymś bardziej poręcznym niż C-x 5 0 i wszystko będzie gotowe. Nie mogę przegłosować tego pytania i tej odpowiedzi wystarczająco! –

+0

Nawiasem mówiąc, działa to również z "* kompilacją *". –

+0

Ty, panie, jesteś geniuszem. – MDCore

0

Co mogę zrobić, to po prostu przejść do tego zmienionego bufora, C-x k go, a bieżący bufor w tym oknie będzie poprzednim buforem.

Może być możliwe określenie porady dla pomocy, która zapisuje bieżące okno i stan bufora i przywraca go za pomocą prostego klucza. Ale to jest poza moją podstawową elisp wiedzy.

+0

Właśnie zauważyłem, że wyskakuje z komunikatem "naciśnij q, aby przywrócić to okno". Sprawdzanie, czy to działa dla tej sesji edycji. – MDCore

+0

Mam niewyraźne wspomnienie, że domyślne dostosowania w Aquamacach powodują, że pomoc otwiera się w nowej ramce zamiast w oknie w bieżącej ramce. Jeśli tak, możesz po prostu sprawdzić, jak to robią i skopiować swój kod. – Porculus

+0

Wolałbym rozwiązanie, w którym pomoc/śledzenie itp. Nie zepsułoby się z moimi buforami. W tej chwili najlepiej by było wyskakujące okienko! – MDCore

1

Mam nadzieję, że to pomoże:

  • CX aby usunąć bieżące okno

  • Cx zachować tylko bieżące okno

  • możesz użyć windmove przez addi ng następujący wiersz w .emacs:

(windmove-default-keybindings)

Następnie można przesunąć punkt pomiędzy oknami za pomocą S-RightS-leftS-up i S- w dół

Istnieje wiele sposobów na przechowywanie i przywracanie okien emacs, zobacz emacswiki.org on the subject.

+0

Cóż, mam okno podzielone na cztery ćwiartki, pokazujące pliki, które chcę obejrzeć. Usunięcie okien może zepsuć to ustawienie, co jest problemem, z którym borykam się w pierwszej kolejności. – MDCore

+0

Istnieje wiele sposobów na przechowywanie aranżacji okien. Aktualizuję swoją odpowiedź na link do emacswiki.org na ten temat. –

+1

Nie muszę przechowywać ani przywracać aranżacji, wolałbym, żeby emacs nie zepsuł tego, co miałem. Chcę, żeby program robił to, co chcę, a nie na odwrót. – MDCore

3

Można również użyć trybu zwycięzcy. Pojawił się na jakiś czas temu.

Tryb Zwycięzca to globalny tryb pomocniczy. Po aktywacji pozwala na "cofanie" (i "ponawianie") zmian w konfiguracji okna za pomocą poleceń klawiszowych "C-c w lewo" i "C-c w prawo".

W ten sposób można cofnąć wszelkie zmiany w podziały natychmiast po ich wystąpieniu.

Powiązane problemy