Skip to content
2008/05/25 / highmt

utf8 cygwin on meadow

utf8 cygwinでは、標準入出力がutf8になる。cmd.exeで見ると文字化けしないので気づきにくが、ファイルにリダイレクトしてみるとわかる。
そんなわけで、meadowからcygwinにさわるときは注意が必要。
 
diredのM-!からのsh起動では、utf8 cygwinでは何も気にしなくてすむ。これはとても便利。
ファイルパスのSJIS文字列に\やら`やらが含まれていても問題ない。
cmd /c start * とかふつうにできる。
 
shell-modeでは、入出力がutf8になる。ので、set-buffer-process-coding-systemで変更する必要がある。
このとき、outはutf-8-dos、inはutf-8-unixとしないと、bashへの入力によけいな^Mが渡ってしまう。
cygwinコマンドの入出力はutf8で行われる一方で、WindowsのコマンドとはSJISでやりとりを行うため、都度set-buffer-process-coding-systemする必要がある。
回避方法としては、cocotを使用する方法がある。ただし、この場合、fakecygptyが必要になる。
 
grepで、lgrepを使用する場合も、入出力がutf8になる。次のような感じで。
(setq grep-command "lgrep -Ku -Os -n ")
(setq grep-find-command ‘("find . -type f -exec lgrep -Ku -Os -n  {} NUL \\;" . 39))
ちなみに、全然関係ないが、grepの中断は M-x kill-grep でできる。いろんなところをあたってみても載ってなかったのだが、FAQなんだろうか。みんなどうしてるんだろう。
 

——–
2009/01/12 カテゴリ変更

2009/01/24 utf8 cygwin + lgrep on Meadow で修正。

 
広告
%d人のブロガーが「いいね」をつけました。