Was sind die Readline-Worttrennzeichen?


9

Wenn ich ein "Wort" in Bash lösche, stoppt es bei bestimmten Zeichen wie _und /. Zum Beispiel, wenn ich tippe

/foo/bar

und aktivieren backward-kill-word(normalerweise zugeordnet auf Alt- Backspaceund / oder Ctrl- w), der verbleibende Text ist

/foo/

. Dies gilt nicht entsprechen $COMP_WORDBREAKSoder readlineistrl_completer_word_break_characters . Wie kann ich erkennen (vorzugsweise in einem laufenden System anstelle der Standardeinstellungen im Code, da diese vermutlich überschrieben werden können), welche Zeichen zur Bestimmung von Wortumbrüchen verwendet werden?

Antworten:


9

In der Bash-Dokumentation heißt es:

backward-kill-word (M-Rubout)

Töte das Wort hinter Punkt. Wortgrenzen sind die gleichen wie die, die von Rückwärtswörtern verwendet werden.

Und

backward-word (M-b)

Gehen Sie zurück zum Anfang des aktuellen oder vorherigen Wortes. Wörter bestehen aus alphanumerischen Zeichen (Buchstaben und Ziffern).

Die Behandlung backward-wordin Bash 4.2 erfolgt im gebündelten libreadline-Code ( text.c:rl_backward_word). Das Wort break basiert auf rl_alphabetic, was sich selbst auf die isalnumFunktion stützt . Dies ist vom Gebietsschema abhängig, kann jedoch nicht direkt in Bash konfiguriert werden.

Beachten Sie, dass Bash 4.0 einen anderen "Wort" -Typ mit den Aktionen shell-forward-wordund eingeführt shell-backward-wordhat (und Äquivalente tötet). Diese werden nur bei Shell-Metazeichen ( ()<>;&|") und Leerzeichen (möglicherweise vom Gebietsschema abhängig von isblank) unterbrochen , die im Haupt-Bash-Code ( bashline.c) behandelt werden.


1
Gute Referenzen, aber das ist ziemlich vage. Haben sie bedeuten [^A-Za-z0-9], [^[:alnum:]](Lokalisierung abhängig) oder etwas anderes?
— 10.

Genau genommen ist dies mit Gebietsschemas (der alnumZeichenklasse) konfigurierbar, obwohl dies auch andere Anwendungen betreffen würde.
— Stéphane Chazelas

Ok, habe an der falschen Stelle im Code gesucht (Shell-Backward - *) ... Die Aufteilung basiert auf isalnum, also tatsächlich vom Gebietsschema abhängig und entspricht Ihrer zweiten Version, @ l0b0.
— Mat

1
@Stephane Chazelas: Ich meinte, dass es nicht über Bash-Optionen konfiguriert werden konnte, umformulierte dieses Bit.
— Mat
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.