Разработка в среде 1C:EDT (Enterprise Development Tools) накладывает определенные требования к инструментарию программиста. Одной из часто встречающихся проблем при переходе с классического Конфигуратора на EDT является конфликт популярной раскладки клавиатуры Павла Чистова с горячими клавишами среды Eclipse, на которой базируется EDT. Проблема проявляется в том, что при попытке использовать стандартные сочетания клавиш (например, Ctrl+Alt+D для генерации комментариев) в текст вставляются лишние символы или целые слова, такие как "DOM", "XML" или "HTTP".
В этой статье мы подробно рассмотрим природу этого конфликта, проанализируем технические причины его возникновения и разберем несколько способов решения: от настройки самой среды EDT до модификации файла раскладки.
Прежде чем переходить к решениям, выясним причину странного поведения клавиатуры. В операционной системе Windows комбинация клавиш Ctrl + Alt программно обрабатывается как эквивалент нажатия правой клавиши Alt (известной как AltGr). Раскладка Чистова, созданная для ускорения написания кода, использует этот модификатор для вставки часто используемых аббревиатур. Например:
AltGr + D вставляет строку "DOM";AltGr + X вставляет "XML";AltGr + W вставляет "WEB".В то же время 1C:EDT наследует множество горячих клавиш от платформы Eclipse. Команда Generate Element Comment (Генерировать комментарий к методу) по умолчанию назначена именно на Ctrl+Alt+D. Когда вы нажимаете это сочетание, операционная система посылает сигнал и о нажатии функциональной комбинации, и о вводе текстовой лигатуры из раскладки. В результате в EDT срабатывает команда создания комментария, но следом (или одновременно) в позицию курсора «прилетает» символ "O" или все слово "DOM", что портит структуру кода.
Если вы не хотите менять привычную раскладку клавиатуры, самым быстрым решением будет изменение настроек самой среды разработки. Рассмотрим, как это сделать в современных версиях EDT.
Проанализируем пошагово процесс изменения привязки клавиш:
Generate Element Comment.Ctrl+Alt+D.Alt+Shift+J).Рекомендуем также проверить список конфликтов в нижней части окна настроек. Если в поле Conflicts отображаются другие команды, использующие Ctrl+Alt, их стоит переназначить аналогичным образом, так как раскладка Чистова может содержать и другие лигатуры (HTTP, FTP и т.д.), которые проявятся позже.
Если вы опытный разработчик и хотите полностью «вылечить» раскладку, чтобы она никогда не мешала ни в EDT, ни в других программах, воспользуемся утилитой Microsoft Keyboard Layout Creator (MSKLC). Это официальный инструмент для создания и редактирования раскладок Windows.
Разберем процесс деактивации вставки слов:
.klc). Если у вас установлен только инсталлятор, попробуйте найти исходники в сети или запросить их у автора (как упоминалось в обсуждении, Павел Чистов выпускал разные версии).Этот метод радикален, но он гарантирует, что Ctrl+Alt будет работать только как функциональный модификатор, не пытаясь вводить текст.
Как мы видим из обсуждения, сам автор раскладки признал проблему и планировал выпустить версию, «дружественную» к EDT. Посмотрим на альтернативы, которые существуют на текущий момент:
Важно понимать, что 1C:EDT гораздо чувствительнее к кодировкам и способам ввода, чем старый Конфигуратор. Использование лигатур (последовательностей символов, вставляемых одним нажатием) может приводить к сбоям в работе механизмов автодополнения (IntelliSense). Если вы планируете плотно работать в EDT, рассмотрите возможность отказа от текстовых вставок в пользу стандартных текстовых шаблонов EDT.
Текстовые шаблоны в EDT настраиваются здесь:
Window -> Preferences -> 1C:Enterprise -> Languages -> V8 -> Templates
Использование встроенных шаблонов гораздо эффективнее, так как они позволяют не только вставлять текст "DOM", но и сразу расставлять курсор в нужное место или добавлять необходимые блоки кода, не конфликтуя с системными настройками клавиатуры.
Таким образом, мы выяснили, что проблема решается либо «сверху» (через настройки EDT), либо «снизу» (через редактирование раскладки). Для большинства пользователей оптимальным будет Способ 1, так как он не требует переустановки системных компонентов и позволяет гибко настроить рабочую среду под свои задачи.