В настоящее время я использую Bash на OSX (через iTerm2). Иногда мне приходится запускать программы с очень длинным набором аргументов командной строки. Если я обнаружил, что я набрал опечатку, потребуется слишком много времени, чтобы вернуться к ошибке и исправить ее. Я знаю, что некоторые программы, такие как nano, поддерживают создание отчетов для мыши для позиционирования курсора. Поддерживается ли это какими-либо оболочками или (что еще лучше) как опция для bash?
Существуют ли какие-либо оболочки Unix, поддерживающие отчеты мыши?
4 ответа
Похоже, вы бы выиграли, потратив немного времени на изучение некоторых readlineсочетаний клавиш по умолчанию . Обратите внимание, что ответ пользователя user606723 дает некоторые основные ответы, но клавиши Homeи Alt+ arrowне работают на всех терминалах. Вот некоторые из тех, которые я считаю следующими наиболее полезными, и которые также работают в большем количестве терминалов.
(Если не указано иное, слово означает буквенно-цифровую строку.)
- Alt-f: Идти одно слово вперед.
- Alt-b: вернуться на одно слово назад.
- Ctrl-a: перейти к началу строки
- Ctrl-e: перейти к концу строки
- Alt-d: удалить до конца слова
- Alt-Backspace: удалить в начало слова
- Ctrl-w: удалить назад в пробел
- Ctrl-y: вставить последний удаленный текст
- Ctrl-b, Ctrl-f: двигаться вперед / назад на один символ, эквивалентный leftиright
- Ctrl-h, Ctrl-d: эквивалентно Backspaceи Delete, соответственно.
Я перечисляю последние несколько, потому что я нахожу их более удобными, чем поиск клавиш со стрелками или удаление / возврат. Вы можете видеть, как с помощью этих основных ярлыков вы можете довольно легко редактировать. Но есть еще:
- Alt-.: повернуть на последнее слово (разделенное пробелами) предыдущих строк в истории. Используя его, вы получите последний аргумент последней набранной вами команды.
- Ctrl-_: отменить (в инкрементах)
- Ctrl-]: поиск персонажа вперед (как
fв vim, но менее удобно) - Ctrl-r: обратный поиск истории
- Alt-0... Alt-9: числовой аргумент для следующей команды. Например, если вы хотите, чтобы удалить 4 слова: Alt-4Alt-d. Или, если вам нужно 1024
A«S в командной строке по некоторым причинам: Alt-1024A. - Ctrl-u: удалить из позиции курсора в начало строки
- Ctrl-k: удалить из позиции курсора до конца строки
И это только некоторые из тех, которые я использую - их много на странице руководства.
Я выбрал этот ответ, потому что думаю, что буду его использовать, но все это отличные решения. Спасибо!
Я не знаю, но ...
Расширение истории
повторить последнюю команду после исправления tehдоthe
^teh^the^ повторить последнюю команду, содержащую слово, fooпосле изменения первого вхождения barнаqax
!?foo?:s/bar/qax/ Линия редактирования
Вы можете использовать команды редактирования в стиле emacs для быстрого перемещения по строке.
Я предпочитаю режим vi, set -o viчто означает, что я могу использовать bи wдля перемещения назад и вперед по слову за раз и использовать fxдля перемещения курсора к следующему вхождению определенного символа x.
GPM (мышь общего назначения) - это сервер мыши для консоли и xterm
РЕДАКТИРОВАТЬ: Очевидно, есть также версия 2 .
Это не «ответ», но это решение. Я представляю это как ответ, потому что мне требуется дополнительная комната.
Вы пытались использовать комбинацию Homeи Alt+Left
- Home- Возьму на фронт команды.
- End- приму до конца команду.
- Alt+ Left- Приму вам «слово» в левом.
- Alt+ Right- Приму вам «слово» в правом.
С этими комбинациями клавиш вам будет намного легче вернуться к вашей ошибке =)
Я знаю, что есть zsh-скрипты, которые добавляют поддержку мыши, но еще не пробовали.