Больше не может использовать CTRL + влево / вправо в Bash Terminal


13

Я обычно использую CTRL+ Leftи CTRL+ Rightдля перемещения между словами в командной строке. Я переключил свой ноутбук этим утром и больше не могу этого делать. Вместо этого входной код CTRL+ Leftпечатается в терминале.

Т.е. вот мой вывод, когда я пытаюсь перемещаться с CTRL+ Left:

~ $ test test ;5D;5D;5D

Любопытно, что я все еще могу использовать CTRL+ Left/ Rightпросто отлично в VIM.


Может, ты что-то положил в свой bashrc, чтобы включить это? Потому что он не работает по умолчанию для меня в Ubuntu 15.10 ...
Martin Tournoij

Пожалуйста, оставьте вывод grep bind ~/.bashrc . Вы ищите другие файлы в ~/.bashrc( grep source ~/.bashrc)?
Кос

1
Просто любопытно, а какой выход echo $0?
Аарон

Ответы:


15

Откройте ~/.inputrcфайл и добавьте следующие строки:

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

Закройте и снова откройте оболочку. Теперь вы сможете использовать эти ключи.

Причины такого поведения? Не совсем уверен. По какой-то причине ваш файл bashперестал читать /etc/inputrc, но он должен быть прочитан в вашей домашней папке


Я думаю, что эта проблема началась для меня, когда я создал файл ~ / .inputrc. Будет ли это сделать?
17

1
@wjandrea Да, я только что проверил это. До того, как пусто, ~/.inputrcbash работал нормально, начал показывать те же управляющие символы для вывода после ~/.inputrcсоздания пустого . Убрал его - клавиши Ctrl + стрелка снова работают. straceпоказывает, что, если .inputrcсуществует, bash не будет читать /etc/inputrc. Я еще немного
Сергей Колодяжный,

1
Если вы добавляете $include /etc/inputrcв начало своего ~/.inputrcфайла, вы можете включить общесистемное поведение, а затем расширить его.
Кори Гросс
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.