В Bash (оболочка терминала Mac / Linux) могут ли клавиши со стрелками вверх и вниз работать так же, как в текстовых редакторах?

8

В текстовых редакторах, если я нажимаю клавиши со стрелками вверх и вниз, он перемещает курсор между строками текста.

В Bash, если я набираю длинную команду, которая занимает несколько строк, и нажимаю клавиши со стрелками вверх и вниз, она циклически перебирает историю команд.

Я хочу прежнее поведение в Bash. Это возможно? Если нет, есть ли способ переместить курсор прямо вверх или вниз в многострочной команде?

Frungi
источник
Они перемещаются между линиями ... просто эта линия очень длинная.
vonbrand

Ответы:

11

Нет, это невозможно. Bash использует GNU Readline для обработки ввода интерактивной строки. В Readline нет команды, которая перемещается между строками отображения по вашему желанию, а также нет переменной конфигурации, сравнимой с визуальной переменной line-move- GNU Emacs, которая заставляет следующую и предыдущую строки перемещаться по отображаемым строкам.

Кайл Джонс
источник
Разочаровывает, но спасибо! И я думаю, что ответы на другой вопрос будут полезны для людей с таким же вопросом: stackoverflow.com/questions/657130/…
Фрунги,
5

Что я делаю, это нажимаю CTRL + стрелка влево, и он переходит к первой букве после последнего найденного пробела. Делая это, вы можете быстро добраться туда, куда вам нужно.

chrstphrmllr
источник
1
Это нестандартная привязка ключей. Стандартная привязка клавиш для перемещения назад на одно слово - Alt + b. См. Cnswww.cns.cwru.edu/php/chet/readline/rluserman.html#SEC5
sleske
3

Может быть, вы ищете что-то вроде Xiki. Это как оболочка / текстовый редактор.

Вот демонстрация видео: http://youtu.be/bUR_eUVcABg

Ясон
источник
Xiki выглядит потрясающе! Я хочу что-то подобное, что может работать на Windows ...
Макс
2
@Max, согласно странице github проектов: «Мы только что исправили el4r, так что есть шанс, что Xiki может работать в Windows». Вы можете проверить это здесь: github.com/trogdoro/xiki
Джейсон
Это поразительно аккуратно и занудно, но на самом деле не то, что я хотел сделать. Я просто хотел использовать Bash или другую обычную оболочку. Спасибо хоть!
Фрунги
3

Вы можете использовать Ctrl+ Leftи Ctrl+ Rightдля навигации по словам, а не по символам, Homeа также Endдля перехода к началу и концу введенной команды.

Sekhemty
источник
2
Кроме того, Ctrl + A для перехода в начало и Ctrl + E для перехода в конец
ignis
1
@ignis ты должен поставить это в ответ.
evilsoup
2

Смотрите также bash(1)страницу руководства в Commands for Movingразделе заголовка для других навигационных ярлыков.

Невин Уильямс
источник
1

Ctrl + A для перехода в начало и Ctrl + E для перехода в конец команды.

обманчивая надежда
источник