поведение ctrl-o в Terminal.app


16

Я часто использую ярлык + Oв bash (из «Изучение оболочки bash» ):

[G] вернитесь к [команде в истории] и нажмите + Oвместо . Это выполнит команду и вызовет следующую команду в файле истории. Нажмите + еще Oраз, чтобы ввести эту команду и вызвать следующую.

Кажется, этот ярлык недоступен в OS X; + Oпросто ничего не делает. Поиск в сети выдает предложение использовать !встроенную bash , но я не вижу, как я могу добиться того же, что и + Oс ним.

Можно ли как-то получить + Oповедение в Terminal.app на OS X?

Ответы:


19

+ Oпо какой-то причине (вероятно, связано с тем, что он используется для управления потоком данных в некоторых типах последовательных соединений), должен быть отвергнут драйвером терминала (т. е. не Terminal.app, а частью ОС между ним и ракушка). Вы можете избавиться от этого с помощью команды stty discard undef. Чтобы сделать это изменение постоянным, добавьте эту команду в свои файлы .bash_profile и .bashrc .


3

man bashможет помочь. «READLINE» и «Readline Key Bindings» говорят о привязке нажатий клавиш и о том, как установить значения по умолчанию для readline.

Кроме того, Bash Emacs Режим редактирования Шпаргалка и продуктивная работа в режиме редактирования командной строки Bash Vi (с Шпаргалкой) хороши для выяснения того, что делает нажатие клавиш, что если вы используете режим vi вместо стандартного emacs. В любом случае bind -P | grep foundпокажет вам, какие комбинации клавиш настроены в режиме vi, и bind -Pпокажет все доступное.


2
Ух ты, я понятия не имел, что в bash доступен vi-режим! Это за пределами сладкого. Благодарность!
Майк Мазур

2
Я чувствовал то же самое, когда я обнаружил, что это было доступно.
Грег

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