web-dev-qa-db-ja.com

ハイライトされたテキストの周りにアクセントのあるエッジを表示する、このターミナルウィンドウのグラフィカルトリックの名前は何ですか?

オンラインのターミナルウィンドウのスクリーンショットがいくつかあり、ステータスバーまたは強調表示された線の周りに薄い強調表示されたエッジが表示されています。次の例では、1、5、および389行目の周りの薄い灰色の縁取りに注意してください。

enter image description here

この例では、Emacsモードライン(ステータスバー)の周りの黄色の縁取りに注意してください。

enter image description here

この効果の名前は何ですか?OS X10.10のiTerm2で可能ですか?

更新

いくつかの調査を行い、EmacsCustomizeインターフェイステーマコードを掘り下げた後、エッジを定義するコードを見つけました。 Emacsの用語では、それは:boxと呼ばれ、その属性の1つはline-widthです。テーマで定義されているボックスラインの例を次に示します。

'(modeline ((t (:background "Gray10" :foreground "SteelBlue" :box (:line-width 1 :style none) :width condensed))))

:boxのドキュメントは、Emacsのマニュアルの 顔の属性のドキュメント にありますが、その仕組みやサポートされている端末については触れられていません。

これはEmacsのGUIバージョンの特別な機能かもしれないと思い始めました( Aquamacs など)が、同様のボックスを備えたUbuntuUnityターミナルウィンドウのように見えるスクリーンショットを見たことがあると確信していますハイライト。

19
Steve HHH

表示されている効果は、ターミナルウィンドウのグラフィカルなトリックではなく、Xで実行されているgui emacsです。emacsにそれを描画させるためのカスタマイズを正しく識別しますが、これらはemacsがXで実行されている場合にのみレンダリングされます。

説明のために、モードラインのテーマは次のとおりです。

 '(mode-line ((t (:background "gray10" :foreground "green" :box (:line-width -1 :style released-button)))))

emacsをグラフィカルに実行すると(例:emacs)、次のようにレンダリングされます。

enter image description here

そしてemacsがターミナルで実行されているとき(例:emacs -nw)次のようにレンダリングされます:

enter image description here

ボックスによって定義された隆起した外観を与えるピクセル境界効果は、GUIモードでのみレンダリングされます。ターミナルモードでは、フラットな効果です。

同様に、投稿した写真はgui emacsからのものであり、その効果はターミナルエミュレーターのプロパティではなく、そのレンダリングに関与するターミナルエミュレーターでもありません。

3
casey

私がこれを理解する方法 ウィキペディアページ (私はこの特定の問題について間違っていると証明されたいのですが):

  • スタイル下線が存在し、カーソルに限定されません。彼らはそれをコード4と呼んでいます。
  • スタイルFramedが存在し、各文字の周囲に4つの境界線があるため、コード51と呼ばれます。

注:これでは、文字間の境界線のない文字列のフレーミングは有効になりません。最初のスクリーンショットのLisaのように。

したがって、私の答え(2015年半ば現在)は残ります:

(現在)ターミナルエミュレーターは、文字の周囲にオプションの色付きの境界線を希望どおりに表示できません。

ここで、ANSIコードが適用されたように見えることがわかります。

ターミナルエミュレータに基づかないgvimやxemacsなどのGuiアプリケーションは、現在のターミナルエミュレータの制限に拘束されません。スクリーンショットはGUIアプリケーションのものだと思います。

繰り返しになりますが、このようなフォーマットを自分のドットファイルのカスタマイズに喜んで組み込むので、これについて間違っていることが証明されたいと思います。

3
Alex Stragies