Подтвердить что ты не робот

ITerm2: удалить строку?

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

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

4b9b3361

Ответ 1

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

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

Ответ 2

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

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

0x18 0x7f

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

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

поскольку по умолчанию ZSH не сопоставляет backward-kill-line ни с чем.

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

Ответ 3

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

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

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


Обновление 18.09.2013

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

Ответ 4

Как указано, ^U удаляет строку. Вы можете легко переназначить команду, используя "Улучшенный сенсорный инструмент" .

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

Ответ 5

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

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

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

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

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

Ответ 6

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

enter image description here