#navi_header|Emacs| Emacs 20以降は多国語化されています。 しかしその反面、Mule関連の書籍で紹介されている文字コード変換系列のキーバインドやコマンドが軒並み使えなくなってます。 正確にはキーバインドやコマンド名が変更されています。 よく使うものについて簡単に紹介します。 まず「今どの文字コードを使用しているか」の確認です。 モード行右下に "EE-" や "EEE" と表示されている部分(C-x C-b のバッファ一覧ではEEJになったり)が、左から順に - キーボード入力の文字コード - 画面出力の文字コード - ファイル入出力の文字コード を表しています。 "E" なら euc-jp , "S" なら shift_jis を意味します。 各文字コードを変更するには、以下のキーバインドを使います。 C-x RET l set-language-environment C-x RET c universal-coding-system-argument C-x RET C-\ set-input-method C-x RET X set-next-selection-coding-system C-x RET x set-selection-coding-system C-x RET p set-buffer-process-coding-system C-x RET k set-keyboard-coding-system C-x RET t set-terminal-coding-system C-x RET f set-buffer-file-coding-system 通常は最後の3つを使います。この3つはinternational/muleパッケージに属していて、Emacs由来とmule由来が混ざっています。 1.バッファファイルの読み書き(mode-lilne:X+Terminal) 取得:変数 buffer-file-coding-system(emacs由来) 設定:buffer-file-coding-systemを直接変更するか、set-buffer-file-coding-system関数(mule由来)で変更する。 キー:C-x RET b 2.キーボード入力(mode-line:Terminalのみ) 取得: ''関数'' keyboard-coding-system(mule由来) 設定:set-keyboard-coding-system(mule由来) キー:C-x RET k 補足:これはencoded-kbd-mode (minor) が有効になっている必要がある。 3.端末入出力(mode-line:Terminalのみ) 取得: ''関数'' terminal-coding-system(emacs由来) 設定:set-terminal-coding-system(mule由来) キー:C-x RET t 補足:set-terminal-coding-system内では結局、set-terminal-coding-system-internal関数(emacs由来)を起動している。 整理すると、X上でのファイルとバッファの文字コードを指定したい場合は C-x RET f set-buffer-file-coding-system を使います。 ターミナルから使っていて、キーボード入力と画面出力の文字コードを設定したい場合は C-x RET k set-keyboard-coding-system C-x RET t set-terminal-coding-system を使います。 文字コード周りはGoogleで調べると色々先達の苦労を知ることができますので、詳しくはそちら。 #navi_footer|Emacs|