Сделать номер строки в строке символов по умолчанию

12

Как программист, я гораздо чаще печатаю символы, чем цифры. Поэтому было бы неплохо, если бы строка чисел на клавиатуре производила символы по умолчанию.

Конечные результаты должны быть: 6будут производить ^и Shift+ 6дадут 6.

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

В идеале я бы хотел это сделать и для Windows, но давайте сосредоточимся на Debian, так как это мой основной компьютер разработчика.

Из того, что я нахожу в Интернете, функция «блокировка сдвига», активируемая быстрым нажатием кнопки «Shift», делает именно это в Windows, но я не смог найти никакой ссылки * nix.

Редактировать: в идеале решение не должно мешать ненулевым ключам строк, например, [но если это произойдет, я могу жить с ним (как {это чаще встречается в C, чем [).

Рат
источник

Ответы:

8

Из вашего вопроса я понимаю, что вам нужны только определенные клавиши, чтобы работать точно так же, как при нажатии Shift и наоборот. Для этого вы можете создать свою собственную раскладку клавиатуры. Для этого вы можете скачать Microsoft Keyboard Layout Creator MSKLC, а затем использовать его для создания пользовательского макета для вашей системы. Кроме того, после создания пользовательского макета следует попросить вас установить созданный макет, поэтому выберите ДА, чтобы перейти в ту папку, где находится установщик, и установить свой собственный макет. Также вам необходимо перезагрузить вашу систему после сборки вашего собственного макета. После этого вам нужно только активировать его из панели управления.

Перейти к (для Windows 8)

  1. Нажмите кнопку Windows + I (чтобы открыть меню настроек Charms)
  2. Нажмите на кнопку клавиатуры (нижний правый угол)
  3. Вы должны увидеть свой собственный макет
  4. Выберите это
  5. И теперь ваш пользовательский макет будет активирован

Также для полного учебника по MSKLC вы можете получить его здесь и здесь . Смотрите обе стороны, если возникнут какие-либо проблемы.

охотник
источник
1
Вопрос о Debian.
Harrymc
@harrymc Ну да, и нет. «В идеале мне бы хотелось, чтобы это было и в Windows, но давайте сосредоточимся на Debian, поскольку это мой основной компьютер разработчика». Так что ответ не совсем неверный в контексте вопроса.
CVN
Ну, я думаю, я должен был указать Windows 7, так как у меня нет машины с Win8. Действительный ответ тем не менее.
Рат
@rath не нужно беспокоиться, я бы выложил детали для win 7, работающей на виртуальной коробке.
Охотник
@rath Вот подробности, как сделать это в W7. См. Следующие ссылки: - support.microsoft.com/kb/258824 , support.microsoft.com/kb/306560 и sevenforums.com/tutorials/86239-keyboard-layout-change.html . Также обратите внимание, что когда вы добавляете пользовательскую раскладку клавиатуры (или дополнительные, предоставляемые окнами) только тогда (когда у вас активировано более 1 раскладки клавиатуры), вы сможете увидеть языковую панель (в панели задач, как в Windows 8, за исключением ее). находится в меню прелести).
Охотник
5

Из цепочки Реверсивная роль нажатия клавиши shift + number приходит этот файл xmodmap:

keycode  10 = exclam 1 exclam 1
keycode  11 = at 2 at 2
keycode  12 = numbersign 3 numbersign 3
keycode  13 = dollar 4 dollar 4
keycode  14 = percent 5 percent 5
keycode  15 = asciicircum 6 asciicircum 6
keycode  16 = ampersand 7 ampersand 7
keycode  17 = asterisk 8 asterisk 8
keycode  18 = parenleft 9 parenleft 9
keycode  19 = parenright 0 parenright 0

См. Ссылку выше для получения дополнительной информации об использовании этого файла.

harrymc
источник
2

Вы можете использовать либо dumpkeysи loadkeys(для консоли), либо xmodmap(для X), чтобы переопределить функцию данной клавиши клавиатуры. xevможет рассказать вам, как X видит конкретный ключ ввода.

Я рекомендую сначала распечатать полный набор выражений клавиш; Вполне возможно, что ваша система настроена немного по-другому, и в этом случае вышеприведенное не будет точно соответствовать. Для этого достаточно сделать xmodmap -pke(для печати таблицы раскладок в виде выражений).

В качестве примера, чтобы переназначить 1к !и Shift+ 1к 1в X, мы первое использование Ксев , чтобы узнать, что 1это скан 10 (в моем случае, убедитесь , что для проверки). Чтобы переназначить ключ, чтобы инвертировать его сдвинутую функцию:

xmodmap -e 'keycode 10 = exclam 1 exclam 1 exclamdown onesuperior exclamdown'

Чтобы восстановить нормальную функцию (это соответствует тому, что напечатано xmodmap -pke):

xmodmap -e 'keycode 10 = 1 exclam 1 exclam exclamdown onesuperior exclamdown'

Изменения вступают в силу немедленно и влияют как минимум на весь сеанс X (они не являются локальными для приложения, запускающего xmodmap).

Если у вас есть набор команд xmodmap, которые настраивают клавиатуру так, как вы этого хотите, сохраните их в ~ / .xmodmaprc, а затем добавьте в ~ / .xsessionrc (создавая ее, если она не существует):

xmodmap ~/.xmodmaprc

Часть, которую вы хотите добавить в .xmodmaprc, это просто keycode XX = yyy ...часть команды командной строки (то есть аргумент для -eпереключателя).

CVn
источник
0

Для BSD OS посмотрите на эту опцию Редактор раскладки клавиатуры или Создание пользовательских раскладок клавиатуры для X11 с использованием XKB

Для Windows проверьте Microsoft Keyboard Layout Creator 1.4

Это, кажется, лучшие варианты, которые я нашел. Не говоря, что они единственные варианты.

jmc302005
источник