liloの設定
liloはVine3.2の標準ブートローダ。GRUBと違って一度OSを起動させて設定が必要だけど、シンプルな構成でいまだに人気があるとのこと。インストール直後の設定では画面の有効利用ができないので、vga=を追加する。303は800x600で8bitカラー。変更の後にliloコマンドをやっとかないと設定が反映されないことに注意。
# vi /etc/lilo.conf vga=303 # lilo
screenの使いかた
screenはコンソール画面を分割したり、ログアウト後にプロセスを残ことができる。Screenを導入すれば画面の分割に対応していないプログラム分割できる(異なるプロセスが走ることになるが)。例えば、viはそれ自体が分割に対応しているから、分割後のwindowにはviしか立ち上がらないが、バッファの共有ができる。viをscreenで分割したそれぞれのwindowで実行するとバッファの共有ができない。と言うわけでscreenの話。
導入(Vine Linux 4.2の場合)
まずはインストール、問題無く終了。
# apt-get install screen
運用
まずは起動。以降のwindow分割や移動のキーコンフィグはデフォルトのものを使用。
$ screen
起動の後にメッセージが出て「SpaceかEnterを押せ」とあったので素直にspaceを押すと、screenを起動したシェルとは別の新しいシェルが起動する。Ctrl-a+Sでregion分割(Split)ができる。フォーカスは分割コマンドを実行したwindowに残り移動しないので、Ctrl-a+Tabでwindow間移動(forcus)ができる、分割して新しくできた方のwindowにフォーカス移動する。この後にCtrl-a+cでシェルを新く起動(screen)できる、2分割されたregionの両方のwindowにプロンプトがあらわれる。
+-------------------------+ ---+ --------------+ |[hoge@vine] $ | | | | | | | | | + ... window 1 | | | | | | | | | +-------------------------+ ---+ | | 1 bash | | +-------------------------+ ---+ + ... region |[hoge@vine] $ | | | | | | | | | + ... window 0 | | | | | | | | | +-------------------------+ ---+ | | 0 bash | | +-------------------------+ ---+ --------------+
これを元にして、ヘルプを見ながらscreenを使ってみる。どちらかのwindowでscreenのmanを起動、フォーカスを移動してviを起動。
$ man screen C-a Tab $ vi
Ctrl-a dでこの状態を保存して終了(detach)できる。この状態はマシンの電源を切るまでは保存され、さらに、状態の更新も行われる。試しに新しいwindowをつくり、ここで新しいシェルを起動し、時間のかかる(終わらない)作業をさせてdetachしてみよう。
C-a S C-a Tab C-a c $ perl -le 'while(1){ sleep(1); print scalar localtime; }' C-a d
[screen detached]というメッセージとともにscreenはdetachされる。先ほどの3分割した画面に戻りたい場合はscreen -D -RRである(attach)。
$ screen -D -RR
attachしたら3分割したregionの1つのwindowが邪魔に感じるかもしれない。邪魔に感じたwindowに移動してCtrl-a Xでこのwindowを消して2分割に戻す(remove)ことができる。
C-a X
分割したregionを戻すには下のようにする。
C-a Q
選択してペーストが出来る。矩形選択も出来る。矩形選択の場合はC-a spacceのあとにcかShift+c。それぞれ左側と右側の端を設定できる。
screenrcでcaptionを設定
リージョン分割しなければ最前面のウィンドウにフォーカスがあるんだけど、たまに分割するとフォーカスのあるウィンドウがどれなのかわからなくなってしまうことがある。そんな場合、現在フォーカスがあるウィンドウがわかるとうれしい。そのために、フォーカスのあるウィンドウが表示されているリージョンのcaptionの背景色を緑色にして、フォーカスの無いリージョンのcaptionの背景色を青にしてみる。で、ついでにリージョンの最前面に表示されているのウィンドウのタイトルは色を濃くしてみる。
$ cat ~/.screenrc caption always "%?%F%{= Gk}%:%{= Bk}%? %-w%?%F%{= gk}%:%{= bw}%?%n %t%{-}%+w %=%{= wk} %l %{= wk} %d/%m/%Y %c %{-}"
つまり、captionラインの背景が濃い緑のウィンドウにフォーカスがある。フォーカスのあるウィンドウが表示されているリージョンのcaptionラインの背景色は薄い緑色。それ以外のリージョンのcaptionラインの背景色は薄い青、このリージョンの最前面に表示されているウィンドウはcaptionラインが濃い青色で表示。ついでに、最も右側にはloadと時間を表示。
captionラインに%sで秒まで含めると頻繁にloadとか更新されるようだが、ちかちかしていや。screenrcは画像検索で探したほうが自分好みののscreenrcのサンプルを探すには良いかもしれない。あと、本当はcaptionラインを消したかったんだけどね。分割するたびに1行ずつ消費されてしまうのはもったいないから。でもcaptionラインは消せないので重複する情報を表示するかも知れないhardstatusはoffにしておいたほうが良いかもしれない。
縦分割対応screen
debian lennyのscreenは縦分割に対応しているということ。これは結構うれしゅうございます。etchまでのscreenは未対応だったしね。
コメント
Screenはすごくいいと思う。問題が残るとすれば、縦分割ができないことかもしれない。調べたところ、縦分割に対応したscreenもあるそうな。この縦分割対応のscreenは、メインストリームのブランチのようなものらしい。
日本語出力
非X環境でもVineの場合は全く設定することなく出力できる。昔はKONとかmodprobe vga16fbとか必要だったと記憶しているけど。今でも最小構成でインストールするとmodprobe vga16fbが必要だったと思う。
日本語入力
Ctrl+oで変換モードに移行するために~/.cannaを編集。該当部分をコメントアウト。
$ vi ~/.canna ;; (global-unbind-key-function 'japanese-mode)
かんなで日本語を入力する環境を起動。
$ canuum -uU $ vi tmp $ file tmp tmp: EUC text
日本語の入力にはCtrl+oを入力する。左下に[ あ ]と出て入力が可能。左下に入力した文字がでて、変換もそこで行う。入力した文字の文字コードはEUC-JPになる。終了する時は下のように入力する。これでcanuumを終了できる。
$ exit
全くVineは凄いね。ほとんど設定無しにXの無い環境の下で日本語入力できるんだもの。そういえば、Cannaは変換メソッドで入力メソッドではないという話を聞いたことがあったんだけど、Anthyのインストールの時に特に気になった。