it-roy-ru.com

iTerm2: удалить замену?

Я пытаюсь нанести на карту ⌘+Delete (Backspace) для удаления в начале строки (как это работает в браузерах и текстовых редакторах) в iTerm2 , и я не могу найти рабочую escape-код для этого. Я попробовал 1K (^[1K), основываясь на том, что я прочитал в Википедии . Это просто печатает "К".

Правка: я нашел Ctrl+U, Теперь, чтобы узнать, как отобразить это. Может быть, шестнадцатеричный код 21 (U - 21-я буква), поэтому 0x15?

60
Steven Lu

Я понял. Я понятия не имею, почему сопоставления шестнадцатеричного кода в iTerm2 производят сопоставления клавиш Ctrl +, но они это делают. Понятия не имею, что означает 0x00, поскольку он не назначен A, как можно было бы ожидать. (хотя я уверен, что в Unix есть свои соглашения, касающиеся обработки нулевых байтов - например, мы xargs принимаем формат разграничения нулевых байтов из find - Было бы здорово, если бы мы могли связать это с горячей клавишей с iTerm2) 

Мне удалось обнаружить, что Ctrl + U выполняет почти ту задачу, которую я хочу (он удаляет всю строку, а не удаляет только то, что находится перед курсором, но все, что угодно ... Ctrl + Y в качестве бонуса может вернуть все назад). Затем я с любопытством увидел, что у меня есть шестнадцатеричные коды 0x1 и 0x5, сопоставленные с ^A и ^E соответственно, для моих Cmd + Left и Cmd + Right ... так что 0x15 для ^U!

91
Steven Lu

Отображение шестнадцатеричного кода 0x15 в  + ←Delete в большинстве оболочек удаляет всю строку (содержимое слева и справа от курсора). Хотя иногда это не совместимо, я нахожу это отображение:

+←Delete отправлять шестнадцатеричные коды:

0x18 0x7f

выполняет желаемую функциональность. Если вы используете ZSH, вам, вероятно, также нужно добавить это в ваш файл .zshrc:

$ echo 'bindkey "^X\\x7f" backward-kill-line' >> ~/.zshrc

по умолчанию ZSH не отображает backward-kill-line ни на что.

Я написал подробное руководство по добавлению большей части стандартной привязки клавиш OSX к вашему терминалу здесь

27
Travis

Я надеюсь, что это может помочь вам http://felipecsl.com/blog/2012/06/05/protip-delete-words-on-iterm2-mac-osx/

карта ⌥ <- Удалить для отправки шестнадцатеричных кодов: 0x1B 0x08

У меня был тест на это, и это правильно. 


18.09.2013 обновление

это удалить одно слово, а не строку.

9
JZAU

В OSX ⌥ + ⌫ и ⌘ + ⌫ являются ярлыками для удаления Word и удаления строки соответственно. ← + ← и ⌘ + → для перехода к началу и концу строк. По умолчанию iTerm2 не настроен таким образом, и в Интернете есть много вводящих в заблуждение руководств. Вот что я нашел для работы на моей машине.

  1. Откройте настройки (⌘ +,) и перейдите на вкладку «Ключи».
  2. Добавьте глобальный ярлык и просто введите свой ярлык
  3. В раскрывающемся списке «Действие» выберите «Отправить шестнадцатеричный код». 

Шестнадцатеричные коды для ...

  1. Удаление слова: 0x17.
  2. Удаление строки: 0x15.
  3. Перемещение к началу строки: 0x01.
  4. Перемещение в конец строки: 0x05 . Просто откройте новую вкладку, и она должна работать!

Вот скриншот, для наглядности: alt text

6
Ryan Efendy

Как указано, ^U удаляет строку. Вы можете легко переназначить команду, используя Better Touch Tool .

Он также имеет интересные функции для автоматизации, мыши, клавиатуры и раскладки клавиатуры. Также включает в себя функцию окна для смарт-границ.

1
Fabricio PH

Для Mac OS большинство редакторов имеют общий ярлык + Delete: удалить в начало строки, в iTerm2 мы можем переключиться на эту ключевую конфигурацию

 enter image description here

0
Shawn Wang