Терминал Mac OS X: параметр «Карта» + удаление для «удаления слова назад» - PullRequest
202 голосов
/ 29 ноября 2008

Пытался сопоставить его из «Настройки» -> «Настройки» -> «Клавиатура», но в поле со списком «ключ» есть только «удалить вперед», но «удалить» нет. С другой стороны, моя клавиатура имеет только «удалить» и не «удалять вперед»!

Есть ли другой способ сделать это, кроме как из настроек?

Ответы [ 7 ]

363 голосов
/ 29 ноября 2008

Включить ключ опции как мета-ключ

  1. Перейти к Terminal> Preferences> Profiles> Keyboard
  2. Чек Use option key as meta key.

Изображение

В macOS High Sierra 10.13.6, захвачено 23 октября 2018 года.

Illustration of the window for toggling option key as meta key

Примечания * * 1023 Многие приложения (в том числе bash и tcsh) рассматривают мета-удаление как «слово для обратного удаления».

66 голосов
/ 28 января 2012

Терминал OS X запускает bash, который включает поддержку readline. Следуйте советам Glomek и скажите терминалу использовать опцию в качестве мета-ключа (или используйте Esc ), и тогда у вас есть несколько удобных опций: Ctrl + w удаляет предыдущее слово (как Meta + delete, как уже упоминалось), но вы также можете использовать Meta + f и Meta + b для перехода вперед и назад по словам, Ctrl + a и Ctrl + e до начала и конца строки, Ctrl + k удалить (убить) от курсора до конца строки и куча больше.

См. http://www.bigsmoke.us/readline/shortcuts для хорошей маленькой справочной таблицы.

50 голосов
/ 17 августа 2015

Удалить слово, возвращаясь:

Ctr-ш.

22 голосов
/ 29 ноября 2008

По умолчанию метасигнал backspace в большинстве оболочек возвращает слово назад. Если вы нажмете escape, а затем нажмете клавишу Backspace, это в значительной степени работает везде.

15 голосов
/ 10 июня 2015

⌃W (control + W) - это не то же самое, что meta + delete (ESC + delete, если вы не отметили опцию использования в качестве мета-ключа) meta + delete будет обрабатывать / _ как разделитель слов, где ^W будет рассматривать пробел как разделитель.

например. использование ESC + Bakcspace (курсор в конце)

rm /dira/dirb/file1

дает

rm /dira/dirb/

в то время как ^ W на том же даст

rm

Так что лучше использовать \ 033 \ 177, а не ^ W при определении модифицирующего профиля терминала. Таким образом, вы действительно сопоставляете ⌥⌫ с тем, что делает esc and, и у вас остается ^ W, чтобы стереть слово на основе пробела.

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

см. Комментарий bouke, чтобы узнать, как изменить профиль терминала.

12 голосов
/ 21 апреля 2015

В профиле вашего терминала вы можете привязать ⌥⌫ (опция + удалить) к ⌃W (управление + W), поэтому он работает аналогично другим приложениям.

Terminal Profile Keyboard settings

2 голосов
/ 29 ноября 2008

Возможно, вы также захотите попробовать iTerm , он обеспечивает более точное управление сочетаниями клавиш.

...