Редактирование командной строки - это функция вашей оболочки, а не терминала . Возможно, ваша оболочка - bash, и, вероятно, стиль ее редактирования в командной строке установлен на «emacs».
Вот несколько комбинаций клавиш в стиле Emacs, которые вам могут пригодиться:
- Ca:
beginning-of-line
- Ce:
end-of-line
- Mf:
forward-word
- Мб:
backward-word
- Компакт диск:
delete-char
- Md:
kill-word
(удалить следующее слово)
- M-DEL:
backward-kill-word
C- x означает Control+ x, поэтому Ca Control+ a.
M- x означает Meta+ x, но, вероятно, на вашей клавиатуре нет клавиши Meta. Таким образом, вместо этого вы можете использовать ESC x (то есть Escapeзатем x). Терминал имеет настройку для автоматической отправки ESC до нажатия клавиш с нажатой Optionклавишей. Использование этой функции отключает расширенную обработку символов, которую Mac OS X обычно обеспечивает при использовании модификатора Option. Итак, если вы используете несколько расширенных символов и хотите Option+ xотправить ESC x , то вы можете включить эту опцию терминала .
В вашем примере есть много способов перейти к «Hello»:
- Ищите «Привет»: Cr H ello Cj (или ESC)
- В обычном Emacs вы просто используете RET ( Return), чтобы завершить поиск в текущем местоположении и вернуться к редактированию. Но в bash привязки по умолчанию заставляют RET (т.е. Cm) всегда выполнять текущую строку, даже если активен инкрементальный поиск. Таким образом, часть Cj / ESC является отклонением от нормального Emacs.
- Перейти к началу строки и двигаться вперед: Ca Mf Cf (или →)
- Перейти к началу строки, затем перейти по словам: Ca Mf Mf Mb
- Много используйте Мб (только реально выполнимо, если вы сопоставите Option с Meta).
Есть также несколько способов выполнить желаемую замену:
- удалить слово и заменить его: Md H i
- удалить символы и заменить их: Cd Cd Cd Cd Cd H i
- передвиньте «H» и удалите следующую работу, замените ее: Cf Md i
- передвиньтесь «H» и удалите оставшиеся символы, замените их: Cf Cd Cd Cd Cd i
Если вы остановились в конце слова (возможно, через Ca Mf Mf), вы можете использовать M-DEL H i.
Вы могли бы сделать что-то вроде, bind -P | less
чтобы найти другие интересные привязки. Обратитесь к разделу readline на справочной странице bash (или к разделам readline на страницах info bash ) для получения подробной информации.