gpt4 book ai didi

Emacs shell-mode 拆分窗口后显示太宽

转载 作者:行者123 更新时间:2023-12-04 00:36:23 24 4
gpt4 key购买 nike

如果我运行 M-x shell在 emacs 中获取终端,它知道在哪里自动换行。例如,ls 的输出被格式化为适合窗口的列。

我的问题是如果我用 C-x 3 垂直分割窗口, shell-mode 仍然认为窗口填满了整个框架。结果是命令输出的丑陋包装。有没有办法让 shell-mode 知道它必须更新屏幕宽度?

编辑:

使用下面 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))

最佳答案

这是@Christopher Monsanto 的回答中略微改进的调整大小功能。由于 nil 过程,原来的会导致问题。 (例如 exit 在 shell 模式下)

(defun comint-fix-window-size ()
"Change process window size."
(when (derived-mode-p 'comint-mode)
(let ((process (get-buffer-process (current-buffer))))
(unless (eq nil process)
(set-process-window-size process (window-height) (window-width))))))

关于Emacs shell-mode 拆分窗口后显示太宽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7987494/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com