5

Я использую bash в Windows, как в Cygwin, так и в Git Bash (часть Git для Windows). В bash в отличие от Windows cmd.exe Esc не очищает строку, только Ctrl + U. Как я могу также прояснить линию?

Спасибо!

1 ответ1

7

У меня нет удобной установки Cygwin или Git для Windows, чтобы проверить это, но вот ответ Unix:

Создайте файл в вашем (cygwin) домашнем каталоге с именем .inputrc и добавьте в него следующую строку:

Escape: unix-line-discard

В моем любимом варианте Unix Control-u сопоставлен с unix-line-discard, который удаляет все перед курсором. Если вы хотите, чтобы он удалил всю строку ввода, включая все, что может находиться справа от курсора, используйте «kill-whole-line» вместо «unix-line-discard».

Обратите внимание, что ваш режим редактирования bash line может использовать Escape. В моей системе Bash по умолчанию используется режим редактирования строки в стиле vi (set -o vi), и, как вы, возможно, знаете, vi - это ключ Escape, поэтому, когда я пытаюсь это сделать, мне приходится дважды нажимать Escape, потому что первый из них съеден. в режиме редактирования в стиле vi. Я не парень Emacs, поэтому я не знаю, что будет делать режим редактирования линий в стиле Emacs с нажатием клавиши Escape.

Также обратите внимание, что файл .inputrc читается при запуске оболочки, поэтому после редактирования ~/.inputrc закройте вашу оболочку и откройте новую, чтобы увидеть, сработали ли изменения.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .