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


8

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

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

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


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

Ответы:


11

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


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

5

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


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для перехода к началу и концу введенной команды.


2
Кроме того, Ctrl + A для перехода в начало и Ctrl + E для перехода в конец
ignis

1
@ignis ты должен поставить это в ответ.
evilsoup

2

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


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.