Привязать / отобразить символ для alt + [какой-нибудь ключ]?

2048
quack quixote

ОС: Ubuntu

В программировании и различных терминальных программах (Screen, Vim) [,], часто используются. Я использую норвежскую клавиатуру, где они расположены так, что мне приходится вытягивать пальцы слишком долго, чтобы это было удобно. Чтобы сделать это проще, я хотел бы, чтобы alt + [некоторый ключ] был одним из этих символов. Есть ли способ, которым я могу связать, скажем, alt + æ (норвежское письмо) с '{' по всей системе?

Кстати, это называется связыванием, отображением или чем-то еще? Я немного запутался в терминах ... :)

4
(в качестве комментария, потому что я очень мало знаю о linux, и это удар в темноте). Это может быть чем-то, что может помочь вам сделать это: http://xmacro.sourceforge.net/ (я искал эквивалент автоотключения для Linux) Dmatig 14 лет назад 0
«Связывание» и «сопоставление» ключа - довольно похожие операции. я думаю, что разница в том, что вы подключаете к нажатию клавиш: если вы подключаете функцию (* запускайте этот макрос при нажатии этой клавиши *), это «привязка»; если вы подключаете символ (* введите этот символ при нажатии этой клавиши *), это «отображение». quack quixote 14 лет назад 0

1 ответ на вопрос

1
richq

К сожалению, это не будет возможно с помощью клавиши Alt +. Вы видите, что ввод Alt + key в командном окне - это то же самое, что нажатие клавиши Escape с последующим нажатием клавиши.

Тем не менее, у меня есть своего рода решение для вас, но оно требует некоторого труда и предполагает, что вы используете X. Ваш screen / vim в эмуляторе терминала все равно будет работать с этим.

Я использую испанскую клавиатуру, и []{}символы находятся на клавишах справа от моего мизинца на правой руке, но также требуют нажатия клавиши AltGr . Это значит, что я слишком сильно сжал мою правую руку. Я изменил это с помощью xmodmap .

Если вы добавите файл с именем .Xmodmap в свой домашний каталог, то он будет получен при каждом входе в X. В качестве альтернативы вы можете выполнить его в любое время, используя xmmodmap ~/.Xmodmap.

Вот пример того, как это настроить. Правый символ фигурной скобки }находится на клавише с çмоей клавиатурой, но я должен нажать AltGr вместе с ключом, чтобы получить правильную фигурную скобку. Чтобы увидеть, какой код ключа сопоставлен с этим, я использую xmodmap -pk:

$ xmodmap -pk | grep brace 51 0x00e7 (ccedilla) 0x00c7 (Ccedilla) 0x00e7 (ccedilla) \ 0x00c7 (Ccedilla) 0x007d (braceright) 0xfe55 (dead_breve) # split to prevent scroll, this is all on one line 

Это означает, что код ключа 51 отображается на эти ключи с различными модификаторами. Вот что man xmodmapдолжен сказать:

keycode NUMBER = KEYSYMNAME ... The list of keysyms is assigned to the indicated keycode (which may be specified in decimal, hex or octal and can be determined by running the xev program). Up to eight keysyms may be attached to a key, however the last four are not used in any major X server implementation. The first keysym is used when no modifier key is pressed in conjunction with this key, the second with Shift, the third when the Mode_switch key is used with this key and the fourth when both the Mode_switch and Shift keys are used. 

Итак, у нас есть:

  • без модификатора = ccedilla ç
  • сдвиг = Ccedilla Ç
  • Mode_switch = ccedilla
  • Mode_switch и shift = Ccedilla
  • AltGr = braceright}

Экспериментируя, кажется, что пятая запись на самом деле, когда AltGr и клавиша нажата. Так много для документации, а? Я понятия не имею, что такое клавиша Mode_switch, это, конечно, не Alt, Shift или Ctrl.

Я хотел изменить этот самый бесполезный из ключей, чтобы иметь }по умолчанию. Запись в моем .Xmodmap выглядит следующим образом:

keycode 51 = braceright Ccedilla ccedilla Ccedilla braceright dead_breve 

Я никогда не пишу ccedillas (кроме как в этом посте, и здесь я написал это, набрав Ç, затем использую guwв Vim, чтобы сделать его строчным!), Поэтому я не скучаю по ним. Другие ключи, такие как ключ ]на нем, были хитрее. Этот ключ *+]написал на нем. Я переместил плюс на другую клавишу (удалив дублирующийся вверх ногами восклицательный знак ¡), выплюнул] по умолчанию и *со смещением. Поведение AltGr я оставил нетронутым.

У меня есть похожие записи для других кодов клавиш, соответствующих ключам других кодеров. Иногда я думаю, что мне следует переучить макет в США или Великобритании только для взлома. Я бы пропустил модные ключи в письмах, хотя.

Похожие вопросы