環境構築
30分プログラム、その130。ちょっと趣向を変えて、環境を整備するのに30分使ってみる。
シェルの関数や、EmacsLispをちょっと書いたから許して。
screen
まずは、screenのステートライン(一番下のやつ)にカレントディレクリを表示するようにしてみる。
今までは、http://d.hatena.ne.jp/webdoraku/20070418/p1のように最後に実行したコマンドを表示してた。でも、lsとか表示されてもたいして嬉しくない。
そこで、カレントディレクトリを表示するように変更してみる。
function preexec(){ emulate -L zsh local -a cmd cmd=(${(s. .)${argv[1]}}) # sshなどは、ホスト名をタイトルに if [ $cmd[1] = 'ssh' ] || [ $cmd[1] = 'ftp' ] || [ $cmd[1] = 'sftp' ] then screen -X title $cmd[2] fi } function chpwd(){ # $HOMEを~に置き変える screen -X title $(pwd | sed 's#'$HOME'#~#') }
emacsclient
次に、前々から気になっていたEmacsclientを使ってみる。これを使えば、別ウインドウで起動しているEmacsでファイルを編集できる。
EmacsWiki: Emacs Clientの設定をパクる。
.screenrc
screen -t emacs 1 emacs screen -t zsh zshc"
.emacs
(add-hook 'after-init-hook 'server-start) (add-hook 'server-done-hook (lambda () (shell-command "screen -r -X select `cat /tmp/emacsclient-caller`")))