Mam emacsa podzielonego poziomo - na górze edytuję kod Perla, na dole jest powłoka. Domyślnie emacs sprawia, że oba okna są równe, ale chciałbym, aby bufor powłoki był mniejszy (może o połowę mniejszy?). Zastanawiałem się, jak mogłem to zrobić.
Za pomocą myszy możesz przeciągać rozmiary okien.
Kliknij w dowolnym miejscu linii trybu, która nie jest „aktywna” w inny sposób (nazwa bufora jest bezpieczna lub dowolny nieużywany obszar po prawej stronie) i możesz przeciągać w górę lub w dół.
Przeciąganie z boku na bok wymaga bardzo precyzyjnego kliknięcia w miejscu, w którym łączą się dwie linie trybu.
C-x -( shrink-window-if-larger-than-buffer
) zmniejszy okno, aby dopasować je do jego zawartości.
C-x +( balance-windows
) sprawi, że okna będą miały taką samą wysokość i szerokość.
C-x ^( enlarge-window
) zwiększa wysokość o 1 linię lub wartość argumentu przedrostka. Ujemny argument zmniejsza okno. np. C-- C-1 C-6 C-x ^zmniejsza się o 16 rzędów, tak jak robi C-u - 1 6 C-x ^.
(Nie ma domyślnego powiązania dla shrink-window
.)
C-x }( enlarge-window-horizontally
) działa podobnie, poziomo.
C-x {( shrink-window-horizontally
) jest również domyślnie powiązany.
Wykonanie jednego z tych poleceń za pomocą repeat
( C-x zaby zainicjować i tylko w zcelu dalszego powtarzania) sprawia, że dość łatwo jest uzyskać dokładny żądany rozmiar.
Jeśli regularnie chcesz to robić z określoną wartością, możesz zarejestrować makro klawiatury, aby to zrobić, lub użyć czegoś podobnego
(global-set-key (kbd "C-c v") (kbd "C-u - 1 6 C-x ^"))
Albo to:
(global-set-key (kbd "C-c v") (kbd "C-x o C-x 2 C-x 0 C-u - 1 C-x o"))
Co jest dość hacky, więc byłoby lepiej:
(defun halve-other-window-height ()
"Expand current window to use half of the other window's lines."
(interactive)
(enlarge-window (/ (window-height (next-window)) 2)))
(global-set-key (kbd "C-c v") 'halve-other-window-height)
Stycznie, uwielbiam również, winner-mode
który pozwala ci wielokrotnie „cofać” wszelkie zmiany w konfiguracjach okien C-c left(niezależnie od tego, czy zmiana dotyczy rozmiaru / liczby / układu okien, czy tylko tego, który bufor jest wyświetlany). C-c rightpowrót do ostatniej konfiguracji. Ustaw to globalnie za pomocą(winner-mode 1)
Umieściłem je w moim
.emacs
:źródło
(global-set-key (kbd "<C-up>") nil)
przed ich ustawieniem, ale lepiej byłobyM-left
zamiast tegospróbujmy użyć dokumentu pomocy emacsa.
C-h a
Następnie wpisz „powiększ” lub „okno”
Znajdziesz to, czego chcesz.
Cieszyć się!
źródło
C-h
nie jest dostępne. Co wtedy?<f1>
która jest inna norma pomocy map wiążące.)C-x o
do okna, którego rozmiar chcesz rozszerzyć. Stamtąd,C-x ^
aby go rozwinąć.źródło
enlarge-window
. Dodatkową wskazówką jest użycie przedrostka arg, aby kontrolować wielkość rozszerzenia.C-x ^
przyjmuje dodatnie i ujemne argumenty liczbowe. W szczególności, jeśli chcesz zmniejszyć okno, w którym obecnie znajduje się kursor, o cztery linie, możesz nacisnąćC-u -4 C-x ^
.źródło
Nie jest to dokładna odpowiedź, której szukasz, ale natknąłem się na to pytanie, szukając funkcjonalności w programie
spacemacs
, więc napiszę swoją odpowiedź tylko ze względu na kompletność.<SPC> + w + .
Opcją jest użycie (działa w waniliowych spacemacach)Otwiera to przejściowe okno, w którym można
[]{}
zmienić rozmiar na poziomie szczegółowości.Nie ma potrzeby używania Cx ani myszy ...
źródło
Mam to samo pytanie. Oto moje rozwiązanie.
Najpierw definiuję nową funkcję:
Na przykład chcę uruchomić schemat w buforze, więc przepisuję go.
A oto definicja, z funkcją zdefiniowaną wcześniej:
Więc teraz, kiedy wpisuję: Mx run-scheme-tutaj, rozmiar bufora zostanie zmieniony!
A oto mój plik konfiguracyjny, mam nadzieję, że to pomoże. https://github.com/judevc/dotfiles/blob/master/.emacs.d/scheme-conf.el
źródło