新発見
id:naoyaさんの2005/12/23の記事「GNU screen いろいろまとめ。」を見て、おおこれは面白そうだなと。んで急遽ローカル環境にcygwin+screen+zshをインスコ。
なんだかよく分からないエラーにぶち当たりcygwin再インストールの憂き目に会いつつもどうにかこうにかセットアップ完了。
.screenrcに設定してみた内容はこんな感じ。
bind 'U' eval "encoding utf8" "stuff 'export LANG=ja_JP.UTF-8\012'" bind 'E' eval "encoding euc" "stuff 'export LANG=ja_JP.EUC-JP\012'" bind 'J' eval "encoding sjis" "stuff 'export LANG=ja_JP.SJIS\012'" escape ^z^z defencoding sjis #defutf8 on vbell off defhstatus I^En:^EtI shell -$SHELL startup_message off autodetach on hardstatus ignore "%w | %h" hardstatus alwayslastline "[%02c] %`%-w%{=b mw}%n %t%{-}%+w" defscrollback 3000
screenをいくつも立ち上げ、windowに名前をつけ、各々がsshで別サーバに接続。window分割しながら、tabでバッファを移動する。シビレます。
ただ、いくつか問題が。
cygwinインストールしたローカル環境(Win)の文字コードはsjisで、sshでつなぐ先のサーバの文字コードがUTF-8だったりした時に、viで編集しようとすると激しく文字化けします。ちょっと厄介。
流れはこんな感じなのですが、
[1]cygwin(ローカル:sjis) -> [2]screen(ローカル:sjis) -> [3]ssh(リモート:utf8)
といった具合になっています。
ちなみにローカルの.vimrcの中身は
set encoding=japan set fileencodings=iso-2002-jp,utf-8,euc-jp,cp932 set number highlight WastedSpace ctermbg=6 match WastedSpace /\t\|\s\+$\|!!/
こんな感じ。
今は、.screenrcのdefencodingをsjisにしているので、[3]で文字化けするのは仕方ないかな*1と思うのですが、[2]で化けるのは何故なんだろう?
*1:リモートの.vimrcも修正する必要あるよなぁ