Zum Inhalt springen

Bind: Unterschied zwischen den Versionen

Aus Foxwiki
K Dirkwagner verschob die Seite Linux:Shell:Bash:Builtin:bind nach Bash:Builtin:bind, ohne dabei eine Weiterleitung anzulegen: Textersetzung - „Linux:Shell:“ durch „“
Keine Bearbeitungszusammenfassung
 
(34 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''topic''' kurze Beschreibung
'''bind''' - Bestimmt Readline Tastenzuordnungen und Variablen


= Beschreibung =
= Installation =
= Syntax =
== Parameter ==
== Optionen ==
= Konfiguration =
= Anwendungen =
= Links =
== Dateien ==
== Man-Pages ==
== Intern ==
== Weblinks ==


=Kontrollfragen=
== Beschreibung ==
<div class="toccolours mw-collapsible mw-collapsed">
Weist eine Tastensequenz einer Readlinefunktion oder -makro zu oder setzt eine Readlinevariable.  Die Argumentsyntax ist zu den Einträgen in ~/.inputrc äquivalent, aber sie müssen als einzelnes Argument übergeben werden.  Z.B: bind '"\C-x\C-r": re-read-init-file'.
''Testfrage 1''
<div class="mw-collapsible-content">'''Antwort1'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 2''
<div class="mw-collapsible-content">'''Antwort2'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 3''
<div class="mw-collapsible-content">'''Antwort3'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 4''
<div class="mw-collapsible-content">'''Antwort4'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 5''
<div class="mw-collapsible-content">'''Antwort5'''</div>
</div>


Das Kommando besitzt in erster Linie im Zusammenspiel mit der Datei /etc/inputrc (bzw.&nbsp;~/.inputrc) eine Rolle.


 
Besagte Dateien enthalten die ''Keybindings'', also die Zuordnungen von Tastenkombinationen zu bestimmten Funktionalitäten.  
= bind  =
Das Kommando besitzt in erster Linie im Zusammenspiel mit der Datei /etc/inputrc (bzw. ~/.inputrc) eine Rolle. Besagte Dateien enthalten die »Keybindings«, also die Zuordnungen von Tastenkombinationen zu bestimmten Funktionalitäten.  


Wenn bspw. die unter Interaktive Bash aufgeführten Eingabehilfen bei Ihnen nicht funktionieren sollten, dann fehlt in der Konfiguration Ihrer Bash die notwendige Zuordnung (oder Sie verwenden eine ältere Bashversion).  
Wenn bspw. die unter Interaktive Bash aufgeführten Eingabehilfen bei Ihnen nicht funktionieren sollten, dann fehlt in der Konfiguration Ihrer Bash die notwendige Zuordnung (oder Sie verwenden eine ältere Bashversion).  
Zeile 51: Zeile 19:
Sie die eine oder andere Tastenkombination, um geschwind auf der Kommandozeile zu navigieren oder diese zu manipulieren. Hinter den Mechanismen verbergen sich readline-Funktionen.  
Sie die eine oder andere Tastenkombination, um geschwind auf der Kommandozeile zu navigieren oder diese zu manipulieren. Hinter den Mechanismen verbergen sich readline-Funktionen.  


Welche es gibt, verrät der Aufruf »bind -und über deren aktuelle Belegung weiß »bind -bescheid. Erscheint in letzter Ausgabe »not bound«, so ist diese Funktion nicht belegt.  
Welche es gibt, verrät der Aufruf ''bind -l'' und über deren aktuelle Belegung weiß ''bind -p'' bescheid. Erscheint in letzter Ausgabe ''not bound'', so ist diese Funktion nicht belegt.  
<syntaxhighlight lang="bash" highlight="1" copy>
bind -p | head -5
</syntaxhighlight>


$ '''bind -p | head -5'''
<!-- output -->
"\C-g": abort
<syntaxhighlight lang="bash" highlight="" line>
"\C-x\C-g": abort
"\C-g": abort
"\e\C-g": abort
"\C-x\C-g": abort
"\C-j": accept-line
"\e\C-g": abort
"\C-j": accept-line
</syntaxhighlight>


Angenommen Sie verfassen im vi ein deutschsprachiges html-Dokument.  
Angenommen Sie verfassen im vi ein deutschsprachiges html-Dokument.  


Um die Zeichen »ä«, »ö«,... in Browsern, die deutsche Zeichensätze nicht unterstützen, korrekt darzustellen, sollten alle länderspezifischen Zeichen im Unicode dargestellt werden, also bspw. »ü« anstatt »ü«.  
Um die Zeichen ''ä'', ''ö'',... in Browsern, die deutsche Zeichensätze nicht unterstützen, korrekt darzustellen, sollten alle länderspezifischen Zeichen im Unicode dargestellt werden, also bspw. ''ü'' anstatt ''ü''.  


Die komfortable Lösung ist das Verändern der Tastaturbelegung, so dass automatisch der Unicode im Text erscheint. In der Bash erreichen Sie dies wie folgt:  
Die komfortable Lösung ist das Verändern der Tastaturbelegung, so dass automatisch der Unicode im Text erscheint. In der Bash erreichen Sie dies wie folgt:  
'''bind '"ü":"ü"' '''
<syntaxhighlight lang="bash" highlight="1" line copy>
bind '"ü":"ü"'
</syntaxhighlight>


Sobald Sie »ü« tippen, erscheint in der Eingabe »ü«. Um die Bindung aufzuheben, geben sie »bind -r <Tastensequenz>« an; aber für gewöhnlich besteht der Wunsch, die alte Belegung wieder herzustellen.  
Sobald Sie ''ü'' tippen, erscheint in der Eingabe ''ü''. Um die Bindung aufzuheben, geben sie ''bind -r <Tastensequenz>'' an; aber für gewöhnlich besteht der Wunsch, die alte Belegung wieder herzustellen.  


Eine Taste, die »als sie selbst« definiert wird, wird in folgender Manier belegt:  
Eine Taste, die ''als sie selbst'' definiert wird, wird in folgender Manier belegt:  
'''bind 'ü:self-insert' '''
<syntaxhighlight lang="bash" highlight="1" line copy>
bind 'ü:self-insert'
</syntaxhighlight>


Obige Form der Tastenbindung nennt man auch Makro; daneben können sie auch Funktionen und gar Kommando(s) an Tasten(sequenzen) binden.  
Obige Form der Tastenbindung nennt man auch Makro; daneben können sie auch Funktionen und gar Kommando(s) an Tasten(sequenzen) binden.  
Zeile 75: Zeile 52:
Das nachfolgende Beispiel bindet [Strg]+[b] an die Ausgabe des Kalenders des aktuellen Monats:  
Das nachfolgende Beispiel bindet [Strg]+[b] an die Ausgabe des Kalenders des aktuellen Monats:  


'''bind -x '"\C-b":cal'  
<syntaxhighlight lang="bash" highlight="1" line copy>
bind -x '"\C-b":cal'
</syntaxhighlight>
 
<!-- output -->
<syntaxhighlight lang="bash" highlight="" line>
  [Strg]+[B]'''
  [Strg]+[B]'''
     November 2000
     November 2000
Zeile 84: Zeile 66:
  19 20 21 22 23 24 25
  19 20 21 22 23 24 25
  26 27 28 29 30
  26 27 28 29 30
</syntaxhighlight>


Ihre gesammelten Werke der Tastenbindungen können Sie auch in eine beliebige Datei schreiben und diese mittels "bind -f <Datei>" laden.
Ihre gesammelten Werke der Tastenbindungen können Sie auch in eine beliebige Datei schreiben und diese mittels "bind -f <Datei>" laden.


== Aufruf ==
<syntaxhighlight lang="bash" highlight="1" line copy>
bind: bind [-lpsvPSVX] [-m Tastaturtabelle] [-f Dateiname] [-q Name] [-u Name] [-r Tastenfolge] [-x Tastenfolge:Shell Kommando] [Tastenfolge:readline-Funktion oder -Kommando]
</syntaxhighlight>
=== Optionen ===
{| class="wikitable options big"
|-
! Unix !! Beschreibung
|-
| -m || Keymap  Benutzt KEYMAP as Tastaturbelegung für die Laufzeit dieses Kommandos.  Gültige Keymapnamen sind: emacs, emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move, vi-command und vi-insert.
|-
| -l || Listet Funktionsnamen auf.
|-
| -P || Listet Funktionsnamen und Tastenzuordnungen auf.
|-
| -p || Listet Funktionsnamen und Tastenzuordnungen so auf, dass sie direkt als Eingabe verwendet werden können.
|-
| -S || Listet Tastenfolgen und deren Werte auf, die Makros aufrufen.
|-
| -s || Listet Tastenfolgen und deren Werte auf, die Makros aufrufen, dass sie als Eingabe wiederverwendet werden können.
|-
| -V || Listet Variablennamen und Werte auf.
|-
| -v || Listet Variablennamen und Werte so auf, dass sie als Eingabe verwendet werden können.
|-
| -q || Funktionsname  Sucht die Tastenfolgen, welche die angegebene Funktion aufrufen.
|-
| -u || Funktionsname  Entfernt alle der Funktion zugeordneten Tastenfolgen.
|-
| -r || Tastenfolge  Entfernt die Zuweisungen der angegebeben Tastenfolge.
|-
| -f || Dateiname  Liest die Tastenzuordnungen aus der angegebenen Datei.
|-
| -x || Tastenfolge:Shellkommando  Weist der Tastenfolge das Shellkommando zu.
|-
| -X || Listet mit -x erzeugte Tastenfolgen und deren Werte auf, die Makros aufrufen, dass sie als Eingabe wiederverwendet werden können.
|}
Argumente, die zu keiner Option gehören, werden von der -p und -P Option als Readline-Kommando betrachtet und die Ausgabe auf diese Kommandos beschränkt.
=== Parameter ===
=== Umgebungsvariablen ===
=== Exit-Status ===
{| class="wikitable options col1center big"
|-
! Wert !! Beschreibung
|-
| 0 || Erfolg
|-
| >0  || Fehler
|}
== Anwendung ==
<syntaxhighlight lang="bash" highlight="1" line copy>
</syntaxhighlight>
<!-- output -->
<syntaxhighlight lang="bash" highlight="" line>
</syntaxhighlight>
=== Problembehebung ===
== Konfiguration ==
=== Dateien ===
{| class="wikitable options big"
|-
! Datei !! Beschreibung
|-
| ||
|-
| ||
|}
<noinclude>
== Anhang ==
=== Siehe auch ===
<div style="column-count:2">
<categorytree hideroot=on mode="pages">{{BASEPAGENAME}}</categorytree>
</div>
----
{{Special:PrefixIndex/{{BASEPAGENAME}}/}}
=== Dokumentation ===
<!--
; Man-Page
# [https://manpages.debian.org/stable/procps/pgrep.1.de.html prep(1)]
; Info-Pages
-->
=== Links ===
==== Projekt ====
==== Weblinks ====
{{DEFAULTSORT:bind}}
{{DISPLAYTITLE:bind}}
[[Kategorie:Linux/Befehl]]
[[Kategorie:Bash/Builtin]]
[[Kategorie:Bash/Interaktiv]]


[[Category:Linux:Befehl]]
</noinclude>
[[Category:Linux:Shell:Bash:Builtin]]
[[Category:Linux:Shell:Bash:Interaktiv]]

Aktuelle Version vom 12. März 2026, 20:09 Uhr

bind - Bestimmt Readline Tastenzuordnungen und Variablen


Beschreibung

Weist eine Tastensequenz einer Readlinefunktion oder -makro zu oder setzt eine Readlinevariable. Die Argumentsyntax ist zu den Einträgen in ~/.inputrc äquivalent, aber sie müssen als einzelnes Argument übergeben werden. Z.B: bind '"\C-x\C-r": re-read-init-file'.

Das Kommando besitzt in erster Linie im Zusammenspiel mit der Datei /etc/inputrc (bzw. ~/.inputrc) eine Rolle.

Besagte Dateien enthalten die Keybindings, also die Zuordnungen von Tastenkombinationen zu bestimmten Funktionalitäten.

Wenn bspw. die unter Interaktive Bash aufgeführten Eingabehilfen bei Ihnen nicht funktionieren sollten, dann fehlt in der Konfiguration Ihrer Bash die notwendige Zuordnung (oder Sie verwenden eine ältere Bashversion).

bind kann auch interaktiv benutzt werden, um bestimmte Keybindings zu löschen, um sie sich anzeigen zu lassen oder neue zu definieren.

Letzteres ermöglicht gar die Ausführung von Kommandos bei Betätigung einer zuvor definierten Tastensequenz. Benötigen Sie solche Sequenzen häufig, so nehmen Sie sie in ihre persönliche ~/.inputrc auf.

Wenn Sie mit der Bash einigermaßen per Du sind, so kennen

Sie die eine oder andere Tastenkombination, um geschwind auf der Kommandozeile zu navigieren oder diese zu manipulieren. Hinter den Mechanismen verbergen sich readline-Funktionen.

Welche es gibt, verrät der Aufruf bind -l und über deren aktuelle Belegung weiß bind -p bescheid. Erscheint in letzter Ausgabe not bound, so ist diese Funktion nicht belegt.

bind -p | head -5
"\C-g": abort
"\C-x\C-g": abort
"\e\C-g": abort
"\C-j": accept-line

Angenommen Sie verfassen im vi ein deutschsprachiges html-Dokument.

Um die Zeichen ä, ö,... in Browsern, die deutsche Zeichensätze nicht unterstützen, korrekt darzustellen, sollten alle länderspezifischen Zeichen im Unicode dargestellt werden, also bspw. ü anstatt ü.

Die komfortable Lösung ist das Verändern der Tastaturbelegung, so dass automatisch der Unicode im Text erscheint. In der Bash erreichen Sie dies wie folgt:

bind '"ü":"ü"'

Sobald Sie ü tippen, erscheint in der Eingabe ü. Um die Bindung aufzuheben, geben sie bind -r <Tastensequenz> an; aber für gewöhnlich besteht der Wunsch, die alte Belegung wieder herzustellen.

Eine Taste, die als sie selbst definiert wird, wird in folgender Manier belegt:

bind 'ü:self-insert'

Obige Form der Tastenbindung nennt man auch Makro; daneben können sie auch Funktionen und gar Kommando(s) an Tasten(sequenzen) binden.

Das nachfolgende Beispiel bindet [Strg]+[b] an die Ausgabe des Kalenders des aktuellen Monats:

bind -x '"\C-b":cal'
 [Strg]+[B]'''
     November 2000
 So Mo Di Mi Do Fr Sa
           1  2  3  4
  5  6  7  8  9 10 11
 12 13 14 15 16 17 18
 19 20 21 22 23 24 25
 26 27 28 29 30

Ihre gesammelten Werke der Tastenbindungen können Sie auch in eine beliebige Datei schreiben und diese mittels "bind -f <Datei>" laden.

Aufruf

bind: bind [-lpsvPSVX] [-m Tastaturtabelle] [-f Dateiname] [-q Name] [-u Name] [-r Tastenfolge] [-x Tastenfolge:Shell Kommando] [Tastenfolge:readline-Funktion oder -Kommando]

Optionen

Unix Beschreibung
-m Keymap Benutzt KEYMAP as Tastaturbelegung für die Laufzeit dieses Kommandos. Gültige Keymapnamen sind: emacs, emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move, vi-command und vi-insert.
-l Listet Funktionsnamen auf.
-P Listet Funktionsnamen und Tastenzuordnungen auf.
-p Listet Funktionsnamen und Tastenzuordnungen so auf, dass sie direkt als Eingabe verwendet werden können.
-S Listet Tastenfolgen und deren Werte auf, die Makros aufrufen.
-s Listet Tastenfolgen und deren Werte auf, die Makros aufrufen, dass sie als Eingabe wiederverwendet werden können.
-V Listet Variablennamen und Werte auf.
-v Listet Variablennamen und Werte so auf, dass sie als Eingabe verwendet werden können.
-q Funktionsname Sucht die Tastenfolgen, welche die angegebene Funktion aufrufen.
-u Funktionsname Entfernt alle der Funktion zugeordneten Tastenfolgen.
-r Tastenfolge Entfernt die Zuweisungen der angegebeben Tastenfolge.
-f Dateiname Liest die Tastenzuordnungen aus der angegebenen Datei.
-x Tastenfolge:Shellkommando Weist der Tastenfolge das Shellkommando zu.
-X Listet mit -x erzeugte Tastenfolgen und deren Werte auf, die Makros aufrufen, dass sie als Eingabe wiederverwendet werden können.

Argumente, die zu keiner Option gehören, werden von der -p und -P Option als Readline-Kommando betrachtet und die Ausgabe auf diese Kommandos beschränkt.

Parameter

Umgebungsvariablen

Exit-Status

Wert Beschreibung
0 Erfolg
>0 Fehler

Anwendung

Problembehebung

Konfiguration

Dateien

Datei Beschreibung


Anhang

Siehe auch



Dokumentation

Projekt