Я часто слышу жалобы на то, что языки программирования, в которых для краткости широко используются символы, в первую очередь C и C ++ (я не собираюсь касаться APL), трудно печатать, потому что они требуют частого использования клавиши Shift. Год или два назад я сам устал от этого, загрузил Microsoft Keyboard Layout Creator , внес несколько изменений в свой макет и ни разу не оглядывался назад. Разница в скорости поразительна; с этими несколькими простыми изменениями я могу набирать код C ++ примерно на 30% быстрее, конечно, в зависимости от того, насколько он сложен; Лучше всего то, что моя скорость набора обычного текста не снижается.
Мои вопросы таковы: какие альтернативные раскладки клавиатуры существовали для программирования, которые приобрели популярность, используются ли какие-либо из них в настоящее время, используете ли вы лично какую-либо измененную раскладку и как можно оптимизировать мою раскладку?
Я внес следующие изменения в стандартную раскладку QWERTY. (Я не использую Dvorak , но стоит упомянуть макет программиста Dvorak .)
- Поменяйте местами числа с символами в верхней строке, потому что длинные или повторяющиеся буквальные числа обычно заменяются именованными константами;
- Замените обратную кавычку тильдой, потому что обратные кавычки редки во многих языках, но деструкторы распространены в C ++;
- Поменяйте местами минус с подчеркиванием, потому что символы подчеркивания распространены в идентификаторах;
- Замените фигурные скобки квадратными скобками, потому что блоки встречаются чаще, чем индексы; а также
- Замените двойные кавычки на одинарные, потому что строки встречаются чаще, чем символьные литералы.
Я подозреваю, что последнее, вероятно, будет самым спорным, поскольку больше всего мешает бегущему тексту, требуя использования сдвига для ввода общих сокращений. Этот макет значительно увеличил мою скорость набора текста в C ++, C, Java и Perl и несколько увеличил ее в LISP и Python.
источник
Ответы:
Я по-прежнему считаю, что скорость набора текста не является основным фактором, определяющим время, необходимое для завершения проекта. Если да, то это большая проблема (недели написания кода экономят нам часы планирования).
Что касается вашего вопроса, я предпочитаю использовать стандартную раскладку, поскольку это означает, что мне не нужно тратить первые 10 минут на глупый вид, когда я представляю стандартную раскладку клавиатуры.
Некоторые из предложенных вами замен, например, верхний ряд со специальными символами не имеет никакого значения, поскольку внешний палец с другой стороны должен перемещаться одновременно.
IMHO Одна вещь, которая помогает выше цепочки макетов, - это использование только сочетаний клавиш. Рекомендуются Vim и Emacs. Это позволяет перемещать текст намного быстрее.
источник
Я бы подошел к вашему вопросу следующим образом. Задача состоит в том, чтобы организовать клавиатуру таким образом, чтобы минимизировать нажатия клавиш и движение руки для заданного текста.
Шаги к возможному решению. Сделайте программу, которая:
Теперь вручную или написав программу. Измените свой макет следующим образом. Поместите наиболее часто используемый символ в центральное положение, ближе к вашей сильной руке. Второй символ относится к вашей слабой руке в центральном положении. Третий символ относится к вашей сильной руке ... и так далее. Затем вы постепенно перемещаетесь из центрального положения рук в более «дальние» области клавиатуры. Когда вся клавиатура заполнена, вы продолжаете процесс назначения клавиш, но на этот раз с нажатой клавишей Shift. Другое отличие состоит в том, что вы не поворачиваете сильную и слабую руку для каждого символа, когда Shift опущен. Если сначала нажать клавишу Shift, вы заполните центральные позиции на клавиатуре, а затем переместитесь на более отдаленные позиции.
Когда вы сделаете все это, повторите шаг 3 для нового макета, чтобы увидеть, как он был улучшен.
Возможно, вам придется всегда носить с собой клавиатуру. С другой стороны, никто не будет трогать ваш компьютер. Вы будете выглядеть профессионально.
Наконец, не забудьте поделиться своими выводами.
источник
Сейчас я играю с вариантом раскладки Colemak с сильными изменениями символов:
без SHIFT:
`- {} []; <> () _ =
qwfpgjluy * / # \
arstdhneio '
zxcvbkm,. !
с SHIFT:
~ 1 2 3 4 5 6 7 8 9 0 & +
QWFPGJLUY @ ^ $ |
ARSTDHNEIO "
ZXCVBKM%:?
Может восстановлю ключ / ...
Но это не основано на каких-либо исследованиях звука, и я также хотел бы увидеть оптимизированный макет (оптимизация, включая такие вещи, как ручное изменение и т. Д., Также сохранение ZXCV, ...) с корпусом на основе исходного кода, потому что все эти макеты кажутся быть оптимизированным только для прозы. Например, «f» - очень распространенная буква в C (если, для).
Обновление: сейчас я использую
`- {} [] @ <> () _ =
qwkgeryulp *; #
asftdhneio '\
\ zxcvbjm,. /
с SHIFT:
~ 1 2 3 4 5 6 7 8 9 0 ^ +
QWKRGYULP &! $
ASFTDHNEIO "|
| ZXCVBJM%:?
Это основано на частичной оптимизации с заменой 6 клавиш, взятой из Carpalx с сохранением обычных сочетаний клавиш «Вырезать / Копировать / Вставить / Отменить» и модифицированной, чтобы обеспечить лучший доступ к обычным программным символам.
источник
Сделайте простой регистратор ключей, затем подсчитайте количество нажатий каждой клавиши. Запустите его в течение дня или двух, затем сохраните результат в текстовый файл. Делайте это время от времени. Не имеет значения, какой макет вы используете, поскольку вы просто видите, какие клавиши используются чаще всего.
Если вы хотите сделать хороший макет, не бойтесь отойти от нормы. Я бы посоветовал разместить 11 верхних клавиш в главном ряду, затем следующие 11 верхних клавиш в качестве верхнего ряда (оставьте 2 клавиши над клавишей возврата в качестве наименее используемых клавиш), затем 3-е верхние 11 клавиш в качестве нижнего ряда. . Теперь должно остаться 4 ключа. Возьмите их и поместите в слоты - = и] \. Поздравляю! Вы создали отличную раскладку клавиатуры для своих целей! = D
источник
В целом, я думаю, что иметь хороший текстовый редактор и знать, как им пользоваться, лучше, чем пытаться улучшить скорость набора текста. Возможность записывать и воспроизводить макросы иногда является спасением, и выбор фрагментов кода, назначенных ярлыком, может быть удобен, потому что обычно существуют ограничения, накладываемые языком на то, что можно превратить в библиотеку.
В целом, я думаю, что настоящие средства повышения производительности - это знания ...
FWIW, я не претендую на то, чтобы быть сильным во всем этом. Я всегда был слишком пристрастен к решению проблем сам и слишком сильно склонен изобретать колесо и грандиозные архитектурные схемы.
В любом случае, у меня есть подозрение, что время, потраченное на изменение и изучение раскладки клавиатуры, отвлечет от более важных проблем.
источник
Изменение раскладки клавиатуры - плохая идея, поскольку это (возможно) повысит вашу скорость набора текста на одной клавиатуре, но серьезно повредит вашей скорости набора текста на других клавиатурах или на компьютерах, где у вас нет специальной раскладки клавиатуры. Я обнаружил, что часто лучше приспособиться к настройкам по умолчанию, чем менять их везде. (Лично мои пальцы сильно смещены в сторону Emacs, что вызывает сильное трение при наборе текста повсюду.)
источник