Xterm
xterm は X Window System の標準のターミナルエミュレータです。様々なカスタマイズができ、多数の役に立つ機能と、少数のあまり役に立たない機能を備えています。
インストール
基本設定
リソースファイルの設定
ターミナルエミュレータとして使いやすさを向上させるオプションを X リソースファイルで設定することができます。オプションのリストは man xterm を見て下さい。
TERM 環境変数
xterm が TERM 変数を適切に設定できるようにしてください。~/.bashrc や ~/.bash_profile などのファイルから TERM 変数を設定してはいけません。ターミナルが自ら適切な TERM を設定することで、適切な terminfo ファイルが使われるようになります。利用できる terminfo ファイルは xterm と xterm-256color です。
TERM を明示的に設定しなかった場合、xterm は $TERM を xterm と設定します。以下のコマンドを xterm の中から実行することで確認できます:
$ echo $TERM $ tset -q
TERM が明示的に設定されていない場合、vim など、プログラムによっては何かキーが押されるまでカラースキームが正しく表示されないことがあります。この問題は以下のようにリソースを設定することで直せます:
xterm*termName: xterm-256color
UTF-8
ロケール が UTF-8 に設定されていることを確認してください。UTF-8 を使用しない場合は、設定によって xterm がロケールに厳密に従うように強制する必要がある場合があります。
XTerm.vt100.locale: true
UTF-8 を強制するには、次のように設定します。
XTerm.vt100.locale: false XTerm.vt100.utf8: true
XTerm は eo.UTF-8 を含むすべての UTF-8 ロケールをサポートしているわけではないためこの設定は、多くの場合必要になります。
'Alt' キーを他のターミナルエミュレータと同じように動作させる
例えば Alt+f を押すと æ が挿入されます。Alt の代わりに ^[ を送るようにするには、(gnome-terminal や konsole のように) 以下を設定します。
XTerm.vt100.metaSendsEscape: true
バックスペースキーの修正
Arch Linux では、xterm は backspace が押されると ^H キーを送信します。これは Emacs の Ctrl+H キーコンビネーションを壊してしまいます。
回避策として、リソースに以下を追加して下さい。
XTerm.vt100.backarrowKey: false XTerm.ttyModes: erase ^?
キーバインド
xterm は端末を操作するための一連の "アクション" を定義しています。例えば、 copy-selection(), hard-reset(), scroll-back() などです。これらのアクションは translations リソースを使用してマウスとキーの組み合わせにマッピングできます。例えば、ウィンドウを最大化/復元するために Ctrl+M と Ctrl+R をマップすることができます。
XTerm.vt100.translations: #override \n\
Ctrl <Key>M: maximize() \n\
Ctrl <Key>R: restore()
#override は、これらのキー割り当てが既存のキー割り当てを上書きすることを示します (カスタムキー割り当てでは、ほとんどの場合、これが必要です。) 各バインドはエスケープシーケンス n で区切らなければなりません。もし、リテラルな改行を挿入したい場合は、それもエスケープする必要があります(ac となります。)動作の完全なリストと多くの例は xterm(1) の KEY BINDINGS セクションを参照してください。
keymap() アクションを参照してください。スクロール
xterm ウィンドウの一番下に新しい行が書き込まれると、一番上の古い行は消えます。マウスホイールや Shift+PageUp または Shift+PageDown のキーコンビネーション、あるいはスクロールバーを使うことで画面から消えた行をスクロールして見ることができます。
デフォルトでは、1024行が保存されます。保存する行数は saveLines リソースで変更できます:
XTerm.vt100.saveLines: 4096
スクロールの設定を変更する他の X リソースとしては jumpScroll (デフォルトでは true) や、multiScroll と fastScroll があります (どちらもデフォルトでは false) 別のスクリーン の中をスクロールするには、alternateScroll を true に設定してください。
スクロールバー
スクロールバーはデフォルトでは表示されません。これを有効にしたり、リソース設定を通じて外観を調整することができます ("scrollbar" の大文字と小文字の違いに注意してください)
XTerm.vt100.scrollBar: true XTerm.vt100.scrollbar.width: 8
他のスクロールバーリソースについては、xterm(1) § Scrollbar Resources を参照してください。
スクロールバーの使い方は普段使用するようなスクロールバーとは異なっています。
- 下にスクロール:
- スクロールバーを左マウスボタンでクリック
- スクロールバーの つまみ (サム) の下部を中マウスボタンでクリック
- 上にスクロール:
- スクロールバーを右マウスボタンでクリック
- スクロールバーの つまみ (サム) の上部を中マウスボタンでクリック
- 上下どちらかに移動:
- 中マウスボタンで つまみ をクリックして "クリックアンドドラッグ"
メニュー
Arch Linux の xterm ではツールバーやメニューバーは無効にしてコンパイルされています。メニューは xterm ウィンドウの中で Ctrl+MouseButton を押すことでポップアップして表示されます。メニューアイテムで設定できることは、大抵コマンドラインオプションやリソースの設定でも可能です。
xterm*geometry: 80x32 などと設定しているのが原因です。この設定だと xterm のメインウィンドウが80列32行で起動するのではなく、メニューウィンドウが80ピクセルx32ピクセルになります。次のように置き換えてください: xterm*VT100.geometry: 80x32。メニューオプションは以下で説明します。
メインのオプションメニュー
Ctrl + 左マウス
Secure Keyboardを設定すると xterm ウィンドウだけがキーストロークを受け取れるようになり、他のアプリケーションがキーストロークを傍受することはできなくなります。実行すると画面の色が反転します。色が反転しない場合、Secure Keyboard モードが有効になっていません。このオプションの制限については xterm の man ページの "SECURITY" セクションを読んで下さい。
Allow SendEventsは他のプロセスが xterm ウィンドウに打鍵やマウスのイベントを送信できるようにします。セキュリティ上のリスクがあるため、何の効果があるのかよくわからないときは有効にしないでください。
Log to File– ログファイルの名前はXterm.log.hostname.yyyy.mm.dd.hh.mm.ss.XXXXXXになります。このファイルには印字された出力とマウスの移動が全て記録されます。ログ出力はセキュリティリスクになることもあります。
- 6つの
Send *** Signalメニューアイテムはキーボードが動作しなくなったような場合を除いて、基本的に使うことはありません。HUP,TERM,KILLは xterm ウィンドウを終了します。KILLはできるだけ使わないでください。
Quitメニューアイテムは xterm ウィンドウを終了します。HUPシグナルを送信するのと同じです。キーボードでCtrl+dを押すか、またはexitを入力することでも xterm は終了できます。
VT オプションメニュー
Ctrl + 中マウス
Select to Clipboard– 通常、選択されたテキストは PRIMARY に保存され、中マウスボタンを使うかShift+Insertで貼り付けることができます。このオプションをオンにすると、選択されたテキストは CLIPBOARD を使うようになり、xterm ウィンドウで選択したテキストをCtrl+vで GUI アプリケーションに貼り付けることができます。対応する XTerm リソースはselectToClipboardです。
Show Alternate Screen– vim や less などのターミナルアプリケーションを使うときに、新しい画面が開きます。メインの VT ウィンドウは非表示になりますが、メモリ上に残ります。このメニューオプションを有効にすると、メインウィンドウを見ることができるようになりますが、メインウィンドウでコマンドを実行することはできません。メインウィンドウからテキストを選択・コピーすることは可能です。
Show Alternate Screen を使用するよりも多くの機能が提供されます。bash シェルでは、Ctrl+z を押すとプロセスが中断され、fg コマンドを発行するとプロセスが再開されます。Show Tek WindowとSwitch to Tek Mode– Tektronix 4014 は CAD やプロットアプリケーションで使われていた1970年代のグラフィックスターミナルです。plotutils に含まれているコマンドラインプログラムgraphやアプリケーション gnuplot が xterm の Tek エミュレーションを使うことができます。ただし、普通の人はデータを図に記すのに近代的なディスプレイオプションを使うでしょう。下の #Tek 4014 デモンストレーション を見て下さい。
VT フォントメニュー
Ctrl + 右マウス
- XLFD フォントを使用する場合、最初の7つのメニューアイテムが xterm ウィンドウで使われるフォントフェイスやフォントサイズを変更します。Xft フォントを使う場合、フォントサイズだけが変わります。フォントフェイスは変わりません。
Unreadable と Tiny が便利です。 例えば、長時間のコンパイル処理で、処理が完了したことだけを確認したいような場合に使用します。- XLFD フォントの名前を使うときに、
Selectionで PRIMARY (または CLIPBOARD) セレクションに保存されたフォントの名前に切り替えられます。
Tek オプションメニュー
Tek Window から Ctrl + 中マウス
最初のセクションのオプションは Tek ウィンドウのフォントサイズを変えられます。2番目のセットのオプションは Tek エミュレーションウィンドウとメインウィンドウ、VT ウィンドウのフォーカスを移動したり、Tek ウィンドウを終了・非表示にするのに使います。
コピーアンドペースト
まず、xterm(または他のアプリケーション)でマウスを使ってテキストをハイライトすると、コピーするテキストが選択され、マウスの中ボタンをクリックすると、ハイライトされたテキストがペーストされます。また、キーの組み合わせ Shift+Insert でも貼り付けられますが、これは xterm 内に限られます。
PRIMARY または CLIPBOARD
デフォルトでは、X で動作する xterm などのアプリケーションは、選択されたテキストを PRIMARY セレクションと呼ばれるバッファにコピーします。PRIMARY セレクションは短命です。他のテキストが選択されるとすぐに新しい PRIMARY セレクションによってテキストは置き換えられます。アプリケーションによっては (Shift+Insert ではなく) 中マウスで PRIMARY セレクションを貼り付けることができますが、PRIMARY を全く貼り付けることができないアプリケーションも存在します。
テキストをコピーするときは CLIPBOARD セレクションと呼ばれるバッファも使われます。CLIPBOARD のテキストは長命で、ユーザーによって上書きされるまで保存されます。Ctrl+c, Ctrl+x, Ctrl+v を使ってテキストのコピー・切り取り・貼り付けをするアプリケーションはこの CLIPBOARD を使っています。
他のセレクションを選択するとすぐコピーしたテキストが消失してしまう PRIMARY セレクションの儚さが鬱陶しいと感じられるかもしれません。Xterm では #VT オプションメニュー の Select to Clipboard や selectToClipboard リソースを使うことで PRIMARY と CLIPBOARD の使用を切り替えることができます。
PRIMARY と CLIPBOARD
上記の設定では PRIMARY または CLIPBOARD どちらかを使うことを選択できますが、両方使いたい場合、.Xresources に以下のように記述する必要があります:
XTerm*VT100.translations: #override <Btn1Up>: select-end(PRIMARY, CLIPBOARD, CUT_BUFFER0)
テキストの選択
初めて使う人は、マウスの左ボタンで クリック&ドラッグ することでテキストを選択できます。 ダブルクリックすると、単語が選択されます。単語は、連続したアルファベット文字とアンダースコア、または基本正規表現(BRE)[A-Za-z_] で定義されます。 トリプルクリックは行を選択し、タブ 文字は通常複数の スペース 文字としてコピーされます。
もう一つのテキスト選択の方法は、特に複数の全画面をコピーするときに便利です。
- 選択したい部分の始点で左クリックします。
- 選択範囲の終端が見える位置までスクロールする。
- 選択範囲の終点で右クリック。
ハイライトされた選択範囲は、右クリックによって拡大・縮小することができます。
xterm ウィンドウ内の任意の場所で左クリックすると、選択したテキストを消去することができます。
カラー
xtermのデフォルトは、白の 背景色 に黒の 前景色 です。 前景色と背景色を逆にするには、リソースを設定することで逆転できます。
XTerm.vt100.reverseVideo: true
あるいは、リソースを使用して、前景色と背景色 (および最初の 16 個の端子色) を直接変更することもできます。
XTerm.vt100.foreground: white XTerm.vt100.background: black XTerm.vt100.color0: rgb:28/28/28 ! ... XTerm.vt100.color15: rgb:e4/e4/e4
/usr/share/emacs/*/etc/rgb.txt または /usr/share/vim/*/rgb.txt で色名のリストとその 10 進数の RGB 値を確認することができます。 色は 16 進数の RGB 値で rgb:RR/GG/BB というフォーマットで指定することもできますし、古い構文で推奨されていない #RRGGBB という構文で指定することもできます。PapayaWhip の色は rgb:ff/ef/d5 と同じで、これは #ffefd5 と同じです。色の構文についてのより完全な説明は xorg-docs の man(7)X を参照してください。カラースキームについては Terminal Colour Scheme Screenshots のフォーラムスレッドに様々な設定例が載っています。
*foreground: rgb:b2/b2/b2 *background: rgb:08/08/08上記の例では、これらのリソースを使用するすべてのXlib アプリケーション (xclock、xfontsel など) の前景色と背景色の値を設定しています。これは、統一された配色を実現するための優れた簡単な方法です。
フォント
デフォルトフォント
Xterm のデフォルトフォントは