Я пытаюсь переназначить некоторые комбинации клавиш по умолчанию в iTerm2 и хотел бы понять, что происходит, когда я связываю клавиши с «Отправить шестнадцатеричные коды».
Предыдущий пост помог мне начать работу с переназначением комбинаций клавиш ctrl-a и ctrl-e соответственно на cmd-left и cmd-right, но я бы хотел переназначить и другие комбинации клавиш. ( Ссылка на предыдущий пост Stackoverflow ).
Я смутно понимаю, что здесь задействованы шестнадцатеричные коды, но сейчас я не могу понять, куда идти дальше, чтобы понять, что происходит и что делать.
Ответы:
Эти шестнадцатеричные коды являются просто последовательностями байтов. Например, сопоставление комбинации клавиш, в
0x66 0x6f 0x6f
которой она будет вставленаfoo
.0xc3 0xa4
вставил бы, если вы используете UTF-8.0x1b 0x1b 0x5b 0x43
значитescape escape [ C
.Некоторые последовательности байтов, такие как escape-последовательности ANSI, и даже отдельные байты, такие как управляющие символы ASCII, имеют специальные значения в терминалах.
Чтобы заставить ⌘ ← и ⌘ → перейти к началу и концу строки, вы можете назначить их 0x01 (^ A в обозначении каретки) и 0x05 (^ E в обозначении каретки):
Вы можете удалить слово вперед, назначив его
\ed
:Изменение ⌥ ← и ⌥ → на
\eb
и\ef
в настройках iTerm также приведет к их изменению в программах, которые не поддерживают комбинации клавиш readline или emacs. Другой вариант - добавить это в ~ / .inputrc :Вы можете запустить
read
и нажать комбинации клавиш, чтобы увидеть, какие символы они вставляют. Например, ⌥ ← вставляет^[^[[D
по умолчанию, где^[
находится escape в обозначении каретки .Смотрите также http://code.google.com/p/iterm2/wiki/Keybindings .
источник
Ctrl+Alt+<char>
с<char>
тогоi
,j
,k
,l
иu
)Я бы посоветовал установить Key Codes ($ 0) от Many Tricks и найти для себя ярлыки.
Например, если вы хотите переназначить ярлык по умолчанию для (пересылки) удаления символа - который называется Ctrl-D (
⌃D
) - так же просто, как нажатие клавиши перемотки вперед (⌦
), вы бы…Откройте приложение и нажмите
Ctrl-D
Вернувшись в iTerm 2, добавьте ярлык Unicode в iTerm> Настройки> Ключи
Примечание: не копируйте и не вставляйте его, просто введите Unicode без пробелов.
источник
Лучший способ, который я нашел, был либо с отправкой кодов клавиш (как описано в @pattulus, либо с помощью привязок клавиш vim.
Примечание по кодам клавиш: На самом деле вы не можете заставить его работать, отправив строку в юникоде, как описано выше, вам нужно отправить и модификатор, и ключ, чтобы получить в случае Control+, Dвам нужно отправить это как код:
0x840101 0x4
где0x840101
модификатор управляющей клавиши и может быть получен через код ключа .Примечание по отправке в виде последовательности vim : Как описано в документации к iTerm2 , вы можете отправить код ключа в формате vim-bindings, например,
\<C-d>
для отправки Control+ D(примечание,\
которое важно).Я лично предпочитаю привязку ключей vim, потому что она более читаема, и позже вы поймете, что сделали.
источник
Проверьте Карабинер .
В этом инструменте вы можете создавать ключевые пользовательские сопоставления, специфичные для приложений. Это идет с некоторыми инструментами, чтобы помочь с этим.
источник