control-w (Wort löschen) löscht die gesamte Zeile im MariaDB-Client

8

Ich habe den ursprünglichen MySQL-Client für "Äonen" verwendet und bin eher daran gewöhnt, bash-ähnliche Verknüpfungen darin zu verwenden. Eine meiner am häufigsten verwendeten ist das control-wLöschen des Wortes vor dem Cursor (genau wie bei Bash).

Derzeit mit meinem Mariadb-Client - wenn ich control-wihn drücke, wird die gesamte Zeile vor dem Cursor gelöscht . (was in Bash zumindest normalerweise ist control-u)

Versuchen Sie es zum Beispiel in einer Standard-Bash-Eingabeaufforderung ... oder sogar in einer klassischen MySQL-Eingabeaufforderung, wenn ich eine Zeile wie die folgende habe:

SELECT a,b,c FROM table WHERE column='value'

Und ich habe meinen Cursor, bevor WHEREdie Linie aussehen wird

WHERE column='value'

Als ich es wirklich erwartet hatte:

SELECT a,b,c FROM WHERE column='value'

Ich verwende Fedora und die installierte Maria-Version ist:

[doug@talos werk]$ sudo rpm -qa | grep -i maria mariadb-10.0.21-1.fc21.x86_64 mariadb-config-10.0.21-1.fc21.x86_64 mariadb-common-10.0.21-1.fc21.x86_64

Andere Verknüpfungen funktionieren wie erwartet control-aund control-egehen an den Anfang bzw. das Ende der Zeile und control-[left arrow]verschieben ein Wort nach links (oder rechts mit dem Pfeil nach rechts).

Ich führe den Client aus mit:

mysql -A --host=foo.local -u user -p'mypass'

Ich kann keinen Verweis auf die Konfigurationsoptionen eines Maria-Clients finden, z. B. a .mariarcoder so. Gerne nehme ich Hinweise entgegen.

dougBTV
quelle

Antworten:

15

Ich habe herausgefunden, was zu tun ist, und die Antwort im Artikel MySQL-Tipps im MySQL-Handbuch gefunden .

Es stellt sich heraus, dass das Verhalten davon abhängt, gegen welche Bibliothek MySQL kompiliert wurde, readlineoder libedit. Und Sie können das Verhalten mit einer .editrcDatei anpassen .

In meinem Fall hätten control+wSie eine .editrcDatei, die so aussieht, wie ich es erwartet hatte :

bind "^W" ed-delete-prev-word

Wenn Sie die Tastenkombinationen sehen möchten, geben Sie einfach das Wort bindein .editrc(oder am Ende einer vorhandenen .editrcDatei).

dougBTV
quelle
1
Es ist lächerlich, dass dies nicht die Standardkonfiguration mit MySQL / MariaDB ist. Vielen Dank!
Teekin
Vielen Dank, nur um den Speicherort der erwähnten Konfiguration /home/<user>/.editrc zu klären. Sie können auch .editrc in das Verzeichnis / etc / skel / legen, damit alle neuen Benutzer diese Einstellungen automatisch erhalten
Igor Tverdovskiy