わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

俺流・シェルとEmacsの使用方法

私の環境と使い方をまとめてみました.

Emacs使いの方々はどうされているのだろう?

http://d.hatena.ne.jp/hrkt0115311/20091112/1257979533

お星さま3つ,ありがとうございます.うちはですね,基本的にWindowsで,コマンド実行にはCygwinを,そのための端末ソフト(ターミナルエミュレータ)にはck*1を愛用してきました.一つのウィンドウで,上の図の箱に相当する各仮想端末を渡り歩いています.表示の文字コードは,ShiftJISでもEUC-JPでもUTF8でも大丈夫です.IMEによる日本語入力をしない,と割り切っています.
日本語入力は,テキストエディタでやっています.Windows上のテキストエディタは,Cygwinとは全く独立で,Meadowです.独立と言ってもソフトウェアレベルの話であり,ファイルの単位では連携させています.すなわち,シェルのリダイレクションで書き込んだファイルをMeadowで開くこともありますし,逆に,日本語の入力が欲しいときにはMeadowでファイルを作って,コマンドの中で `echo ファイル名` とすることもあります.
LinuxGUIを使うことも,ないことはないのですが,基本的にはsshでログインし,GNU screenの仮想端末に入っています.
具体的なシェル使用の手順ですが,まずランチャから,ckを起動します.Cygwinで,zshを立ち上げるようにしていて,ほどなくプロンプトが出ます.そこでコマンドを実行している間はそれでいいですし,別途,端末がほしくなったら,C-S-n (CtrlとShiftを押しながらN)とします.そこもそこで別にコマンドを実行できます.
ckとしての端末の移動は,上の図の緑色の線です.各移動のキーバインドは,C-tabです.Ctrlキーを押しながら,Tabキーを繰り返し押せば,ぴょんぴょん移動します.
sshコマンドを実行して,Linuxマシンにリモートログインしたら,まず「screen -xR」と実行します.「-xR」という引数のおかげで,screen端末がすでにあればそこに入るし,なければ開設してくれます.
開設直後のscreenが管理する仮想端末は一つだけですが,C-p cで増やすことができます.
ところで,GNU screenのデフォルトのコマンド文字はC-aですが,私は ~/.screenrc に「escape ^p^p」と書いています.コマンド文字がC-pとなり,さらに,C-p C-pが,通常のC-pと同じ意味になります.
screen端末の中での移動は,オレンジ色の線です.移動・巡回するには,C-p SPCです.実はここも,Ctrlキーを押しながら,P,スペース,P,スペース,…でぴょろぴょろ移ってくれます.
Linux環境で,Emacsは,この端末の中で「emacs -nw」として常駐させています.
図の中で「[top]」と書いているのは,シェルを起動してtopというコマンドを実行している,そういう仮想端末です.ロードの高いプロセスや,メモリ使用量を知ることができます.
Emacsの中で,シェルは,立ち上げません.同じマシンの他のscreen仮想端末を使えばいいじゃないか,というスタイルです.makeやplatexなどを実行するとき,編集中のバッファのエラー行に飛べないのは,承知の上です.
Linuxのscreen環境から抜けるには,C-p S-d S-d,すなわちCtrl-Pのあと,Shiftを押しながら,Dを2回です.
ウィンドウサイズは,ckのウィンドウを変更することで,瞬時に変わります.とくに,一時的に最大にして,Emacsでの編集をしやすくしています.screen仮想端末も,Emacsの文字領域も,追随してくれるのはありがたいです.
ターミナルの色は,ckの設定ファイル,具体的には ~/.ck.config.js で定義されています.LinuxのscreenのEmacsも,色つきです.