2012-10-26 12 views
30

Meine Bash-Installation auf Cygwin behandelt Akzentbuchstaben nicht richtig. Ich habe versucht,Wie bekomme ich akzentuierte Buchstaben, um tatsächlich auf bash zu arbeiten?

set input-meta on # to accept 8-bit characters 
set output-meta on # to show 8-bit characters 
set convert-meta on # to show it as character, not the octal representation 

meine Eingabe rc Zugabe, aber das ganz funktioniert noch nicht. Ja, wenn ich

$ echo ù 

geben, bevor ich es Eingabetaste drücken wird automatisch geändert

$ echo \303 

obwohl der Ausgang richtig ist, denn ich bekommen

$ echo \303 
ù 

ich das gleiche Ergebnis für jeden anderen akzentuierten Buchstaben. Normalerweise benutze ich eine nicht-italienische Tastatur, und ich benutze autohotkey, um Buchstaben mit einem Apostroph nach ihnen mit einem Buchstaben mit Akzent zu ersetzen. Wenn dies der Fall ist, werden akzentuierte Buchstaben durch eine ersetzt, und sie drucken Müll abhängig vom Buchstaben: druckt eine 3y für eine ù, eine für eine ò, und nichts für alles andere.

Wie bekomme ich das alles sinnvoll?

EDIT: meine lokalen Einstellungen, Cygwin-Version und Terminal sind die folgenden

$ uname -a 
CYGWIN_NT-6.1-WOW64 ferdi-Asus 1.7.17(0.262/5/3) 2012-10-19 14:39 i686 Cygwin 
$ locale 
LANG=it_IT.UTF-8 
LC_CTYPE="it_IT.UTF-8" 
LC_NUMERIC="en_US.UTF-8" 
LC_TIME="it_IT.UTF-8" 
LC_COLLATE="it_IT.UTF-8" 
LC_MONETARY="it_IT.UTF-8" 
LC_MESSAGES="it_IT.UTF-8" 
LC_ALL= 
$ tty 
/dev/pty1 

Ich Aufrufen es einfach die Cygwin-Terminal Link klicken. Es leitet zu

C:\cygwin\bin\mintty.exe -i /Cygwin-Terminal.ico - 

Der relevante Teil des autohotkey Skript wird die folgende

#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases. 
SendMode Input ; Recommended for new scripts due to its superior speed and reliability. 
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory. 
... 
::avra'::avrà 
::avro'::avrò 
... 
+2

Welche Cygwin Version verwenden Sie, und mit welchem ​​Terminal? Was ist Ihre Gebietsschemaeinstellung, d. H. Was sind die Werte von LC_ALL, LC_CTYPE und LANG? In jedem Fall muss 'convert-meta' deaktiviert sein, damit Nicht-ASCII-Zeichen korrekt funktionieren. – ak2

+0

Ich habe meinen Beitrag bearbeitet, um zu zeigen, was Sie gefragt haben.Das Ausschalten von Convert-Meta scheint tatsächlich nichts zu ändern. –

+0

Nicht-ASCII-Buchstaben funktionieren gut für mich ohne Convert-Meta, und sie funktionieren nicht mehr, wenn ich sie einschalte, was nicht verwunderlich ist: "Wenn 'on' gesetzt ist, konvertiert Readline Zeichen mit dem achten Bit zu einer ASCII-Schlüsselsequenz, indem das achte Bit entfernt wird und ein ESC-Zeichen vorangestellt wird, um sie in eine Meta-Präfix-Schlüsselsequenz umzuwandeln. Der Standardwert ist 'on'. " – ak2

Antwort

14

Um Buchstaben auf bash über CygwinMintty 1.1.2 mit Akzent zu bekommen nur wie folgt vor:

  1. Zum Das Menü (wenn Sie kein Menü sehen, klicken Sie mit der rechten Maustaste auf Ihr Terminal).
  2. Klicken Sie auf Optionen ....
  3. Klicken Sie auf Text.
  4. Ändern Sie die Locale zu C.
  5. Ändern Sie den Zeichensatz zu ISO-8859-1 (Western European).

Changing Locale and Character set in Mintty 1.1.2

es Dann testen:

Echoing accented letters in Mintty 1.1.2

+1

Danke! Das funktioniert, wenn ich das normale italienische Layout verwende, aber nicht, wenn ich akzentuierte Buchstaben über mein autohotkey-Skript einfüge. Dies sollte keine große Sache sein, da mein Hauptzweck in der Lage ist, Skripte mit Akzenten zu schreiben, anstatt Befehle mit Akzenten direkt in der Shell auszugeben. Ich werde es versuchen und sehen, wie es geht. –

Verwandte Themen