Как вы можете изменить направление альт-периода в Баше?


10

В Bash вы можете нажать Alt-, .чтобы вставить последний аргумент предыдущей команды. Если вы нажмете его несколько раз, он циклически перебирает последние аргументы всех команд в вашей истории. Однако иногда я нажимаю на нее слишком много раз и хочу изменить направление движения на велосипеде, а значит, идти вперед. Это возможно?

(то есть , если вы обратный я-поиск с Ctrl- rвы можете изменить направление с Ctrl- s. Что является аналогом для Alt- .?)

Ответы:


11

Если вы передаете отрицательный аргумент Alt- ., он меняет направление. Самый простой способ сделать это (со стандартными привязками клавиш) Alt- -(эквивалентно аргументу -1).

Таким образом, после того, как один или более Alt- .нажатий, нажатие Alt- -вызовет следующий Alt- .идти в обратном направлении. (Просто игнорируйте диалоговое окно аргументов, которое появляется, когда вы нажимаете Alt- -.)


1
Я не уверен, что именно вы имеете в виду. Нажатие Alt+ -удаляет приглашение командной строки и вставляет (arg: -1)вместо него. Сама команда без изменений.
Sparhawk

1
Thenext alt-. (с -1 аргументом) будет идти вперед.
Ричи

Замечательно! Я отредактировал ответ, чтобы сделать его немного понятнее. Что именно делает alt+ -?
Sparhawk

1
@Sparhawk: как я уже сказал, alt -выдает аргумент -1для следующей команды readline. Или, точнее, он начинает отрицательный аргумент, поэтому alt -alt` выдал 2бы аргумент -2. В случае alt ., только знак аргумента имеет значение, и только если он отрицательный, так alt -что достаточно. (Первый alt .обрабатывает свой аргумент иначе. См. Руководство по bash.)
rici

Спасибо. Я часто нахожу man bashнемного непрозрачным для таких ситуаций, но я думаю, что это немного прояснилось здесь.
Sparhawk
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.