← XeFM English | 日本語 · crftwr/xefm on GitHub · craftware

全角文字のサポート

English | 日本語

概要

XeFM は全角文字を包括的にサポートするようになりました。特に日本語の全角文字をはじめ、ターミナル出力で複数の表示桁を占める Unicode 文字が対象です。この機能により、各国語の文字を含むファイル名もレイアウトを崩さずに正しく表示されます。

全角文字とは

全角文字とは、ターミナル出力で 1 桁を占める通常の ASCII 文字と違い、2 桁の表示幅を占める Unicode 文字のことです。たとえば次のようなものがあります。

機能

レイアウトの自動補正

XeFM は次の場所で全角文字を自動的に検出して処理します。

正しい桁ぞろえ

ターミナルとの互換性

設定

全角文字の処理は自動です。XeFM は各グリフの表示幅を測って、それに合わせて桁をそろえるので、設定は必要ありません。調整する UNICODE_* 設定項目もありません。

対応している文字の種類

完全に対応

ターミナルに依存

ターミナルとの互換性

推奨ターミナル

次のターミナルは全角文字を十分にサポートしています。

サポートが限られるターミナル

次のターミナルでは全角文字のサポートが限られる場合があります。

トラブルシューティング

表示の問題

問題:日本語を含むファイル名の位置がずれたり、文字化けしたりする。

解決策:

  1. ターミナルの Unicode サポートを確認します
  2. ロケール設定に UTF-8 エンコーディングが含まれているか確認します
  3. ターミナルが Unicode を広くカバーしたフォントを使っているか確認します

ロケール設定の確認:

echo $LANG
echo $LC_ALL
locale

推奨するロケール設定:

export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8

パフォーマンスの問題

問題:Unicode のファイル名が多いディレクトリを表示すると XeFM が遅く感じる。

解決策:

  1. 表示幅の計算はすでに内部でキャッシュされているので、調整できることはありません
  2. 非常に大きなディレクトリは、どうしても描画に時間がかかります。フィルターで表示を絞り込んでください

ターミナルの互換性の問題

問題:ターミナルで全角文字が正しく表示されない。

解決策:

  1. 新しいターミナルアプリケーションに乗り換えます
  2. ターミナルの Unicode/フォント設定を確認します
  3. ターミナルが Unicode を広くカバーしたフォントを使っているか確認します

SSH とリモートセッション

問題:ローカルでは全角文字が正しく表示されるのに、SSH 越しだと正しく表示されない。

解決策:

  1. リモートのシステムに UTF-8 のロケールがインストールされているか確認します
  2. SSH でロケール設定を転送します。
    ssh -o SendEnv=LANG,LC_ALL user@host
    
  3. リモートのシステムでロケールを設定します。
    export LANG=en_US.UTF-8
    export LC_ALL=en_US.UTF-8
    

環境のテスト

簡単なテスト

  1. 全角文字の名前を持つテスト用ディレクトリを作成します。
    mkdir "テスト"
    mkdir "测试"
    mkdir "테스트"
    touch "日本語ファイル.txt"
    touch "中文文件.txt"
    
  2. XeFM でそのディレクトリに移動します
  3. 次の点を確認します。
    • ファイル名が正しく表示される
    • 桁が正しくそろっている
    • カーソル位置が正確である
    • テキストの選択範囲がファイル名全体を覆っている

ロケールのテスト

必要なロケールにシステムが対応しているか確認します。

locale -a | grep -i utf

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

既知の制限

ターミナル固有の問題

パフォーマンスに関する注意

フォントの要件

サポートを受けるには

全角文字のサポートで問題が起きた場合は、次のことを行ってください。

  1. 上のトラブルシューティングの節を確認します
  2. ターミナルとロケールの設定を確認します
  3. Unicode に対応していることがわかっているターミナルで試します
  4. XeFM のログ出力に Unicode 関連の警告がないか確認します

さらにサポートが必要な場合は、問題を報告するときに次の情報を添えてください。