Предлагаю вашему вниманию вариант управления клавиатурой в условиях, когда на компьютере установлено несколько языков и по некоторым языкам, возможно, различные раскладки клавиатуры. Реализовано в виде AutoHotKey-скрипта
Ответ на вопрос: - Зачем это?,- следующий:
- если у вас на компьютере больше двух раскладок языков, но в основном вы работаете с двумя, - вы получите быстрое переключение между этими двумя, точно зная, на который из них переходите, ибо языки не крутятся по кругу, а за каждым закреплено свое сочетание клавиш. Прочие языки вам не помеха - тихо курят в сторонке;
- если у вас на компьютере больше двух раскладок языков и вы одинаково часто используете все, - вы получите быстрое переключение между ними более удобное, чем системными назначениями клавиш;
- если вы набираете тексты на разных сочетаниях языков и используете массу спецсимволов, как это бывает при наборе программ, - вы получите удобный набор любых спецсимволов вне зависимости от раскладки клавиатуры;
- возможно редактирование текстов одной рукой: буквы большие-маленькие, цифры, спецсимволы - все доступно для набора;
- если вы осваиваете слепой метод печати текстов на разных языках, то, может быть, стоит обратить внимание на фонетические раскладки иностранных языков, - некоторым из вас это облегчит жизнь. Выучив печать в русской раскладке, вы автоматически (почти) начинаете печатать столь же быстро иностранные тексты;
- и еще некоторые другие плюшки, о которых вы сможете прочесть в этой статье.
Так же, опубликованы упрощенные варианты скрипта, не требующий никаких настроек:
Особенности скрипта: одиночные нажатия клавиш CapsLock и ScrollLock отключены,- требуется быстрое двойное нажатие.
Обращаю ваше внимание на тот непреложный факт, что в комбинациях клавиш порядок нажатия клавиш-модификаторов важен: сочетание Space+LeftShift это не то же самое, что и сочетание LeftShift +Space. Реакция может быть разной, поэтому нажимаем клавиши в порядке слева-направо, как это прописано.
На картинках клавиши раскрашены соответственно тому, какая у меня постановка пальцев на клавиатуре. Возможно, это не самое распространенное распределение, но имеет место быть. Мои извинения тем, кто по-другому ставит пальцы в растопырку.
Представления о том, какой должна быть "дружелюбная" клавиатура, положенные в основу разработки, - это представления автора статьи и они не обязательно соответствуют вашим собственным представлениям по данной проблематике.
-
Переключение раскладок клавиатуры
-
Настройки скрипта
-
Конвертация строк
-
Печать спецсимволов
-
Использование шаблонов текста
-
Некоторые доп.возможности редактора программных модулей 1С
-
Английская фонетическая раскладка
-
Поставка
-
Заключение
-
Обновления
Переключение раскладок клавиатуры
В контексте решаемой задачи, раскладки клавиатуры распределяются по трем группам:
- Славянские (одна-две)
- Германские (одна-три)
- Другие (до одной)
Обычно, в работе нам постоянно требуются не более двух языков единовременно, остальные эпизодически. Я исхожу именно из этого постулата, применимого, увы, не всегда и не везде, но использованию скрипта это не помешает.
В каждой из первых двух групп есть по одному помеченному языку – активному на текущий момент. Тот, который используется сейчас, в меню выделен жирным шрифтом и, естественно, показан в индикаторе языка на панели задач.
Нажав комбинацию клавиш Win+Space, вы можете выбрать любой из установленных языков. Это знакомо любому из пользователей Windows 10/11. Правда, после установки, скрипт подменяет системное меню своим. Продемонстрирую возможности скрипта на максимальном количестве языков-раскладок.
Для переключения на активный язык германской группы используются сочетания клавиш: Shift+CapsLock и Space+LeftShift
Для переключения на активный язык славянской группы используются сочетания клавиш Shift+Ctrl и Space+RightShift.
Эта функция скрипта в поставке отключена, чтобы скрипт заработал корректно сразу же после загрузки исполняемого файла, без каких-либо предварительных настроек. В настройках скрипта указано, как эту функцию включить. К тому же, если, в принципе, нет желания разбираться с настройками, так это и оставьте, - используйте прочие возможности скрипта.
Настроенный скрипт, тем не менее, предоставит вам еще дополнительную возможность переключения языков с помощью сочетания CapsLock+Клавиша, заместо довольно таки неудобных системных назначений. Детали на картинке:
Настройки скрипта
Чтобы такое поведение скрипта стало возможным, требуется выполнить ряд настроек.
Установите этот скрипт в автозагрузку при включении компьютера (рекомендуется, но не обязательно).
Важно: выключите компьютер и снова включите через несколько минут. Скрипт готов к работе. При автозагрузке скрипта сразу же будет установлен настроенный в ini-файле язык ввода.
Конвертация строк
PrintScreen - перевод напечатанных символов из славянской группы в германскую и наоборот, при несвоевременном переключении языков. При этом устанавливается требуемая раскладка клавиатуры. Если нет выделенного фрагмента строки,- от позиции курсора до начала строки; при его наличии,- переводится только выделенный фрагмент.
Двойной клик PrintScreen - переводит символы из нижнего регистра в верхний и наоборот. Если нет выделенного фрагмента строки,- от позиции курсора до начала строки; при его наличии,- переводится только выделенный фрагмент.
Печать спецсимволов
Сочетание Space+Клавиша буквенно-цифровой области клавиатуры позволяет напечатать любой спецсимвол вне зависимости от выбранной раскладки клавиатуры. Это самый удобный и всеобъемлющий способ, который я знаю на текущий момент (с ограничениями на среду исполнения).
Буквенная часть клавиатуры жестко прописана в скрипте,- в ней вы найдете все спецсимволы из русской и английской раскладок. Одна клавиша была свободная,- к ней прикрепил символ … (три точки).
Цифровой ряд клавиатуры можете использовать на свое усмотрение. Сейчас к ним прикреплены спецсимволы, которые я нахожу интересными. Есть два способа переопределить их.
Первый способ - отредактировать содержимое секции [Клавиши] ini-файла:
Второй способ - эту возможность предоставляет скрипт следующим образом…
Сначала выполните предварительную работу - в любом текстовом редакторе наберите спецсимволы, которые будете привязывать к клавишам.
Затем переведите скрипт в режим настройки клавиатуры - включите клавиши CapsLock и ScrollLock. Напоминаю, что теперь это доступно двойными нажатиями этих клавиш.
Перед началом присвоения, выделите спецсимвол в редакторе… Завершающим аккордом нажмите сочетание Shift+Space+Клавиша, к которой выполняете привязку спецсимвола. Подтвердите действие.
По окончании настройки, верните скрип в основной режим работы, отключив клавиши CapsLock и ScrollLock.
PS: Извините, так и не смог уговорить этот редактор публикации показать три последних символа цифрового ряда во фрагменте ini-файла. Так что, смотрите на картинку клавиатуры.
PPS: Нет препятствий к тому, чтобы навесить на эти клавиши какие-то комбинации символов. Но убедитесь, что это срабатывает, как вы того и ожидаете.
Использование шаблонов текста
После реализации возможности ввода спецсимволов с помощью комбинации клавиш Space+Клавиша, естественным образом появился соблазн навесить еще что-то, но уже на комбинацию Shift+Space+Клавиша. Выбор пал на шаблоны текстов. Для меня это 1С-шаблоны, запускаемые в редакторе кода 1С. Кто-то, возможно, найдет другое применение этой возможности.
Ко всем буквенно-цифровым клавишам могут быть привязаны шаблоны. Например:
Каждый из вас, заинтересовавшихся такой возможностью, настроит ее под себя. Как и в случае со спецсимволами, есть два способа выполнить настройку.
Первый способ - отредактировать содержимое секции [Шаблоны] ini-файла:
Второй способ - эту возможность предоставляет скрипт следующим образом…
Сначала выполните предварительную работу - в любом текстовом редакторе наберите шаблоны (не забудьте сказанное про клавишу {Enter} в составе шаблона), которые будете привязывать к клавишам.
Затем переведите скрипт в режим настройки клавиатуры - включите клавиши CapsLock и ScrollLock. Еще раз напоминаю, что теперь это доступно двойными нажатиями этих клавиш.
Перед началом присвоения, выделите шаблон в редакторе… Завершающим аккордом нажмите сочетание Space+Клавиша, к которой выполняете привязку шаблона. Подтвердите действие.
По окончании настройки, верните скрип в основной режим работы, отключив клавиши CapsLock и ScrollLock.
Некоторые доп.возможности редактора программных модулей 1С
Все, о чем я писал выше, это уже законченные решения в работе скрипта. Ниже пойдет речь о том, что все еще находится в стадии становления и в следующих реализациях скрипта может претерпеть значительные изменения. Но, я все-таки напишу о небольшой дополнительной функциональности в редакторе модулей 1С.
Space+Tab - осуществляет движение по точкам перехода в программном коде. Точка перехода - это комбинация символов //…
Спросите: - Откуда им взяться? Ответ: - Из шаблонов. Привожу пример простого шаблона Если-Иначе-КонецЕсли, каким он может быть, да будет на то ваша воля:
Если <?> Тогда
//…
Иначе
//…
КонецЕсли;
//…
Позиция курсора после ввода шаблона находится между Если и Тогда. Набираете требуемое логикой программы условие и нажимаете Space+Tab. Моментально переходите на следующую последовательность символов //… (уже выделенную). Продолжаете набор программного кода. И так далее…
Shift+Space+Tab - то же, что и в предыдущей команде, но в обратном направлении.
Space+Enter - ввод новой строки после текущей. Сначала курсор выводится в конец текущей строки, и только потом следует перевод строки. Это удобно в сравнении со стандартным подходом, когда нужно сначала нажать клавишу End, а уже потом клавишу Enter, - плохо, что при этом рука смещается вправо из основной позиции, и потом требуется возврат для печати...
Shift+Space+Enter - действует аналогично предыдущей команде, только новая строка вставляется перед текущей и курсор переводится в ее начало.
Следующие восемь команд полностью дублируют имеющиеся в редакторе модулей, но, возможно, предложенные сочетания клавиш для их выполнения покажутся более удобными иногда. Зеленым цветом выделил штатные сочетания клавиш.
Shift+Tab, Space+XButton1, Space+Left - выделенный блок текста смещается влево на шаг табуляции.
Tab, Space+XButton2, Space+Right - выделенный блок текста смещается вправо на шаг табуляции.
Ctrl+Num/, Space+LButton, Space+Up - добавить комментарий к выделенному блоку.
Ctrl+Shift+Num/, Space+RButton, Space+Down - удалить комментарий из выделенного блока.
Ctrl+Z, Shift+Space+XButton1, Shift+Space+Left - отменить последнее действие.
Ctrl+Y, Shift+Space+XButton2, Shift+Space+Right - вернуть последнее действие.
Ctrl+Num-, Shift+Space+LButton, Shift+Space+Up - свернуть группу.
Ctrl+Num+, Shift+Space+RButton, Shift+Space+Down - развернуть группу.
Английская фонетическая раскладка
С того самого далекого дня, когда я впервые увидел IBM-скую клавиатуру с раскладкой QWERTY, я испытываю сильный когнитивный диссонанс, глядя на нее; где на одной клавише с английской буквой A прописана русская Ф, а на клавише с буквой Z присоседилась русская Я. Впрочем, пару Z-Я объединяет хотя бы то, что это последние буквы английского и русского алфавитов. И даже точка с запятой размещаются на разных клавишах в русской и английской раскладках! Умом я понимаю, что это правильно, чтобы не плодить превеликое множество раскладок языков… но сердцем принять не могу. :)
До того дня, для меня вполне естественным было соседство А-А, F-Ф, D-Д и т.д. Вот оно:
По моему разумению, не столь важно, на какой стандарт опираться – английский QWERTY, или русский ЙЦУКЕН. Но, важно, чтобы буквы на клавишах были фонетически (по произношению) близки. Освоив метод автоматической печати на клавиатуре русских текстов, вы через несколько часов дополнительных занятий с той же скоростью печатаете и английские.
Какие препятствия существуют сейчас для того, чтобы решить эту задачу? Ответ очевиден: -Никаких!
Вместе со скриптом прилагаю вариант фонетической раскладки, опирающейся на стандарт ЙЦУКЕН. Если вы все еще в самом начале пути освоения автоматического набора текстов и не собираетесь ехать жить за границу, можете попробовать установить эту раскладку на свой компьютер, - посмотреть, что из этого выйдет. Раскладка не совсем стандартная и отражает местами мои собственные предпочтения. Но очень быстро осваивается после русской.
Ставьте на свой страх и риск. Ибо моя эпоха, в которой я начинал карьеру программиста, давно ушла в прошлое и кто-нибудь сейчас обязательно скажет, что это мое предложение очень вредное по нынешним меркам.
Вы можете сами сделать себе любую раскладку клавиатуры с помощью программы Microsoft Keyboard Layout Creator. Специально пишу эти строки для читателей, кому это в новинку.
Поставка
Одним архивным файлом, содержащим:
- Исполняемый файл скрипта kbManager.exe
- ini-файл настроек скрипта kbManager.ini
- дистрибутив английской фонетической раскладки
В поставке параметр ОтключитьПереключениеРаскладок=1, чтобы скрипт заработал без настроек.
Скрипт загружается в трей - синий значок клавиатуры. Первый пункт контекстного меню под названием "Об этом скрипте", - переход на эту статью.
Заключение
Все то время, что я работал над этой статьей, я непрестанно думал над тем, как сделать этот скрипт удобней в работе и внес немало существенных изменений/дополнений в него. Надеюсь, что эта разработка вам понравится и облегчит труды ваши тяжкие.
Для меня лично он открыл путь к полному освоению метода автоматической печати не только романов, где достаточно уметь делать набор русскими буквами плюс точка с запятой, но и программных текстов, в которых задействованы буквы-цифры-спецсимволы нескольких языковых раскладок в немыслимом сочетании. А до того, все мои надежды на это разлетались в пух и прах… Увы, далеко не все мы можем стать тем, чем хотелось бы. :)
Если возникнут вопросы-пожелания, - пишите, пожалуйста в личку, - отвечу-учту. Опубликую важные-интересные.
Обновления
21.04.2023г. Внесены изменения/дополнения в работу скрипта, чтобы дополнительные возможности редактора программных модулей отрабатывались не только в версии 1С8.3, но и в версии 1С7.7.
26.04.2023г.
Выполнен ряд улучшений скрипта:
- в секцию [Раскладки] ini-файла можете включить параметр МенюВыбораЯзыкаСправа=1. По умолчанию, меню выводится внизу-слева экрана монитора
- в секцию [Клавиши] ini-файла можете включить параметр ДвойноеНажатиеКлавишиInsert=1. Клавиша Insert будет срабатывать только на двойные нажатия
- в секцию [Клавиши] ini-файла можете включить параметр NumLockВсегдаВключена=1.
- появилась возможность перекрыть прописанный в скрипте стандартный набор спецсимволов. Для этого, в секции [Клавиши] ini-файла определите параметр СтандартныйНаборСпецсимволов в порядке буквенных клавиш слева-направо, сверху-вниз. Сделайте привязку к клавишам, какую сами пожелаете. Количество символов в строке = 34. Лишние игнорируются; на месте недостающих выводятся символы, прописанные в скрипте
- оптимизирован набор команд конвертации строк. Описание по ссылке.
Исправлены обнаруженные ошибки в работе с версией 1С7.7
15.05.2023г.
- Добавлен показ индикатора языка рядом с текстовым курсором: большими буквами при включенной CapsLock, и маленькими буквами в противном случае. Если у вас уже имеется настроенный ini-файл, наряду с полными названиями раскладок, включите краткие названия, - это и будет значение индикатора текущей раскладки рядом с текстовым курсором. Например:
-
Славянская-2=Русская раскладка КраткоСлавянская-2=ru
- Показ индикатора можно отключить, установив значение параметра ОтключитьИндикаторЯзыкаВозлеКурсора=1 в секции [Раскладки].
- Для CapsLock можно установить цветной фильтр экрана. Параметр CapsLockВключитьЦветнойФильтр=1 в секции [Раскладки]. Такая возможность имеется в Windows-10 и основана на Специальные возможности "Цветные фильтры". Включите фильтр, разрешив установку его по нажатию сочетания Win+Ctrl+C. Тогда одного взгляда на экран будет достаточно, чтобы знать, что клавиша CapsLock включена.
- Параметров в ini-файле стало довольно много, работать с ними путем редактирования файла не самый удобный способ. Поэтому настройка многих из них вынесена в контекстное меню скрипта в трее.
- Появилась возможность редактировать тексты одной рукой - левой. Она включена в состав этого скрипта и подробно описана в статье Печатаем одной рукой. В связи с этим, в этот скрипт добавлен еще один вариант переключения раскладок клавиатуры с помощью сочетания CapsLock+клавиша. Клавиши указаны на картинке:
- Файл kbManager.wav воспроизводит редкие щелчки клавиатуры, когда включена раскладка, отличная от активной славянской. Можете подменить своим одноименным звуковым файлом. Или, если звуковой эффект вас отвлекает, переименуйте/удалите этот файл.
Если вам понравился скрипт, не сочтите за труд пометить его плюсом для более успешного продвижения. Спасибо.