Чи є можливість включити Ctrl + L для очищення екрана, коли встановлено "set -o vi"?


54

Якщо натиснути Ctrl+ Lу режимі bash за замовчуванням, екран очищається. Але коли я запускаю set -o viі натискаю Ctrl+ Lнатискання клавіші друкується ( ^L). Чи є спосіб зберегти таку поведінку?

Відповіді:


61

Ctrl+ Lтакож прив’язаний у командному режимі vi, але не у режимі вставки. У clear-screenрежимі вставки немає прив'язки за замовчуванням . Прив'язки для читання в рядку повинні бути зазначені в ~/.inputrcтакому вигляді:

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

Це прив’яже Ctrl+, Lщоб очистити екран як у звичайному, так і в режимі вставки. Природно, якщо ви віддаєте перевагу використовувати його лише в одному режимі, просто видаліть відповідний варіант.

Існує великий список команд readline, за допомогою яких ви можете налаштувати свою команду bash shell.


1
з цікавості, навіщо турбуватися з командою vi, якщо вона вже відображена? просто заради повноти, чи є технічна причина?
Кен Беллоуз

2
@KenBellows для наочності, відповідно до коментарів (і мені потрібен був приклад у блоці команд vi з чисто естетичних причин).
jasonwryan

22

Розмістіть цей рядок у вашому bashrc:

bind -m vi-insert "\C-l":clear-screen
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.