全角文字のサポート
English | 日本語
概要
XeFM は全角文字を包括的にサポートするようになりました。特に日本語の全角文字をはじめ、ターミナル出力で複数の表示桁を占める Unicode 文字が対象です。この機能により、各国語の文字を含むファイル名もレイアウトを崩さずに正しく表示されます。
全角文字とは
全角文字とは、ターミナル出力で 1 桁を占める通常の ASCII 文字と違い、2 桁の表示幅を占める Unicode 文字のことです。たとえば次のようなものがあります。
- 日本語の文字:あいうえお、日本語、ひらがな、カタカナ
- 中国語の文字:中文、汉字、繁體字
- 韓国語の文字:한글、한국어
- 全角記号:!@#$%
- 一部の絵文字:📁📂📄(ターミナルの対応状況によります)
機能
レイアウトの自動補正
XeFM は次の場所で全角文字を自動的に検出して処理します。
- メインペインのファイル名とディレクトリ名
- 内蔵テキストビューアーのテキスト内容
- ファイルやディレクトリを作成するダイアログの入力欄
- 検索結果やそのほかのテキスト表示
正しい桁ぞろえ
- ファイルリストは、文字の種類にかかわらず桁が正しくそろったまま表示されます
- 幅の異なる文字が混在していても、拡張子の列は正しくそろいます
- 全角文字を含むファイル名でも、カーソル位置は正確です
ターミナルとの互換性
- ターミナルの Unicode 対応状況を自動的に検出します
- Unicode への対応が限られたターミナルでも、無理なく代替表示に切り替わります
設定
全角文字の処理は自動です。XeFM は各グリフの表示幅を測って、それに合わせて桁をそろえるので、設定は必要ありません。調整する UNICODE_* 設定項目もありません。
対応している文字の種類
完全に対応
- 東アジアの文字(中国語、日本語、韓国語)
- 全角の句読点と記号
- 結合文字(アクセント、ダイアクリティカルマーク)
- ゼロ幅文字
ターミナルに依存
- 絵文字とピクトグラフ(対応状況はターミナルによって異なります)
- 複雑な Unicode シーケンス(新しいターミナルが必要な場合があります)
ターミナルとの互換性
推奨ターミナル
次のターミナルは全角文字を十分にサポートしています。
- macOS:iTerm2、Terminal.app
- Linux:GNOME Terminal、Konsole、Alacritty、Kitty
- Windows:Windows Terminal、ConEmu
- クロスプラットフォーム:Alacritty、Kitty
サポートが限られるターミナル
次のターミナルでは全角文字のサポートが限られる場合があります。
- 基本的なターミナル:xterm(古いバージョン)
- ロケールのサポートが限られたシステムへの SSH セッション
- 一部の IDE に組み込まれたターミナル
トラブルシューティング
表示の問題
問題:日本語を含むファイル名の位置がずれたり、文字化けしたりする。
解決策:
- ターミナルの Unicode サポートを確認します
- ロケール設定に UTF-8 エンコーディングが含まれているか確認します
- ターミナルが Unicode を広くカバーしたフォントを使っているか確認します
ロケール設定の確認:
echo $LANG
echo $LC_ALL
locale
推奨するロケール設定:
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
パフォーマンスの問題
問題:Unicode のファイル名が多いディレクトリを表示すると XeFM が遅く感じる。
解決策:
- 表示幅の計算はすでに内部でキャッシュされているので、調整できることはありません
- 非常に大きなディレクトリは、どうしても描画に時間がかかります。フィルターで表示を絞り込んでください
ターミナルの互換性の問題
問題:ターミナルで全角文字が正しく表示されない。
解決策:
- 新しいターミナルアプリケーションに乗り換えます
- ターミナルの Unicode/フォント設定を確認します
- ターミナルが Unicode を広くカバーしたフォントを使っているか確認します
SSH とリモートセッション
問題:ローカルでは全角文字が正しく表示されるのに、SSH 越しだと正しく表示されない。
解決策:
- リモートのシステムに UTF-8 のロケールがインストールされているか確認します
- SSH でロケール設定を転送します。
ssh -o SendEnv=LANG,LC_ALL user@host
- リモートのシステムでロケールを設定します。
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
環境のテスト
簡単なテスト
- 全角文字の名前を持つテスト用ディレクトリを作成します。
mkdir "テスト"
mkdir "测试"
mkdir "테스트"
touch "日本語ファイル.txt"
touch "中文文件.txt"
- XeFM でそのディレクトリに移動します
- 次の点を確認します。
- ファイル名が正しく表示される
- 桁が正しくそろっている
- カーソル位置が正確である
- テキストの選択範囲がファイル名全体を覆っている
ロケールのテスト
必要なロケールにシステムが対応しているか確認します。
UTF-8 のロケールがない場合は、インストールします。
# Ubuntu/Debian
sudo apt-get install locales
sudo locale-gen en_US.UTF-8
# CentOS/RHEL
sudo yum install glibc-locale-source glibc-langpack-en
既知の制限
ターミナル固有の問題
- ターミナルによっては、一部の Unicode 文字に対応していないことがあります
- 絵文字の対応状況はターミナルによって大きく異なります
- 複雑な Unicode シーケンスは、環境によっては正しく描画されないことがあります
パフォーマンスに関する注意
- Unicode のファイル名が多い非常に大きなディレクトリは、表示に時間がかかることがあります
- 表示幅のキャッシュは効果がありますが、そのぶんメモリを使います
フォントの要件
- ターミナルは、必要な Unicode 文字を含むフォントを使う必要があります
- 正しく桁をそろえるには等幅フォントが最適です
- フォントによっては、全角文字の幅が一定でないことがあります
サポートを受けるには
全角文字のサポートで問題が起きた場合は、次のことを行ってください。
- 上のトラブルシューティングの節を確認します
- ターミナルとロケールの設定を確認します
- Unicode に対応していることがわかっているターミナルで試します
- XeFM のログ出力に Unicode 関連の警告がないか確認します
さらにサポートが必要な場合は、問題を報告するときに次の情報を添えてください。
- ターミナルアプリケーションとそのバージョン
- オペレーティングシステムとそのバージョン
- ロケール設定(
locale コマンドの出力)
- 問題が起きるファイル名の例
- 表示の問題であればスクリーンショット