2009-07-14 4 views
8

Ich möchte Ctrl-l für clear in meinem Bash haben.Zum Binden an^l in Bash

Wie können Sie Ctrl-l an clear in Bash binden?

+0

Was ist falsch mit Strg + K, oder haben Sie kleine Hände und können nicht K (direkt neben L auf QWERTY Tastaturen) erreichen ?! :-P – Gav

+2

Strg + K funktioniert nicht. Ich benutze Dvorak. --- Ich hatte die Idee, dass Ctrl-l in Bash und Zsh der Standard 'clear' ist. –

Antwort

11

dies in Ihrer ~/.inputrc:

C-L: backward-kill-line 

(unter der Annahme von "clear" Sie "clear aktuellen Eingabezeile" bedeuten, wenn man "clear screen" bedeutet dann clear-screen statt backward-kill-line setzen).

+0

ich meine letzteres. - Ich habe 'C-L clear-screen' auf ~/.inputrc ohne Erfolg gesetzt. Dies deutet darauf hin, dass ~/.inputrc nicht von Bash stammt. Bash mag es jedoch nicht, wenn ich die Datei unter .bashrc entwerfe. - Wo sollte ich den Code einfügen? –

+2

'.inputrc' wird nicht * von bash * genau bezogen; Es enthält keine 'bash'-Befehle, es enthält Readline-Bibliotheks-Konfigurationsdirektiven. Die Umgebungsvariable INPUTRC kann verwendet werden, um den Standardpfad von '~/.inputrc' zu überschreiben; denkbar das kann eingestellt werden. Und Sie müssen einen neuen 'bash' starten, damit er wirksam wird; Es wirkt sich nicht auf vorhandene Sitzungen aus. – chaos

+2

Auf meinem System ist C-L standardmäßig auf Bildschirm löschen eingestellt. –

4

in einem bestimmten Fall, in dem die clear-screen auch nicht für mich arbeiten, fand ich, dass die Linie in ~/.bashrc Putting out: bind -x $'"\C-l":clear;' war besser als "\C-l":'clear\n' in ~/.inputrc, weil sie den Bildschirm gelöscht und den aktuell eingegebene Befehl links in Ort; zum Beispiel (^L zeigen, wo ich die Combo Hit):

Mit "\C-l": clear-screen in ~/.inputrc:

[email protected]:~$ date^L 
[email protected]:~$ date 
[email protected]:~$ ^L 
[email protected]:~$ 

Mit "\C-l":'clear\n' in ~/.inputrc:

[email protected]arkstar:~$ date^L 
-bash: dateclear: command not found 
[email protected]:~$ ^L 
# screen effectively redrawn 

Mit bind -x $'"\C-l":clear;' in ~/.bashrc:

Und jetzt habe ich nicht in der Lage gewesen, das gleiche Ergebnis wie bind -x nur die inputrc Datei zu bekommen ...

bearbeiten

fand ich, dass in einigen Fällen, in denen clear-screen nicht für mich arbeitete wurden von meinen Versuchen verursacht, mehr Farben im CLI zu bekommen. Zum Beispiel hatte ich das Problem mit TERM=xterm-256color (oder screen-256color, etc.) und das Entfernen der -256color Teil löste das Problem.

Ich habe noch keinen Weg gefunden, entlang CTRL +l (in xterm, urxvt, usw.) arbeiten ein 256 Farben Begriff zu bekommen.

+0

Was du damit meinst * Und bisher konnte ich nicht das gleiche Ergebnis wie bind -x erreichen, wenn ich nur die inputrc-Datei benutze. .. *. Haben Sie noch 'bind -x $ '" \ C-l ": clear;'' in '$ HOME/.bashrc'? Meinst du in .bashrc nur stattdessen, wie Ihr anderer Text vorschlägt? –

+1

@Masi bufh

Verwandte Themen