geanyで特定のエンコーディングでファイルを開くことはできますか?

geanyで特定のエンコーディングでファイルを開くことはできますか?

私のシステムロケールは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-7iconv -f UTF-8 -t ISO-8859-7 c.txt --output=c2.txt

  • Geanyの設定を変更するには、新しいファイルのエンコーディングを適用し、[基本設定 - ファイル]タブでGreek ISO-8859-7「デフォルトのエンコード(Unicodeではなく既存のファイル)」を適用します。

~/.config/geany/geany.confpref_editor_default_new_encoding=UTF-8 #changed to ISO-8859-7PS:ファイルを表示または編集し、行と行を見つけて設定を直接確認/変更することもできます。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>保存できます。これにより、ファイルが新しいエンコードとして保存されます。

関連情報