Відповіді:
За допомогою миші ви можете перетягувати розміри вікон навколо.
Клацніть будь-де в рядку режиму, який не є іншим "активним" (ім'я буфера є безпечним або будь-яка невикористана область праворуч), і ви можете перетягнути вгору або вниз.
Перетягування з боку на бік вимагає дуже точного клацання на місці, де поєднуються дві лінії режиму.
C-x -( shrink-window-if-larger-than-buffer
) зменшить вікно відповідно до його вмісту.
C-x +( balance-windows
) зробить вікна однакової висоти та ширини.
C-x ^( enlarge-window
) збільшує висоту на 1 рядок або значення аргументу префікса. Негативний аргумент стискає вікно. наприклад, C-- C-1 C-6 C-x ^зменшується на 16 рядів, як і у випадку C-u - 1 6 C-x ^.
(Немає за замовчуванням прив'язки для shrink-window
.)
C-x }( enlarge-window-horizontally
) робить так само, горизонтально.
C-x {( shrink-window-horizontally
) також пов'язано за замовчуванням.
Виконуючи одну з цих команд з repeat
( C-x zініціювати, і простоz для подальшого повторення), досить легко дістатися до потрібного розміру.
Якщо ви регулярно хочете робити це з певним значенням, ви можете записати макрос клавіатури, щоб це зробити, або використовувати щось подібне
(global-set-key (kbd "C-c v") (kbd "C-u - 1 6 C-x ^"))
Або це:
(global-set-key (kbd "C-c v") (kbd "C-x o C-x 2 C-x 0 C-u - 1 C-x o"))
Що є smidgen hacky, тож було б краще:
(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)
Дотично, мені також подобається, winner-mode
що дозволяє вам неодноразово «скасовувати» будь-які зміни в конфігураціях вікон C-c left(чи є зміна розміром / номером / розташуванням вікон, або лише тим, який буфер відображається). C-c rightповертає вас до останньої конфігурації. Встановіть це глобально за допомогою(winner-mode 1)
Я вкладаю їх у свої .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)
(global-set-key (kbd "<C-up>") nil)
до встановити його, але було б краще використовувати M-left
замість цього
спробуємо використовувати довідковий документ emacs.
C-h a
Потім введіть "збільшити" або "вікно"
Ви знайдете те, що хочете.
Насолоджуйтесь!
C-h
недоступний. Що тоді?
<f1>
яка є інша стандартна довідкова карта.)
C-x o
до вікна, розмір якого потрібно розширити. Звідти C-x ^
її розширити.
enlarge-window
. Додатковим підказом є використання аргументу префікса для контролю величини розширення.
Це не точна відповідь, яку ви шукаєте, але я натрапив на це питання, шукаючи функціональність в spacemacs
, тому напишу свою відповідь лише для повноти.
Варіант - використовувати <SPC> + w + .
(працює у ванільних космосах)
Це відкриває тимчасове вікно, де можна користуватися []{}
розмір на детальному рівні.
Немає потреби в Cx або Mouse ...
У мене те саме питання. Ось моє рішення.
Спочатку я визначаю нову функцію:
(defun buffer-resize ()
(delete-other-windows)
(split-window-vertically (floor (* 0.68 (window-height))))
(other-window 1)
(switch-to-buffer buf)
(other-window 1))
Наприклад, я хочу запустити схему в буфері, тому я її переписав.
Ось визначення з функцією, визначеною раніше:
(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)))
Тож тепер, коли я ввожу: Mx run-схема-ось, розмір буфера змінюється!
І ось мій конфігураційний файл, сподіваючись, що це допоможе. https://github.com/judevc/dotfiles/blob/master/.emacs.d/scheme-conf.el