19 - 隔てるものと分かつもの

*複数のウィンドウ
==================

Emacs の素敵な機能の一つとして、一つの画面に同時にいくつものウィンドウ
を表示することができます。ここで言う「ウィンドウ」は他のアプリーケーショ
ンで言うところの「ウィンドウ」とは別です。そちらの方は Emacs では、
「フレーム」と呼びます(次の節で説明します)。Emacs のマニュアルには用
語集がありますので、参考にしてください。

「ウィンドウは画面分割で,フレームは二つの Emacs を起動すること」「ほう」「前はメモ帳とかテキストエディットみたいに,一画面だけの Emacs で文章書いてた。でもexwm使うようになってから全部変わった」「君は本当に exwm が好きだな」「うん」


>> カーソルをこの行に持ってきて C-u 0 C-l とタイプして下さい(最後のは
   CONTROL-L ですよ、CONTROL-1 じゃありません)。

>> それから C-x 2 で画面を2つのウィンドウに分割しましょう。どちらのウィ
   ンドウもこのガイドを表示しています。カーソルは上のウィンドウ内です。

「C-u 0 C-l って英語版とか中国語版だと C-l C-l になってるんだよね」「ふむ」「機能は一緒なんだけど何が違うんだろ。ポリシー?」


>> C-M-v とタイプし下のウィンドウをスクロールさせましょう。
   (メタキーがない場合は ESC C-v とタイプします。)

「これ右隣のウィンドウしかスクロールさせないからコマンドは知ってるけど私ほとんど使わない…」「じゃあすぐウィンドウ操作したいときはどうするんだ?」「…マウス使う」「あちゃー」「あちゃーって何!?いいじゃんマウスだって立派な道具なんだから!もしマウス使ったらしぬ病にかかったらowdriver使うよ」


>> C-x o("o" は "other(他方)" を意味します)をタイプし下のウィンド
   ウにカーソルを移して下さい。

>> 下のウィンドウで C-v や M-v を使ってスクロールさせましょう。
   ここに書いてある指示は上のウィンドウで読み進んでください。

>> もう一度 C-x o とタイプし、カーソルを上のウィンドウに戻します。
   カーソルは上のウィンドウの元あった位置に戻ります。

「いま画面 9 分割とか 10 分割くらいして使ってるんだけどさ (7 話参照)」「多いな」「C-x o だと他のウィンドウに移動するのも一苦労だからswitch-window使ってます。exwm だと欠かせないパッケージのひとつ」「なんだこれは」「C-x o するとどのウィンドウに飛ぶか選べるの」「なるほど」


C-x o を使ってウィンドウ間を行ったり来たりできます。各ウィンドウはそれ
自身のカーソル位置を保持していますが、一度には一つのウィンドウだけがカー
ソルを表示します。通常の編集コマンドは皆カーソルがあるウィンドウに対し
て働きます。そのウィンドウを "selected window (選択中のウィンドウ)" と
呼びます。

C-M-v コマンドは、一つのウィンドウで文章を編集中に他のウィンドウを参照
している時に役立ちます。編集中の場所にカーソルを保ったまま、C-M-v で他
のウィンドウを読み進めて行くことができます。

C-M-v はコントロールメタ文字の一例です。メタキーがある場合は、コントロー
ルキーとメタキーを押しながら v をタイプします。コントロールキーとメタ
キーはどちらを先に押しても構いません。どちらもその後にタイプされる文字
に対する修飾キー (modifier key) として働くからです。

メタキーが無い場合、ESC キーを使いますが、この場合は順番が大事です。ま
ず ESC を押してから離して C-v を打ちます。C-ESC v では駄目です。これは
ESC はそれ自体が一つの文字で修飾キーではないからです。

「ウィンドウが多いと一番困るのが『自分がどこにいるのか忘れる』ことなの」「どこにいるか?」「ブラウザ見てたり他のソースコードに目うつりしてると,いまアクティブになってるウィンドウがどれかを忘れてコマンド誤爆したりする」「ああ…」「hiwinはアクティブじゃないウィンドウの色変えてくれるんだけど,Web ブラウザの背景まで変えてくれるわけないから…」「exwm の欠点か…」

「でもね」「ん?」「目うつりするってことは,いま見てるウィンドウをアクティブにすればいいんじゃないかって思うんだ」「そんなことできるのか?」「うん。アイトラッキングでマウス操作できるから,マウスポインタがある位置のウィンドウが常にアクティブになるように Emacs の設定書けば」「それじゃあ,これを導入すればいいじゃないか」「そうそう。君がダイヤでできてたら君を売ったお金で Tobii 買ってさ」

「…私と引き換えか?」「あたりまえじゃん」「…本気か?」「…ふふっ。やだなあ。君なんか一円にもならないよ」「…だろうな」

「でも私にとってはかけがえのない仲間だから。だから何があっても売らない」「そうか…」「だから安心して」「…ああ。ありがとう」

>> 上のウィンドウで C-x 1 とタイプし下のウィンドウを消しましょう

(もし下のウィンドウで C-x 1 とタイプすると上のウィンドウが消えます。
このコマンドは「現在自分がいるウィンドウだけにしなさい」というものだと
思って下さい。)

両方のウィンドウに同じバッファを表示する必要はありません。一方のウィン
ドウで C-x C-f でファイルを開いても他方のウィンドウは変化しません。各
ウィンドウにおいて別々のファイルを開くことができるのです。

>> C-x 4 C-f とタイプし続けて何か自分のファイル名を入力して下さい。
   <Return> で入力を終わらせて下さい。今指定したファイルが下のウィンド
   ウに現れます。カーソルもそっちに移ります。

>> C-x o とタイプし上のウィンドウに戻って下さい。それから C-x 1 で下の
   ウィンドウを消しましょう。

「C-x 4 ってほとんど使ったことなかったけど,こんな機能だったんだ」「今までどうやってウィンドウ分割してたんだ?」「とりあえず scratch バッファの状態で分割しまくって,ひとつひとつ開いてからマウスでグィーっと幅とか高さの調整」「あまり効率よくなさそうだな」「だから C-x 1 すると故郷への郷愁にかられるんじゃん」「そういうことだったのか…」



(c) 2018 jamcha (jamcha.aa@gmail.com). (c) 1985, 1996, 1998, 2001-2018 Free Software Foundation, Inc.

GPL3