의 도움으로xterm 제목 표시줄에 명령 표시gnome-terminal
Mutt가 실행 중인 터미널을 확인할 수 있도록 실행 중인 명령을 반영하도록 제목을 변경했습니다 . 하지만 내가 정말로 원하는 것은 잡종 지위를 타이틀로 높이는 것입니다. 내 거 .muttrc
:
set status_format = "%n new | %M in %f [%v]."
gnome-terminal
전체 상태를 내 제목 에 적용하고 싶습니다 . 내 환경에서 이 작업을 수행할 수 있는 방법이 있나요 .bashrc
? 아니면 다른 방법으로?
vim에서 이를 수행하는 방법에 대한 토론이 있습니다.http://vim.wikia.com/wiki/Automatically_set_screen_title하지만... 그건 vim이에요.
답변1
mutt는 이미 이것을 할 수 있습니다.
만 무텍
ts_enabled Type: boolean Default: no Controls whether mutt tries to set the terminal status line and icon name. Most terminal emulators emulate the status line in the window title. ts_status_format Type: string Default: “Mutt with %?m?%m messages&no messages?%?n? [%n NEW]?” Controls the format of the terminal status line (or window title), provided that “$ts_enabled” has been set. This string is identical in formatting to the one used by “$status_format”.
불행하게도 mutt를 종료해도 제목은 변경되지 않습니다.
답변2
헤더를 설정할 수 있는 외부 스크립트를 실행하도록 Status_format을 만들 수 있습니다. 이것은 몇 년 전에 mutt 메일링 리스트에 설명된 바 있습니다.아밋 라몬, 파이프 기호 사용 |
, 즉파일에 기록하다처럼:
파이프("|")로 끝나는 모든 형식 문자열은 공백을 구분 기호로 사용하여 문자열의 첫 번째 단어를 통해 확장되고 파이프됩니다. 반환된 문자열은 표시에 사용됩니다. 반환된 문자열이 %로 끝나는 경우 포맷터를 다시 거치게 됩니다. 이를 통해 필터는 %Expandos를 포함하는 대체 형식 문자열을 생성할 수 있습니다.
Ramon의 예는 다음 문자열입니다.
set status_format="mutt_status \"$my_status\" \"$my_title\"|"
그의 예에서는 mutt_status
첫 번째 인수를 표준 출력에 반영하고(상태 표시줄에 표시됨) 두 번째 인수가 장치에 기록되고 /dev/tty
(xterm 제목 표시줄에 표시됨) 간단한 쉘 스크립트입니다.
#!/bin/sh
# Demonstration of format string pipes. Sets the xterm title to the 2nd argument,
# and returns the first unchanged.
#
# this sets the title
printf "\033]0;$2\007" > /dev/tty
echo "$1"
# end of script
Ramon의 의견에 따르면 $my_status
sum $my_title
은 그가 구성에서 정의한 변수입니다(그러나 Mutt 문서를 가리키는 것 외에는 자세한 내용은 제공하지 않습니다).status_format
.
귀하의 예를 들어,
set status_format = "mutt_status \"%n new | %M in %f [%v].\" \"%n new | %M in %f [%v].\"|"
동일한 정보가 상태 줄과 헤더 줄로 전송됩니다.
이것을 검토하면서 나는 눈치 채지 못했습니다 ts_enabled
. ts_status_format
@토마스 웨인브레너설명하다. 불과 몇 달 전에 mutt에 추가되었습니다.2015년 8월:
1.5.24 (2015-08-31):
+ terminal status-line (TS) support, a.k.a. xterm title. see the
following variables: $ts_enabled, $ts_icon_format, $ts_status_format
tsl
이 함수는 terminfo(5)에 따라 하나의 인수가 필요한 terminfo 함수를 사용합니다 .
to_status_line tsl ts move to status line,
column #1
그러나 xterm의 제목 문자열은 인수를 허용하지 않습니다. 이러한 이유로 (토론 목적으로) ncurses에서는 거의 무시됩니다.xterm+sl
에 처음 추가된 항목1999년. "xterm" terminfo에서는 찾을 수 없습니다. 대신 확장 기능은 그 이후로 TS
권장되는 대안이었습니다.2012년.
xterm 외에도,다시 덮다mutt 종료 이후의 타이틀은 잘못된 이스케이프 시퀀스에 대한 우려로 인해 수년 동안 널리 지원되지 않았습니다. xterm은 대부분의 소프트웨어 패키지에서 기본적으로 비활성화되어 있는 쿼리/응답을 제공합니다. 또한 제목 문자열을 활성화하는 또 다른 제어 시퀀스를 제공합니다.쌓인. GNU 화면은 이 기능을 사용합니다(추가2009년 11월) 대부분의 다른 응용 프로그램과 마찬가지로 tsl
"/"의 (잘못) 사용은 fsl
일반 사용자에게 영향을 미치기에는 너무 뿌리깊습니다.
문제는 다음과 같습니다.LQ에서 다시 게시됨2015년 초에 흥미롭게도 이것은 더 오래된 똥개를 보여주었습니다.발표하다:
Mutt 1.5.15는 2007년 4월 6일에 출시되었습니다. 이 버전은 버전 1.6의 기능 동결에 대응하여 여러 가지 새롭고 오래된 기능 패치를 적용합니다. 여기에는 내장된 SMTP, 스트리밍 메일 지원 개선, xterm 헤더 업데이트, 문자 세트 개선, GPG PKA 지원 등이 포함됩니다. 보다변경 로그자세한 내용을 확인하세요.
하지만,저것을 참조하는 것 같다수리하다:
2007-03-14 14:45 -0700 Brendan Cully <[email protected]> (35b8facdbdda)
* contrib/Makefile.am, contrib/mutt_xtitle, muttlib.c: Add demo
mutt_xtitle script
나는 이미 알고 있다이전 토론(그리고 mutt 자체에 병합되지 않기 때문에 무시됩니다). 일부 패키저에서는 이 패치를 적용했을 수도 있지만 최종적으로 병합되었을 때 기능 이름이 변경되었습니다(일부는 10년 이상 전).입력하다바보.