É possível abrir o arquivo em uma codificação específica no geany?

3

A minha localidade do sistema é ru_RU.KOI8-R e quero que geany crie todos os novos arquivos nesta codificação. Em suas configurações eu definir "codificação padrão (novos arquivos)" para "cirílico (KOI8-R)" e funciona para novos arquivos. Mas quando abro qualquer arquivo sem caracteres cirílicos, o geany acha que está em Unicode.

Existe alguma maneira de dizer ao geany para abrir todos os arquivos no KOI8-R (mesmo se não houver caracteres não ASCII dentro deles) ou a única maneira é colocar qualquer caractere da metade superior da página de código em todos os arquivos de origem? / p>     

por Eddy_Em 27.01.2017 / 07:06

1 resposta

3

Eu tentei trabalhar com esse problema, mas parece que a única maneira de o Geany forçar o uso de uma codificação é ter uma linha correspondente no início do arquivo. Se o arquivo contiver caracteres UTF-8, o geany usará esta localidade.

Entre outras coisas, eu tentei o seguinte abaixo. Você também pode experimentar, caso isso funcione melhor em sua máquina.

  • Para alternar o localle do meu sistema para o grego ISO-8859-7 (era en_US.UTF-8 antes). Eu tive que primeiro instalar o novo local usando dpkg-reconfigure locales

  • Para converter um arquivo de teste de UTF-8 para o código de idioma desejado ( ISO-8859-7 no meu caso) usando o comando iconv -f UTF-8 -t ISO-8859-7 c.txt --output=c2.txt

  • Para alterar as preferências de geany, na guia Preferences-Files, que aplica Greek ISO-8859-7 de codificação para novos arquivos e também para "Codificação padrão (arquivos não-Unicode existentes)"

PS: A configuração também pode ser verificada / alterada diretamente pelo arquivo de aparência / edição ~/.config/geany/geany.conf e procure as linhas pref_editor_default_new_encoding=UTF-8 #changed to ISO-8859-7 e linha pref_editor_default_open_encoding=None #changed to ISO-8859-7

  • Então, a única coisa que realmente funcionou é inserir no início do arquivo a linha:
    # geany_encoding=ISO-8859-7 #

Esta solução é descrita no manual on-line do Geany - Seção de especificação de codificação do Infile.

Como solução alternativa para evitar a abertura de todos os seus arquivos, um a um, e acrescentar a linha acima, você pode usar:

echo -e "# geany_encoding=ISO-8859-7 #\n$(cat c.txt)" >c.txt

Você também pode criar um loop para "converter" rapidamente todos os seus arquivos; algo assim:

for file in "$(find . -type f -name "*.txt");do echo -e "# geany_encoding=ISO-8859-7 #\n$(cat $file)" >$file;done

Espero que as ideias acima o ajudem a resolver o seu problema.

Você também pode verificar e perguntar a geany devs se forçar a codificação durante a abertura de um arquivo está nos planos futuros do Geany.

PS: Você sempre pode abrir o arquivo como está em Geany, pressionar reload as <your encoding> e salvar. Isso deve salvar o arquivo na nova codificação.

    
por 27.01.2017 / 12:52

Tags