開発の文字コードについての質問です。


異なる文字コード(UTF-8とEUC-JP)のプロジェクトをかけもちしており、全ての作業をSSHで開発サーバーにログインしてEmacs + Zsh + Screenで行っております。

現在、開発サーバー上のSSKではなくて、クライアント側のMacから日本語を入力している為、開発環境ごとにターミナルとシェルの文字コードをわざわざ変更しています。

もっとスマートな方法があるかと思うのですが、何かアドバイス下さい。

- TerminalとshellのエンコードはUTF-8で統一して、Emacsの設定だけプロジェクトごとに変更すれば良いのでしょうか?
( できればEmacsの設定も統一したいのですが、ファイルを開くごとにわざわざ指定するのは面倒)
- 全ての開発環境をローカルに統合したいと思いつつ、バーチャルホストの設定が面倒そうなプロジェクトがあり、わざわざ環境2つ作るより、全部サーバーにログインをして開発環境は1つのみでやってしまおう、という”とりあえず”でやっているので、この辺りも改善したいです

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2007/12/23 16:00:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:t_shiono No.1

回答回数256ベストアンサー獲得回数22

ポイント27pt

Mac環境ではなく、ローカルPCはWindowsなので、参考程度です。

私も同様な形で開発用サーバで開発をまとめています。

シェルの方法については、cygwin+rxvtを使っているのですが、起動パラメタで文字コードを指定できるので、それぞれの起動バッチファイルを用意してやっています。

開発方法については、私はシェル経由では開発せずに、SSH経由でsambaのファイル共有でファイルをローカルPCのXEmacsで編集しています。

デフォルトの文字コード(新規ファイル作成時の文字コード)はどちらか一方の指定になってしまいますが、表示、編集に関しては、開発ファイルの文字コードに関係なく実現できています。

デメリットとしては、多少レスポンスが遅いことがあることでしょうか。

id:tomoyuki28jp

ご回答ありがとうございます。

> 起動パラメタで文字コードを指定できるので、それぞれの起動バッチファイルを用意してやっています

この部分に大変興味があるのですが、具体的に何の起動引数をどのように指定してらっしゃるのでしょうか?

2007/12/17 02:43:15
id:ffmpeg No.2

回答回数1202ベストアンサー獲得回数9

ポイント27pt

emacsの設定ができていないと思われます。ターミナルの文字コードがなんであれ、emacsの表示コードとかキーボードコードとかをそのターミナル用に適切に設定していれば、ファイルの文字コードには関係なく、ちゃんと表示されるはずです。

>TerminalとshellのエンコードはUTF-8で統一して、Emacsの設定だけプロジェクトごとに変更すれば良いのでしょうか?

まあそういうことです。それでemacsの文字コード(いくつも組み合わせがあります)を適切にすれば、一個の.emacs設定で全部ちゃんと表示されるはずですが。

あとmac側で使っているターミナルの設定も適切でなければなりませんが。それがだめだともちろん表示できませんよ。

id:tomoyuki28jp

ご回答ありがとうございます。

ご説明が不十分でしたね。

emacsで異なる文字コードの日本語は自動判別で適切に表示されるのですが、

ファイルを新規作成する場合、デフォルトのエンコードがどちらかになってしまうので、

その点、毎回手動で入力するのも面倒だと重い、ご質問させて頂いた次第です。

2007/12/17 02:41:55
id:ffmpeg No.3

回答回数1202ベストアンサー獲得回数9

ポイント26pt

デフォルトの文字コードもリスプで指定できると思いますが。

  • id:tomoyuki28jp
    ターミナル&シェルの文字コードは全てUTF-8で統一して、
    開発で利用するサーバーごとに文字コードが異なるので、開発サーバーごとにEmacsの日本語でデフォルトエンコードを設定して、
    日本語入力はサーバー上のSKKから行えば、問題が解決する気がしてきました。
    一度この方法で設定してみます。結果は追ってご報告させて頂きます。

    (ひとつの開発環境で、異なる文字コードのファイルを編集する場合、デフォルトエンコードの文字コード以外のファイルを
     作成する場合は、皆さん都度文字コードを指定されてらっしゃるのでしょうか?)
  • id:tomoyuki28jp
    > ターミナル&シェルの文字コードは全てUTF-8で統一して、
    > 開発で利用するサーバーごとに文字コードが異なるので、
    > 開発サーバーごとにEmacsの日本語でデフォルトエンコードを設定して、
    > 日本語入力はサーバー上のSKKから行えば、問題が解決する気がしてきました。

    上記の方法で変更してみたのですが、ざっと見たところ、問題がないように思います。
    # emacs側でterminal-codingy-systemまで指定していたので、これを外したら
     日本語がターミナルのエンコーディングに関係なく、正常に表示されるようになりました。

    また様子を見て、おかしい部分などがあればご報告させて頂きますが、
    これで問題がないようです。

    ご回答下さった皆さん、どうもありがとうございます。
    幸せになれました。

    もう少し質問をオープンにしたままでおきますので、
    「こうしたらいいよ!」等あれば、お教え下さい。
  • id:t_shiono
    コメントが遅くなりすいません。

    さきの回答の起動パラメタについてですが、cygwin + rxvtという状況下でしか有効でないのかもしれないのですが、rxvtは起動パラメタ -km で文字コードが指定できます。

    そのため、起動用のバッチファイルを2つ作っておき、

    rxvt.exe (その他パラメタ) -km sjis -e /bin/bash.exe --login -i

    rxvt.exe (その他パラメタ) -km eucj -e /bin/bash.exe --login -i

    などとしておき、Shift-JIS用、EUC-JP用とで起動のバッチファイルを変更しています。


    何かの参考になれば。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません