の助けを借りてxterm タイトルバーにコマンドを表示する実行中のコマンドを反映するようにタイトルを変更しましたgnome-terminal
。これにより、どのターミナル Mutt がコマンドを実行しているかがわかります。しかし、私が本当に望んでいるのは、Mutt のステータスをタイトルまで押し上げることです。私は次のようにしています.muttrc
:
set status_format = "%n new | %M in %f [%v]."
そして、そのステータス全体を自分のタイトルにプッシュしたいのですがgnome-terminal
、 でそれを実行する方法はありますか.bashrc
? または別の方法はありますか?
vim内でこれをどうやって行うかについての議論がここにありますhttp://vim.wikia.com/wiki/自動設定スクリーンタイトルしかし...それはvimです。
答え1
mutt はすでにこれを実行できます。
男 muttrc
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メーリングリストで説明されました。アミット・ラモンパイプ記号を使用して|
、文書化されたとして:
縦棒 (“|”) で終わるフォーマット文字列は展開され、スペースを区切り文字として使用して文字列の最初の単語にパイプされます。返された文字列は表示に使用されます。返された文字列が % で終わる場合、フォーマッタにもう一度渡されます。これにより、フィルターは % 展開を含む置換フォーマット文字列を生成できます。
Ramon の例は次の文字列でした:
set status_format="mutt_status \"$my_status\" \"$my_title\"|"
この例では、mutt_status
最初のパラメータを標準出力にエコーし(ステータス ラインに表示)、2 番目のパラメータをデバイスに書き込む/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
ラモンのメモには、$my_status
と は$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
この機能は terminfo 機能を使用しますtsl
が、terminfo(5) によれば、次のパラメータが必要です。
to_status_line tsl ts move to status line,
column #1
しかし、xtermのタイトル文字列はパラメータを受け入れません。このため、ncursesでは大部分が無視されますが、(議論のために)xterm+sl
エントリが最初に追加されたのは1999. "xterm" terminfoでは使用されていません。むしろ、この拡張機能はTS
、2012。
xtermを除いて、復元mutt 終了時のタイトルは、不正なエスケープシーケンスに関する懸念から、ここ数年間広くサポートされていません。xterm は、ほとんどのパッケージでデフォルトで無効になっているクエリ/応答を提供します。また、タイトル文字列を積み重ねられたGNU screenはこの機能を使用します(追加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年以上)組み込まれたときに名前が変更されました。の中へ雑種。