Gần đây tôi đã đọc Running Shells trong Emacs và dành một chút thời gian để điều chỉnh lời nhắc Zsh phức tạp của tôi để hoạt động với các khả năng hạn chế của M-x shell
và M-x ansi-term
.
Sau nỗ lực này, giờ đây tôi cuối cùng cũng có thể sử dụng Zsh từ bên trong Emacs, tuy nhiên có một sự phiền toái nhỏ gọn với M-x ansi-term
. Tôi luôn luôn thấy văn bản đi lạc 4m
trước lời nhắc.
Như bạn có thể thấy, hiện tượng này dường như độc lập với chủ đề nhanh chóng thực tế. Nó cũng xuất hiện với bất kỳ lời nhắc tích hợp nào, ngay cả những lời nhắc đơn giản không sử dụng bất kỳ ký tự điều khiển ưa thích nào. Như một vấn đề thực tế, nó thậm chí xảy ra với dấu nhắc mặc định, tức là nếu tôi khởi động Zsh mà không có tôi .zshrc
.
Chà, nó thực sự chỉ là một phiền toái nhỏ, và tôi sẽ không thực sự bận tâm nếu tôi không thể thoát khỏi nó. M-x shell
Dù sao tôi cũng thích nhất , nơi mà vấn đề này không xảy ra.
Nhưng nó thực sự làm tôi khó chịu vì tôi không thể tìm ra nguyên nhân của vấn đề này, mặc dù tôi thực sự đã cố gắng gỡ lỗi nó. Tuy nhiên, tôi phải nói rằng sự hiểu biết của tôi về thiết bị đầu cuối khá hạn chế, vì vậy tôi có thể đã bỏ lỡ điều rất rõ ràng.
Tôi đang dùng OS X 10.10. My Emacs là 25.0.50, được xây dựng trực tiếp từ thân cây với Homebrew và không có cờ đặc biệt. Zsh là 5.0.5, như được bao gồm với Yosemite, nhưng sự cố cũng xảy ra với 5.0.7 được cài đặt qua Homebrew.
Bất cứ ai có thể làm sáng tỏ về vấn đề này?
system-user-terminfo
không thay đổi gì cả. Thay đổi đã $TERM
khắc phục vấn đề, nhưng đó không thể là giải pháp, phải không? Xét cho cùng, về cơ bản, đó là một lời nói dối: ansi-term
không phải là xterm và chắc chắn không hỗ trợ 256 màu.
\x1b[37;4m
chỉ định màu trắng với 37 và văn bản được gạch chân bằng 4. Tôi không thể tái tạo vấn đề của bạn. Zsh của tôi là 5.0.7 và 'echo $ TATE ' trong thuật ngữ ansi cho tôi màu eterm , emacs của tôi là 24.4.1 . Tôi cũng đã kiểm tra phiên bản mặc định 'env HOME = ~ / tmp / emacstest emacs -Q' và tôi không thể thấy bất kỳ vấn đề nào.
emacs -Q
và không có cấu hình Zsh nào cả.