Ed will nicht mit non-ASCII-Zeichen ... Problem: tmux!?

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
Antworten
Benutzeravatar
Meillo
Moderator
Beiträge: 8782
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Ed will nicht mit non-ASCII-Zeichen ... Problem: tmux!?

Beitrag von Meillo » 14.11.2011 11:42:44

Beitraege abgespaltet von: http://debianforum.de/forum/viewtopic.php?f=15&t=132716
myyers hat geschrieben: Aber ed hat sich wie ein Ferkel ver-
halten und mir mehrmals die Kodierung versaut.
Welchen ed hast du verwendet? Den von GNU oder den der Heirloom-Tools? Letzterer sollte problemlos mit UTF-8 umgehen koennen.
Use ed once in a while!

mullers

Re: Wie stark seid ihr mit einem Editoren verbunden?

Beitrag von mullers » 14.11.2011 12:11:22

Meillo hat geschrieben:
myyers hat geschrieben: Aber ed hat sich wie ein Ferkel ver-
halten und mir mehrmals die Kodierung versaut.
Welchen ed hast du verwendet? Den von GNU oder den der Heirloom-Tools? Letzterer sollte problemlos mit UTF-8 umgehen koennen.
Den von GNU; mit utf-8 kann er ja schon umgehen, irgendwie, aber unter
bestimmten Bedingungen, die ich jetzt nicht ganz genau untersucht habe,
werden auf einmal alle dt. Sonderzeichen mit Platzhaltern ersetzt.
Wie auch immer, habe mal ed von heirloom kompiliert, den gerade
geschilderten Fall nicht getestet (ich will damit jetzt nicht gross Zeit
verlieren) aber eine Sache, um Schwierigkeiten hervorzurufen, klappt
immer noch problemlos.

In einer Testdatei beispielsweise ein Steuerzeichen einfügen, in vim mit
CTRL-V-M, und sich die Datei dann in ed anschauen, das ergibt dann sowas,
nach dem Steuerzeichen:

Code: Alles auswählen

27      : ☃┼⎽e⎼├ ├e│├ be±☃┼┼☃┼± ⎺° °☃┌e:
28      ec▒⎺ ↑e '▮⎼ b┌▒↓°☃┌e\┼┬' ≠ ed ├e⎽├↓├│├
und nach dem Schliessen von ed, muss ich ein reset des Terminals
machen.

Das aber nur am Rande, ich habe grad keine Zeit für so lustige Spielereien. :wink:

Benutzeravatar
Meillo
Moderator
Beiträge: 8782
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Wie stark seid ihr mit einem Editoren verbunden?

Beitrag von Meillo » 14.11.2011 13:06:52

myyers hat geschrieben: Wie auch immer, habe mal ed von heirloom kompiliert, den gerade
geschilderten Fall nicht getestet (ich will damit jetzt nicht gross Zeit
verlieren) aber eine Sache, um Schwierigkeiten hervorzurufen, klappt
immer noch problemlos.

In einer Testdatei beispielsweise ein Steuerzeichen einfügen, in vim mit
CTRL-V-M, und sich die Datei dann in ed anschauen, das ergibt dann sowas,
nach dem Steuerzeichen:

Code: Alles auswählen

27      : ☃┼⎽e⎼├ ├e│├ be±☃┼┼☃┼± ⎺° °☃┌e:
28      ec▒⎺ ↑e '▮⎼ b┌▒↓°☃┌e\┼┬' ≠ ed ├e⎽├↓├│├
und nach dem Schliessen von ed, muss ich ein reset des Terminals
machen.

Das aber nur am Rande, ich habe grad keine Zeit für so lustige Spielereien. :wink:
Dann will ich auch nur kurz was dazu sagen: Scheint, als ob da was anderes (z.B. dein Terminal) kaputt waere. Wenn du mal wieder Zeit hast, dann melde dich und wir nehmen uns der Sache an.

Bei mir mit dem Heirloom ed:

Code: Alles auswählen

:-& printf "a\rbäöüß\n" >/tmp/a

:-& od -c /tmp/a                   
0000000   a  \r   b 303 244 303 266 303 274 303 237  \n
0000014

:-& ed /tmp/a                      
12
p
bäöüß
l
a\015bäöüß
q

:-& 
Und das Gleiche mit dem GNU ed:

