Jak zmienić rozmiar okna Emacs z podzielonym ekranem?
Mam Emacsa podzielonego poziomo - na górze edytuję Kod Perla, na dole jest powłoka. Domyślnie emacs sprawia, że dwa okna są równe, ale chciałbym, aby bufor powłoki był mniejszy(może o połowę mniejszy?). Zastanawiałem się, jak Mogę to zrobić.
6 answers
Za pomocą myszki możesz przeciągać rozmiary okien.
Kliknij w dowolnym miejscu na linii mode, która nie jest inaczej "aktywna" (nazwa bufora jest Bezpieczna lub dowolny niewykorzystany obszar po prawej stronie), a możesz przeciągnąć 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 pasowało do jego zawartości.
C-x + (balance-windows
) zrobi okna te same wysokości i szerokości.
C-x ^ (enlarge-window
) zwiększa wysokość o 1 linię lub wartość ARG przedrostka. Ujemna arg kurczy okno. np. C-- C-1 C-6 C-x ^ zmniejsza się o 16 rzędów, podobnie jak C-u - 1 6 C-x ^.
(nie ma domyślnego powiązania dla shrink-window
.)
C-x } (enlarge-window-horizontally
) czy podobnie, poziomo.
C-x { (shrink-window-horizontally
) jest również domyślnie związana.
Wykonując jedno z tych poleceń z repeat
(C-x z aby zainicjować, i po prostu z aby kontynuować powtarzanie) sprawia, że dość łatwo dostać się do dokładnego rozmiaru, który chcesz.
Jeśli regularnie chcesz to robić z określoną wartością, możesz nagrać makro klawiatury, aby to zrobić, lub użyć czegoś takiego(global-set-key (kbd "C-c v") (kbd "C-u - 1 6 C-x ^"))
Lub to:(global-set-key (kbd "C-c v") (kbd "C-x o C-x 2 C-x 0 C-u - 1 C-x o"))
Który jest a smidgen hacky, więc tak będzie 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)
Bardzo mi się podoba winner-mode
, który pozwala na wielokrotne "cofanie" wszelkich zmian w konfiguracjach okien za pomocą C-c left (czy zmiana to Rozmiar/liczba / rozmieszczenie okien, czy tylko jaki bufor zostanie wyświetlony). C-c right zwraca najnowszą konfigurację. Ustaw go globalnie za pomocą (winner-mode 1)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-10-02 00:18:02
Wrzucam je do mojego .emacs
:
(global-set-key (kbd "<C-up>") 'shrink-window)
(global-set-key (kbd "<C-down>") 'enlarge-window)
(global-set-key (kbd "<C-left>") 'shrink-window-horizontally)
(global-set-key (kbd "<C-right>") 'enlarge-window-horizontally)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-03 13:40:17
Spróbujmy użyć dokumentu pomocy Emacsa.
C-h a
Następnie wpisz "powiększ " lub"okno"
Znajdziesz to, czego chcesz.
Enjoy!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-21 05:31:47
C-x o
do okna, którego rozmiar chcesz rozszerzyć. Stamtąd, C-x ^
, aby ją rozszerzyć.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-02-14 00:02:49
C-x ^
przyjmuje dodatnie i ujemne argumenty liczbowe. W szczególności, jeśli chcesz zmniejszyć okno, w którym znajduje się kursor, o cztery linie, możesz nacisnąć C-u -4 C-x ^
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-03 08:30:00
Mam to samo pytanie. Oto moje rozwiązanie.
Najpierw zdefiniuję nową funkcję:
(defun buffer-resize ()
(delete-other-windows)
(split-window-vertically (floor (* 0.68 (window-height))))
(other-window 1)
(switch-to-buffer buf)
(other-window 1))
Na przykład, chcę uruchomić schemat w buforze, więc przepisuję go ponownie.
A oto definicja, z funkcją zdefiniowaną wcześniej:
(defun run-scheme-here ()
"Run a new scheme process at the directory of the current buffer.
If a process is already running, switch to its buffer."
(interactive)
(let* ((proc (format "scheme: %s" default-directory))
(buf (format "*%s*" proc)))
(unless (comint-check-proc buf)
(let ((cmd (split-string scheme-program-name)))
(set-buffer
(apply 'make-comint-in-buffer proc buf (car cmd) nil (cdr cmd)))
(inferior-scheme-mode)
(buffer-resize)))
(pop-to-buffer buf)))
Więc teraz, kiedy wpisuję: m-x run-scheme-tutaj, bufor jest zmieniany!
A oto mój plik konfiguracyjny, mam nadzieję, że to pomoże. https://github.com/judevc/dotfiles/blob/master/.emacs.d/scheme-conf.el