Nếu tôi chạy M-x shell
trong các thiết bị đầu cuối để nhận thiết bị đầu cuối, nó biết vị trí tự động ngắt dòng. Ví dụ, đầu ra của ls
được định dạng thành các cột phù hợp với cửa sổ chính xác.Hiển thị chế độ hiển thị vỏ Emacs quá rộng sau khi tách cửa sổ
Vấn đề của tôi là nếu sau đó tôi chia cửa sổ theo chiều dọc với C-x 3
, chế độ vỏ vẫn cho rằng cửa sổ sẽ lấp đầy toàn bộ khung. Kết quả là gói kết xuất lệnh xấu xí. Có cách nào để cho chế độ shell biết nó có phải cập nhật chiều rộng màn hình không?
EDIT:
Sử dụng câu trả lời HN của dưới đây, tôi đã đưa ra sửa chữa này:
(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))
Đây là một sửa chữa thực sự hữu ích. Vui lòng gửi dưới dạng báo cáo lỗi! –
Cảm ơn các chức năng hữu ích, tuy nhiên nó sẽ gây ra vấn đề khi quá trình là nil, vì vậy tôi đã thêm một kiểm tra nil trước khi thiết lập kích thước cửa sổ quy trình - [xem câu trả lời của tôi] (http://stackoverflow.com/a/20015336/554279) –