Code: Alles auswählen

@->-- printf "a\rbäöüß\n" >/tmp/a

@->-- od -c  /tmp/a              
0000000   a  \r   b 303 244 303 266 303 274 303 237  \n
0000014

@->-- ed /tmp/a                  
12
p
bäöüß
l
a\rb\303\244\303\266\303\274\303\237$
q

@->-- 
(Mein Locale ist `en_US.UTF-8'.)
Use ed once in a while!

mullers

Re: Wie stark seid ihr mit einem Editoren verbunden?

Beitrag von mullers » 14.11.2011 13:56:31

Meillo hat geschrieben: [...] Dann will ich auch nur kurz was dazu sagen: Scheint, als ob da was anderes (z.B. dein Terminal) kaputt waere. Wenn du mal wieder Zeit hast, dann melde dich und wir nehmen uns der Sache an.
Na, 'n bisschen prokrastinieren geht doch immer :wink:

Ein schneller Test hat gezeigt, der Übeltäter ist: tmux
Ohne den läuft es in jedem Terminal(emulator) wie es soll.

Benutzeravatar
Meillo
Moderator
Beiträge: 8782
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Wie stark seid ihr mit einem Editoren verbunden?

Beitrag von Meillo » 14.11.2011 14:13:45

myyers hat geschrieben: Ein schneller Test hat gezeigt, der Übeltäter ist: tmux
Ohne den läuft es in jedem Terminal(emulator) wie es soll.
Teste `tmux -u' und evtl. `echo "set-window-option -g utf8 on" >>~/.tmux.conf'. Ist das Problem dann geloest? Wenn ja, dann koennte es am Locale gelegen haben.
Use ed once in a while!

mullers

Re: Wie stark seid ihr mit einem Editoren verbunden?

Beitrag von mullers » 14.11.2011 14:37:14

Meillo hat geschrieben:
myyers hat geschrieben: Ein schneller Test hat gezeigt, der Übeltäter ist: tmux
Ohne den läuft es in jedem Terminal(emulator) wie es soll.
Teste `tmux -u' und evtl. `echo "set-window-option -g utf8 on" >>~/.tmux.conf'. Ist das Problem dann geloest? Wenn ja, dann koennte es am Locale gelegen haben.
Also erstmal, alle Probleme scheinen von tmux herzurühren. Das ist schön, denn
ab & an, wenn man nicht damit arbeiten *muss*, bringt ed richtig Spass.

Die obigen Vorschläge jedoch haben nix gebracht. Die locale hier ist übrigens: de_DE.UTF-8

mullers

Re: Ed will nicht mit non-ASCII-Zeichen ... Problem: tmux!?

Beitrag von mullers » 15.11.2011 15:46:14

So, wenn ich das richtig verstehe, hat das anscheinend was mit ncurses zu
tun. Das Problem tritt immer dann auf, wenn ich vorher ein entsprechendes
Programm aufgerufen habe: lynx, mutt beispielsweise. Auch ohne tmux.

Wenn ich es *nach* ed und der genannten Datei aufrufe, tritt es es in diesen
Programmen auch auf. :?

mullers

Re: Ed will nicht mit non-ASCII-Zeichen ... Problem: tmux!?

Beitrag von mullers » 16.11.2011 10:29:43

Vielleicht kann mal jemand ausprobieren, ob er das reproduzieren kann:

In eine Datei ein Steuerzeichen für Wagenrücklauf beispielsweise einfügen.
In der Datei steht dann nur:
^M
Dann in Terminal oder Terminal-Emulator:

Code: Alles auswählen

cat datei
Bei mir sieht das dann -- zum Test danach eingegeben `pwd` -- so aus:

Code: Alles auswählen

do!  cat bla

d⎺!  ⎻┬d
/▒⎺└e/▒├├☃┼±
d⎺!  

Benutzeravatar
Meillo
Moderator
Beiträge: 8782
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Ed will nicht mit non-ASCII-Zeichen ... Problem: tmux!?

Beitrag von Meillo » 16.11.2011 12:06:42

Ist das in allen Terminals bei dir so?

Versuche mal ein ^H (= Backspace). Gibt dein Terminal auch bei Folgendem den Geist auf?

Code: Alles auswählen

printf 'H\bMaus\n'
Macht es einen Unterschied, ob du das `\b' bei printf, oder ^H (mit ^V eingegeben) verwendest?
Use ed once in a while!

mullers

Re: Ed will nicht mit non-ASCII-Zeichen ... Problem: tmux!?

Beitrag von mullers » 16.11.2011 13:58:22

Meillo hat geschrieben:Ist das in allen Terminals bei dir so?

Versuche mal ein ^H (= Backspace). Gibt dein Terminal auch bei Folgendem den Geist auf?

Code: Alles auswählen

printf 'H\bMaus\n'
Macht es einen Unterschied, ob du das `\b' bei printf, oder ^H (mit ^V eingegeben) verwendest?
So was ähnliches hatte ich schon versucht. Nein, nichts von alledem schafft Probleme.

Und ja, es passiert auf der Console (tty) und in allen Terminal-Emulatoren, die ich hier habe,
gnome-terminal, terminator, xterm, rxvt-unicode (letztere habe ich jetzt extra zum Testen installiert)
Die einzige Ausnahme ist emacs-term.

Benutzeravatar
Meillo
Moderator
Beiträge: 8782
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Ed will nicht mit non-ASCII-Zeichen ... Problem: tmux!?

Beitrag von Meillo » 16.11.2011 14:44:15

Schau mal ob das bei dir ebenso ablaeuft:

Code: Alles auswählen

$ printf 'H\bMaus\n' >/tmp/a
$ echo p | ed - /tmp/a | od -c
0000000   H  \b   M   a   u   s  \n
0000007
$
Das zeigt die Ausgabe von ed, lesbar dargestellt von od(1). Damit sollte das Terminal ganz bleiben und wir sehen evtl. vorhandene seltsame Zeichen.
Use ed once in a while!

mullers

Re: Ed will nicht mit non-ASCII-Zeichen ... Problem: tmux!?

Beitrag von mullers » 16.11.2011 20:10:47

Meillo hat geschrieben:Schau mal ob das bei dir ebenso ablaeuft:

Code: Alles auswählen

$ printf 'H\bMaus\n' >/tmp/a
$ echo p | ed - /tmp/a | od -c
0000000   H  \b   M   a   u   s  \n
0000007
$
Das zeigt die Ausgabe von ed, lesbar dargestellt von od(1). Damit sollte das Terminal ganz bleiben und wir sehen evtl. vorhandene seltsame Zeichen.
Das sieht bei genauso aus.

Benutzeravatar
Meillo
Moderator
Beiträge: 8782
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Ed will nicht mit non-ASCII-Zeichen ... Problem: tmux!?

Beitrag von Meillo » 17.11.2011 12:48:17

myyers hat geschrieben: Das sieht bei genauso aus.
Hmm, das macht mich ratlos.
Use ed once in a while!

mullers

Re: Ed will nicht mit non-ASCII-Zeichen ... Problem: tmux!?

Beitrag von mullers » 18.11.2011 18:59:54

Hoppla. — Mal wieder dran rumprobierit. Es funktioniert doch, und zwar alle
Zeichen ausser: ^N. Ist mir nicht aufgefallen, weil das zum Test mit drin stand.
Steht das überhaupt für etwas?

Benutzeravatar
Meillo
Moderator
Beiträge: 8782
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Ed will nicht mit non-ASCII-Zeichen ... Problem: tmux!?

Beitrag von Meillo » 21.11.2011 17:32:13

myyers hat geschrieben:Hoppla. — Mal wieder dran rumprobierit. Es funktioniert doch, und zwar alle
Zeichen ausser: ^N. Ist mir nicht aufgefallen, weil das zum Test mit drin stand.
Steht das überhaupt für etwas?
^N ist \016 ist SO (= shift out). Hab keine Ahnung was das macht, ausser dass ich bestaetigen kann, dass es auch mein Terminal kaputt macht. ;-)

Um von den ^X Umschreibungen auf die Steuerzeichen zu kommen, kannst du einfach in ASCII vom Zeichencode des Grossbuchstabens (hier 'X') dezimal 64 abziehen. Die ascii(7) ist normalerweise zweispaltig, da kannst du einfach auf der gleichen Zeile nach links gehen. Damit wird auch klar, warum die Umschreibungen so heissen.
Use ed once in a while!

Antworten