Если я запустил M-x shell
в emacs, чтобы получить терминал, он знает, где автоматически обматывать строки. Например, вывод ls
отформатирован в столбцы, которые соответствуют окну должным образом.
Моя проблема в том, что если я затем разбиваю окно по вертикали на C-x 3
, shell-mode все равно думает, что окно заполняет весь кадр. Результатом является уродливая упаковка выходных команд. Есть ли способ позволить shell-mode знать, что он должен обновлять ширину экрана?
EDIT:
Используя HN ответ ниже, я придумал это исправление:
(defun my-resize-window ()
"Reset the COLUMNS environment variable to the current width of the window."
(interactive)
(let ((proc (get-buffer-process (current-buffer)))
(str (format "export COLUMNS=%s" (window-width))))
(funcall comint-input-sender proc str)))
(defun my-shell-mode-hook ()
(local-set-key "\C-cw" 'my-resize-window))