Tôi hiện đang thiết lập $TERM
để xterm-256color
:
if [[ -n "$EMACS" ]]; then
export TERM=xterm-256color
alias emacs="emacsclient --no-wait"
export EDITOR="emacsclient --no-wait"
export VISUAL="emacsclient"
fi
Tôi đã từng cài đặt nó eterm-color
, nhưng vấn đề là loại thiết bị đầu cuối này không có sẵn trên hầu hết các máy tôi đăng nhập qua SSH.
Mặc định .bashrc
trong Ubuntu kiểm tra xem TERM
biến bắt đầu bằng xterm-
, trong trường hợp đó, nó cố gắng đặt tiêu đề cửa sổ:
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
Vấn đề là \[\e]0;
bit. Nó nên được phân tích cú pháp bởi các trình giả lập thiết bị đầu cuối tương thích xterm, nhưng emacs (thuật ngữ ansi) không làm điều đó. Kết quả là một thiết bị đầu cuối như thế này:
0;user@host: ~user@host:~$
Nó cũng phá vỡ một số ứng dụng bằng cách sử dụng readline
, khi văn bản gõ lớn hơn chiều rộng của thiết bị đầu cuối.
Bởi vì eterm-color
không có sẵn trên một số máy chủ từ xa (và tôi cũng không thể cài đặt nó), việc đặt nó vào giá trị đó sẽ làm rối tung mọi thứ như less
.
Có bất kỳ mẹo nào tôi có thể sử dụng, chẳng hạn như một loại thiết bị đầu cuối khác có hầu hết các bản phân phối hoặc một bản hack làm cho thuật ngữ ansi nhận ra các mã thoát có liên quan và đặt tiêu đề, hoặc chỉ loại bỏ chúng?