ITerm2: удалить строку?
Я пытаюсь отобразить Cmd + Delete (backspace), чтобы удалить начало строки (например, она работает в браузерах и текстовых редакторах) в iTerm2, и я не могу найти для нее рабочий escape-код. Я попробовал 1K (^[1K
) на основании того, что я здесь прочитал... Он просто печатает "K".
Изменение: я нашел Ctrl+U. Теперь, чтобы узнать, как его отобразить. Может быть, шестнадцатеричный код 21 (U - 21-я буква), поэтому 0x15?
Ответы
Ответ 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 не настроен таким образом, и в Интернете есть много вводящих в заблуждение руководств. Следующее - это то, что я нашел для работы на своей машине.
- Откройте настройки (⌘ +,) и перейдите на вкладку "Ключи".
- Добавьте глобальную комбинацию клавиш и просто введите ярлык
- В раскрывающемся списке Действие выберите "Отправить шестнадцатеричный код".
Шестнадцатеричные коды для...
- Удаление слова: 0x17.
- Удаление строки: 0x15.
- Переход к началу строки: 0x01.
- Перемещение в конец строки: 0x05. Просто откройте новую вкладку, и она должна работать!
Вот скриншот, для ясности: ![iterm2 keys alt text]()
Ответ 6
Для Mac OS большинство редакторов совместно используют общий ярлык ⌘
+ Delete
: delete для начала строки, в iTerm2 мы можем переключиться на эту конфигурацию ключа
![enter image description here]()