Jak zmienić rozmiar okien emacs podzielonego ekranu?

13

Jeśli mam Emacsa podzielonego poziomo i na górze edytuję kod elisp, a na dole jestem w powłoce. Domyślnie Emacs sprawia, że ​​dwa okna mają równy rozmiar, ale chciałbym, aby bufor powłoki był mniejszy. Zastanawiałem się, jak to zrobić.

Oryginalne pytanie zadane przez Steve'a na SO: Jak zmienić rozmiar okien emacs podzielonego ekranu?

Luke Shimkus
źródło
4
Czy celowo powielamy pytania z SO? stackoverflow.com/questions/4987760/…
phils
@phils, Nie, nie byłem. Ale zrobię link do postu. Dziękuję za wgląd.
Luke Shimkus
poza tym ten był trochę zbyt łatwy :)
Nsukami _
1
Ojej, świetna edycja @King. Teraz to pytanie naprawdę się różni od tego, które skopiowałeś ...
rsenna
2
sprawia, że ​​myślę, że pytania związane z emacsem na SO powinny zostać przeniesione. Pozwoli to uniknąć (małego)
zgiełku

Odpowiedzi:

20

C-x-( shrink-window-if-larger-than-buffer) w celu zmniejszenia okna w celu dopasowania do jego zawartości.

C-x+( balance-windows), aby okna miały te same wysokości i szerokości.

C-x^( enlarge-window), aby zwiększyć wysokość o 1 linię lub wartość arg prefiksu. Ujemny argument zmniejsza okno. Przykład:C-u - 3 C-x ^

C-x{( shrink-window-horizontally)

C-x}( enlarge-window-horizontally)

Nsukami _
źródło
+1 dla polecenia zmniejszania. Szukałem sposobu, by zmniejszyć się o jedną linię. Co to jest C-u?
Vass
3
@ Vass C-urozpoczyna argument liczbowy dla następującego polecenia. Jeśli chcesz zwiększyć 5 razy, zamiast wpisywać 5 razy to samo polecenie, wpiszC-u 5 C-x ^
Nsukami _
1
Warto również zauważyć, że C-uwartość domyślna to 4, co oznacza, że C-u C-x ^zrobi to samo co C-u 4 C-x ^.
ramnes
7

Poleciłbym również sprawdzenie windresizepaczki od ELPA lub windsizepaczki od MELPA .

Za pomocą windresize, możesz zrobić, M-x windresizea następnie użyć klawiszy strzałek, aby łatwo przenosić obramowania okien, naciskając klawisz ENTER, gdy skończysz.

Lee H.
źródło
3

Możesz użyć C-x^( enlarge-window) w górnym oknie, aby je powiększyć (a tym samym zmniejszyć dolne okno).

Za pomocą myszy możesz także przeciągnąć modelkę z górnego okna, aby zmienić jej rozmiar.

François Févotte
źródło
świetny pomysł, aby zmniejszyć kolejne okno, powiększając okno powyżej!
Vass
0

Zauważ również, że podobnie jak w systemie okienkowym, możesz użyć myszy w trybie myszy xterm, aby przeciągnąć dzielnik okna.

Zauważ, że czasami wydaje się to zależeć nieco od rzeczywistego programu xterm lub programu podobnego do xterm, a iirc w starszym Emacsen nie był wiarygodny w przeszłości o setnej kolumnie, chyba że grałeś trochę ze zmienną środowiskową TERM, ale w moim Emacsie 24.2 .1 działa dobrze z emacs -nw -q (tzn. Całkowicie ignoruje moje .emacs i ręcznie włącza tryb myszy xterm przy pomocy M-x xterm-mouse-mode)

Aktualizacja: FYI dla kompletności Podkreślę, że to działa również dla pionowych dzielników (tj. Kiedy dzielisz z C-x 3)

Mark Aufflick
źródło
0

Kiedyś napisałem prosty tryb pomocniczy (do własnego użytku) interaktywnie resize-frame. Myślę, że to powinno być wygodne.

https://gist.github.com/kuanyui/65a408d393871048771c

M-x resize-frameaby włączyć resize-frametryb pomocniczy:

  1. Naciśnij, arrow keysaby dostosować rozmiar w poziomie / w pionie.
  2. Naciśnij dowolny inny klawisz, aby wyłączyć.
kuanyui
źródło