В настоящее время я использую Bash на OSX (через iTerm2). Иногда мне приходится запускать программы с очень длинным набором аргументов командной строки. Если я обнаружил, что я набрал опечатку, потребуется слишком много времени, чтобы вернуться к ошибке и исправить ее. Я знаю, что некоторые программы, такие как nano, поддерживают создание отчетов с помощью мыши для позиционирования курсора. Поддерживается ли это какими-либо оболочками или (что еще лучше) как опция для bash?
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: удалить от позиции курсора до конца строки
И это только некоторые из тех, которые я использую - их много на странице руководства.
Я не знаю, но ...
Расширение истории
повторить последнюю команду после коррекции teh
к
^teh^the^
повторить последнюю команду, содержащую слово foo
после изменения первого вхождения bar
на qax
!?foo?:s/bar/qax/
Линия редактирования
Вы можете использовать команды редактирования в стиле emacs для быстрого перемещения по строке.
Я предпочитаю набор режимов vi set -o vi
что означает, что я могу использовать b и w для перемещения назад и вперед по слову за раз и использовать f x
для перемещения курсора к следующему появлению определенного символа x
.
GPM (мышь общего назначения) - это сервер мыши для консоли и xterm
РЕДАКТИРОВАТЬ: Очевидно, есть также версия 2.
Это не «ответ», но это решение. Я представляю это как ответ, потому что мне требуется дополнительная комната.
Вы пробовали использовать комбинацию Home и Alt + Left
- Домой - возьму на фронт команды.
- Конец - займет до конца команды.
- Alt + Left - Отнесет вам "слово" слева.
- Alt + Right - доставит вам "слово" справа.
С этими комбинациями клавиш вам будет намного легче вернуться к вашей ошибке =)