私のシステムロケールはru_RU.KOI8-Rで、geanyにこのエンコーディングですべての新しいファイルを生成させたいと思います。設定で「デフォルトエンコーディング(新しいファイル)」を「キリル文字(KOI8-R)」に設定しましたが、新しいファイルにはうまく機能します。しかし、キリル文字のないファイルを開くと、geanyはそのファイルがUnicode形式だと思います。
geanyにKOI8-Rのすべてのファイルを開くように指示する方法はありますか(非ASCII文字がなくても)、またはコードページの上半分の文字をすべてのソースファイルに入れる唯一の方法ですか?
答え1
私はこの問題を解決しようとしましたが、Geanyが強制的にエンコードを使用できる唯一の方法は、ファイルの先頭にその行を置くことです。ファイルにUTF-8文字が含まれている場合、geanyはこのロケールを使用します。
何よりも次のことを試しました。コンピュータでうまく機能している場合は、自分で試してみることもできます。
私のシステムのロケールをギリシャ語に切り替えました
ISO-8859-7
(以前はen_US.UTF-8
)。まず、次のように新しいローカルをインストールする必要がありました。dpkg-reconfigure locales
UTF-8
次のコマンドを使用して、目的のロケール(私の場合)からテストファイルを変換します。ISO-8859-7
iconv -f UTF-8 -t ISO-8859-7 c.txt --output=c2.txt
Geanyの設定を変更するには、新しいファイルのエンコーディングを適用し、[基本設定 - ファイル]タブで
Greek ISO-8859-7
「デフォルトのエンコード(Unicodeではなく既存のファイル)」を適用します。
~/.config/geany/geany.conf
pref_editor_default_new_encoding=UTF-8 #changed to ISO-8859-7
PS:ファイルを表示または編集し、行と行を見つけて設定を直接確認/変更することもできます。pref_editor_default_open_encoding=None #changed to ISO-8859-7
- 次に、実際に動作する唯一の方法は、ファイルの先頭に次の行を挿入することです。
# geany_encoding=ISO-8859-7 #
解決策は次のとおりです。Geany オンラインマニュアル - Infile コーディング標準セクション。
すべてのファイルを1つずつ開き、上記の行を追加しない回避策として、次のものを使用できます。
echo -e "# geany_encoding=ISO-8859-7 #\n$(cat c.txt)" >c.txt
次のように、すべてのファイルをすばやく「geany-convert」するループを作成することもできます。
for file in "$(find . -type f -name "*.txt");do echo -e "# geany_encoding=ISO-8859-7 #\n$(cat $file)" >$file;done
上記のアイデアが問題解決に役立つことを願っています。
また、ファイルを開くときにエンコードを強制することがGeanyの将来の計画の一部であることを確認し、Geany開発者に連絡することもできます。
PS:いつでもGeanyでファイルを開いてタップしてreload as <your encoding>
保存できます。これにより、ファイルが新しいエンコードとして保存されます。