3

В настоящее время я использую Bash на OSX (через iTerm2). Иногда мне приходится запускать программы с очень длинным набором аргументов командной строки. Если я обнаружил, что я набрал опечатку, потребуется слишком много времени, чтобы вернуться к ошибке и исправить ее. Я знаю, что некоторые программы, такие как nano, поддерживают создание отчетов с помощью мыши для позиционирования курсора. Поддерживается ли это какими-либо оболочками или (что еще лучше) как опция для bash?

4 ответа4

4

Похоже, вы бы выиграли, если бы потратили немного времени на изучение некоторых стандартных сочетаний клавиш readline . Обратите внимание, что ответ пользователя user606723 дает некоторые основные ответы , но клавиши со стрелками Home и Alt+ работают не на всех терминалах. Вот некоторые из тех, которые я считаю следующими наиболее полезными, и которые также работают в большем количестве терминалов.

(Если не указано иное, слово означает буквенно-цифровую строку.)

  • Alt-f: перейти на одно слово вперед.
  • Alt-b: вернуться на одно слово назад.
  • Ctrl-a: перейти к началу строки
  • Ctrl-e: перейти к концу строки
  • Alt-d: удалить до конца слова
  • Alt-Backspace: удалить в начале слова
  • Ctrl-w: удалить назад в пробел
  • Ctrl-y: вставить последний удаленный текст
  • Ctrl-b, Ctrl-f: переместить вперед / назад на один символ, эквивалентно левому и правому
  • Ctrl-h, Ctrl-d: эквивалентно Backspace и Delete соответственно.

Я перечисляю последние несколько, потому что я нахожу их более удобными, чем поиск клавиш со стрелками или удаление / возврат. Вы можете видеть, как с помощью этих основных ярлыков вы можете довольно легко редактировать. Но есть еще:

  • Alt-.: повернуть на последнее слово (разделенное пробелами) предыдущих строк в истории. Используя его, вы получите последний аргумент последней набранной вами команды.
  • Ctrl-_: отменить (в инкрементах)
  • Ctrl-]: поиск вперед для символа (например, f в vim, но менее удобный)
  • Ctrl-r: обратный поиск в истории
  • Alt-0...Alt-9: числовой аргумент для следующей команды. Например, если вы хотите удалить 4 слова: Alt-4 Alt-d. Или если по какой-то причине вам нужно 1024 A в командной строке: Alt-1 0 2 4 A.
  • Ctrl-u: удалить из позиции курсора в начало строки
  • Ctrl-k: удалить от позиции курсора до конца строки

И это только некоторые из тех, которые я использую - их много на странице руководства.

3

Я не знаю, но ...


Расширение истории

повторить последнюю команду после коррекции teh к

^teh^the^

повторить последнюю команду, содержащую слово foo после изменения первого вхождения bar на qax

!?foo?:s/bar/qax/

Линия редактирования

Вы можете использовать команды редактирования в стиле emacs для быстрого перемещения по строке.

Я предпочитаю набор режимов vi set -o vi что означает, что я могу использовать b и w для перемещения назад и вперед по слову за раз и использовать f x для перемещения курсора к следующему появлению определенного символа x .

1

GPM (мышь общего назначения) - это сервер мыши для консоли и xterm

РЕДАКТИРОВАТЬ: Очевидно, есть также версия 2.

0

Это не «ответ», но это решение. Я представляю это как ответ, потому что мне требуется дополнительная комната.

Вы пробовали использовать комбинацию Home и Alt + Left

  • Домой - возьму на фронт команды.
  • Конец - займет до конца команды.
  • Alt + Left - Отнесет вам "слово" слева.
  • Alt + Right - доставит вам "слово" справа.

С этими комбинациями клавиш вам будет намного легче вернуться к вашей ошибке =)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .