wake-up-neo.com

Wie ändere ich die Größe von Emacs-Fenstern mit geteiltem Bildschirm?

Ich habe Emacs horizontal geteilt - oben bearbeite ich Perl-Code, unten ist die Shell. Standardmäßig werden die beiden Fenster von Emacs gleich groß, aber ich möchte, dass der Shell-Puffer kleiner wird (vielleicht halb so groß?). Ich habe mich gefragt, wie ich das machen könnte.

164
Steve

Mit der Maus können Sie die Fenstergrößen verschieben.

Klicken Sie auf eine beliebige Stelle in der Moduszeile, die ansonsten nicht "aktiv" ist (der Puffername ist sicher oder ein nicht verwendeter Bereich auf der rechten Seite), und Sie können nach oben oder unten ziehen.

Das Ziehen von Seite zu Seite erfordert ein sehr präzises Klicken auf die Stelle, an der sich die beiden Modenlinien verbinden.

C-x- (shrink-window-if-larger-than-buffer) verkleinert ein Fenster, um es an den Inhalt anzupassen.

C-x+ (balance-windows) macht Fenster gleich hoch und gleich breit.

C-x^ (enlarge-window) erhöht die Höhe um 1 Zeile oder den Präfix-Arg-Wert. Ein negatives Argument verkleinert das Fenster. z.B. C--C-1C-6C-x^ schrumpft wie gewohnt um 16 Zeilen C-u-16C-x^.

(Es gibt keine Standardbindung für shrink-window.)

C-x} (enlarge-window-horizontally) ebenfalls horizontal.
C-x{ (shrink-window-horizontally) ist ebenfalls standardmäßig gebunden.

Folgen Sie einem dieser Befehle mit repeat (C-xz zu initiieren, und gerade z für die fortgesetzte Wiederholung) macht es ziemlich einfach, genau die gewünschte Größe zu erhalten.

Wenn Sie dies regelmäßig mit einem bestimmten Wert tun möchten, können Sie ein Tastaturmakro aufzeichnen oder so etwas verwenden
(global-set-key (kbd "C-c v") (kbd "C-u - 1 6 C-x ^"))

Oder dieses:
(global-set-key (kbd "C-c v") (kbd "C-x o C-x 2 C-x 0 C-u - 1 C-x o"))

Welches ist ein smidgen Hacky, so wäre dies besser:

(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)

Tangential liebe ich auch winner-mode, mit dem Sie Änderungen an Fensterkonfigurationen wiederholt rückgängig machen können C-cleft (ob die Änderung die Größe/Anzahl/Anordnung der Fenster ist oder nur welcher Puffer angezeigt wird). C-cright kehrt zur letzten Konfiguration zurück. Setze es global mit (winner-mode 1)

282
phils

Ich habe diese in mein .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)
32
wilbeibi

versuchen wir, das Hilfedokument von Emacs zu verwenden.

C-ha

Dann tippe "vergrössern" oder "Fenster"

Sie werden finden, was Sie wollen.

Genießen!

14
maoyang

C-x o zu dem Fenster, dessen Größe Sie erweitern möchten. Von dort, C-x ^, um es zu erweitern.

6
vpit3833

C-x ^ Akzeptiert positive nd negative numerische Argumente. Insbesondere wenn Sie das Fenster, in dem sich Ihr Cursor gerade befindet, um vier Zeilen verkleinern möchten, können Sie C-u -4 C-x ^ Drücken.

6
justinpc

Ich habe die gleiche Frage. Hier ist meine Lösung.
Zuerst definiere ich eine neue Funktion:

(defun buffer-resize ()
  (delete-other-windows)
  (split-window-vertically (floor (* 0.68 (window-height))))
  (other-window 1)
  (switch-to-buffer buf)
  (other-window 1))

Zum Beispiel möchte ich das Schema in einem Puffer ausführen, also schreibe ich es neu.
Und hier ist die Definition mit der zuvor definierten Funktion:

(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)))

Wenn ich also jetzt Folgendes eingebe: M-x run-scheme-here, wird die Größe des Puffers geändert!
Und hier ist meine Konfigurationsdatei, in der Hoffnung, dass dies helfen wird. https://github.com/judevc/dotfiles/blob/master/.emacs.d/scheme-conf.el

0
user1001237