Gibt es eine Möglichkeit, die Tastenkombination Strg + L zu aktivieren, um den Bildschirm zu löschen, wenn "set -o vi" festgelegt ist?

54

Wenn Sie im Bash-Standardmodus Ctrl+ drücken, wird Lder Bildschirm gelöscht. Aber wenn ich renne set -o viund Ctrl+ drücke, wird Lder Tastenanschlag gedruckt ( ^L). Gibt es eine Möglichkeit, dieses Verhalten beizubehalten?

David Martínez
quelle

Antworten:

61

Ctrl+ List auch im vi-Befehlsmodus gebunden, jedoch nicht im Einfügemodus. Es gibt keine Standardbindung für den clear-screenEinfügemodus. Readline-Bindungen sollten ~/.inputrcwie folgt angegeben werden:

set editing-mode vi
$if mode=vi

set keymap vi-command
# these are for vi-command mode
Control-l: clear-screen

set keymap vi-insert
# these are for vi-insert mode
Control-l: clear-screen 
$endif

Dadurch wird Ctrl+ gebunden L, um den Bildschirm sowohl im normalen als auch im Einfügemodus zu löschen. Wenn Sie es nur in einem Modus verwenden möchten, entfernen Sie einfach die entsprechende Option.

Es gibt eine umfangreiche Liste von Readline-Befehlen , mit denen Sie Ihre Bash-Shell anpassen können.

jasonwryan
quelle
1
Warum sollte man sich aus Neugier mit vi-command beschäftigen, wenn es bereits zugeordnet ist? nur der Vollständigkeit halber, oder gibt es einen technischen Grund?
Ken Bellows
2
@ KenBellows für Klarheit, wie in den Kommentaren angegeben (und ich brauchte ein Beispiel im vi-Befehlsblock aus rein ästhetischen Gründen).
Jasonwryan
22

Setzen Sie diese Zeile in Ihre bashrc:

bind -m vi-insert "\C-l":clear-screen
casey
quelle