Связать/отобразить Символ с высоким звуком + [некоторый ключ]?

ОС: Ubuntu

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

Btw, такую вещь называют, связывая, отображаясь или что-то еще? Я становлюсь немного смущенным условиями... :)

4
задан 01.04.2010, 19:23

1 ответ

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

Однако у меня действительно есть своего рода решение для Вас, но оно требует небольшого количества работы, требующей беготни и предполагает, что Вы работаете X. Ваш экран/энергия в эмуляторе терминала будет все еще работать с этим все же.

Я использую испанскую клавиатуру и []{} символы находятся на ключах направо от моего мизинца справа, но требуют нажатия клавиши 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 Ç
  • Mode_switch = седиль
  • Mode_switch и сдвиг = Ccedilla
  • AltGr = braceright}

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

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

keycode 51 = braceright Ccedilla ccedilla Ccedilla braceright dead_breve

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

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

1
ответ дан 07.12.2019, 21:48

Теги

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