~ / .inputrc-Datei wird nicht korrekt bezogen

14

Ich habe diese ~ / .inputrc-Datei, die ich für bestimmte Tastenzuordnungen erstellt habe.

# mappings for Ctrl-left-arrow and Ctrl-right-arrow for word moving
"\e[1;5C":forward-word
"\e[1;5D":backward-word
"\e[5C":forward-word
"\e[5D":backward-word
"\e\e[C":forward-word
"\e\e[D":backward-word

Wenn ich versuche zu laufen source ~/.inputrc, wird mir der folgende Fehler angezeigt:

\ e [1; 5C: Vorwort: Befehl nicht gefunden. \ e [1; 5D: Rückwärtswort: Befehl nicht gefunden. \ e [5C: forward-word: Befehl nicht gefunden. \ e [5D: Rückwärtswort: Befehl nicht gefunden. \ e \ e [C: forward-word: Befehl nicht gefunden. \ e \ e [D: Rückwärtswort: Befehl nicht gefunden.

Es funktioniert auch nicht, wenn ich ein neues Terminal öffne. Ich bekomme keine Fehlermeldung, aber meine Strg-Tastenkombinationen funktionieren auch nicht in einem neuen Terminal. Ich habe diese Datei selbst erstellt, da ich keinen Root-Zugriff auf die Änderung von / etc / inputrc habe. Kann mir jemand helfen? Vielen Dank.

BEARBEITEN: Ich habe versucht, die Datei mit Leerzeichen nach dem Doppelpunkt (:) auch zu kennzeichnen. Es funktioniert nicht Ich habe auch versucht, es ausführbar zu machen (chmod + x ~ / .inputrc), es hat nicht funktioniert.

EDIT: Ich habe festgestellt, dass diese Prozedur nur für 'bash' ist und ich 'tcsh' ausführe. Verwenden Sie für 'csh' .bindingsfile anstelle von .inputrcfile und verwenden Sie die bindkeySyntax.

rrlamichhane
quelle

Antworten:

12

Für Bash werden jetzt die aktuell definierten Zuordnungen neu geladen

bind -f  ~/.inputrc
Paul
quelle
Woher bekommt man den bindBefehl?
Danijar
bind ist eine eingebaute Shell. Was für ein Betriebssystem läufst du?
Paul
Ich benutze Debian mit zsh.
Danijar
Dies funktionierte mit Bash auf RHEL 7 nicht. Meine .inputrc-Bindungen werden nach dem Ausführen dieses Befehls immer noch nicht neu geladen.
user5359531
@ user5359531, könnte es sein, dass Ihre vorherigen Bindungen nicht "entladen" werden? (Wenn sie nicht explizit festgelegt sind, bleiben sie wie zuvor.) Oder vielleicht etwas anderes, wie Ihre ~ / .inputrc nicht $include /etc/inputrc?
Mwfearnley
6

Die .inputrcDatei ist keine zu beschaffende Datei. Es sollte automatisch von bashoder anderer Software berücksichtigt werden , die die readline-Bibliothek verwendet. Wenn dies nicht funktioniert, fügen Sie nach dem Doppelpunkt ein Leerzeichen ein, z

"\e[1;5C": forward-word

(Ich habe immer ein Leerzeichen in dieser Konfigurationsdatei gesehen).

vinc17
quelle
1
+1 Betonung auf "andere Software, die die Readline-Bibliothek verwendet". .inputrcist kein Shell-Skript; Es ist eine readlineKonfigurationsdatei.
Chepner
Tatsächlich hatte ich es so als erstes und habe es in ohne Leerzeichen geändert, nur um es auszuprobieren. So oder so funktioniert es nicht. Ich habe das in der Bearbeitung hinzugefügt. Vielen Dank.
Rrlamichhane
5

Die Schlüsselbindungen und die ~/.inputrcDatei, die in Frage kommen, sind für bash. Verwenden Sie für csh(oder tcsh) eine Datei ~/.bindingsund die folgende Syntax.

bindkey '^[[1;5C' forward-word
bindkey '^[[1;5D' backward-word

Hab das nach einigem googeln gemerkt.

rrlamichhane
quelle
Aus irgendeinem Grund ignorierte mein TSH die .bindings-Datei. Das Hinzufügen source ~/.bindingszu meiner ~/.cshrcDatei hat dies behoben.
Drmuelr