テキスト端末でのEmacsの斜体(rxvt-unicode)


15

私はurxvtで実行しているEmacsを使用しています。端末でサポートされているにもかかわらず、Emacsでイタリック体を使用することはできません。

現在の設定は次のとおりです。

  • 設定していない$TERMので、それがデフォルトですrxvt-unicode-256color
  • ~/.XdefaultsURxvt.font: xft:Inconsolata:size=15端末フォントとして定義します。
  • 実行中のecho '\e[3mitalics\e[m'実際のシェル収率でitalics、端末でイタリックので、DOの基本的な作業。

「斜体」顔をカスタマイズする場合、それは私が選択するかどうかを任意の違いはありませんitalicobliquenormal、またはromanの値としてSlant、属性も私は設定していない場合はそれをしないSlantすべての属性を。また、これをURxvt.italicFontmy で明示的に定義することと組み合わせて試しまし~/.Xdefaultsたが、役に立ちませんでした。

太字は正常に機能し、斜体はまったく機能しません。何か案は?


ターミナルでイタリック体を使用することがリモートでも可能であることに気づきませんでした。ありがとう。
-wfaulk

回答:


10

要するに、現在のバージョンのEmacs(23.2でチェック)では使用できませんが、可能な回避策については以下を参照してください。

より長いストーリー:イタリックのサポートは、(イタリックを入力する)および(イタリックを終了する)機能(termcap互換性とも呼ばれます)としてterminfoデータベースにエンコードされ ます。端末がそれらをサポートしていることを確認できます:sitmritmZHZR

infocmp $TERM | egrep '(sitm|ritm)'

これらが存在しない場合、rxvt-unicode-256color端末記述は端末のイタリック機能に関する情報をncursesライブラリに提供しないため、追加する必要があります。そうしないと、TTYアプリケーションはイタリックを使用できません。

ただし、端末ディスプレイを管理する関数turn_on_face(Emacsソースのsrc/term.c1919行から2012行のファイル )は、斜体のサポートを提供しません。顔の太字/薄暗い/点滅/下線属性をチェックします。実際、にエンコードされた「イタリック」属性はありませんstruct face

実際、私のEmacs(Ubuntu 11.04 nattyのバージョン23.1)は、TTYで下線が引かれているように斜体の面(X11で正しく表示される)を示しています。(つまり、下線を気にしない場合は、端末のterminfo記述を変更して、Enter / Exit下線の代わりにEnter / Exitイタリックのエスケープシーケンスを使用し、イタリックにすることができます。)


この答えは良さそうに見えますが、私が持っている唯一のLinuxインストールはwin7ホストのゲストとしてであるため、現時点ではテストできません。その結果、これをテストするのに苦労しています。具体的には、ASCIIエスケープコードを挿入できないようです。他の誰かが、エスケープシーケンスで私が間違っている可能性があることを確認または説明するためにテストできる場合、賞金を授与します。
vschum

@vschum terminfoデータベースを変更しようとしている場合、この回答が役立ちます。あなたがそれらを説明しない限り、私たちはあなたの困難を助けることはできません。それらについて質問することができます。
ジル 'SO-悪であるのをやめる'

@Gilles実際、それはこの答えに関係しています。イタリックが機能するかどうかをテストするためにシーケンスを挿入する方法がわかりません。ESC [3 mと入力すると、端末に何も表示されません。
-vschum

2
@vschumを押しESCてもエスケープ文字は挿入されません。を押しCtrl+V ESCて挿入できますが、ほとんど必要ありません。たとえば、エスケープ文字は\Eterminfoソースで表されます。ターミナルで(bash / ksh / zshを使用)、試してくださいecho $'\e[3mhello\e[0m'
ジル 'SO-悪であるのをやめる'

4

他の人が古くなっているので、私はこの答えを追加しています。Emacs 24.5は、ターミナルで斜体を正しく表示します。

ここに画像の説明を入力してください

これは、ターミナルで実行されているemacs 24.5 emacs -nwです()。ターミナルとuxvrt私のセットアップ.Xdefaultsは次のとおりです。

URxvt*termName: rxvt-unicode-256color
URxvt.font: xft:DejaVu Sans Mono:size=9

3

この機能を提供するターミナルエミュレータでイタリックを利用できないemacsについて:これは、2012年6月10日にChong Yidongによって修正されたemacsバグ#9652です。

ただし、修正はemacsのリリースされたバージョンではなく、たとえばemacs.naquadah.orgの emacs-snapshotパッケージにあります。


この情報は....おそらく、期限が切れている
サミュエル・エドウィン・ワード
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.