Оптимизация набора текста программ

от автора

Работа программиста в момент написания программы обычно состоит из двух основных составляющих:

  • Активный мыслительный процесс
  • Взаимодействие с компьютером через интерфейсы (клавиатура, мышь, монитор, и. т д.)

Проще говоря, программист думает и пишет код. Чем меньше программист пишет код, тем больше думает, и наоборот. Если процесс написания кода связан с некоторыми неудобствами (нужно смотреть на клавиатуру, нужно совершать много лишних движений и т. д.), то это, безусловно, отвлекает его от процесса мышления.

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

Самым первым шагом к этому является, конечно же, обучение слепому методу набора текста. Освоив такой метод, вы навсегда забудете о преграде между вами и вычислительной машиной. Вы забудете, что такое клавиатура и как она выглядит. Когда вы полностью обучитесь этому методу, вы забудете, что текст набирается руками, и для вас будет существовать только мысль, которая по вашему желанию очень быстро окажется напечатанной на экране монитора. Существует множество программ и сайтов для обучения десятипальцевому слепому методу печати (например, довольно известная программа «Соло на клавиатуре»)

Следующим шагом будет оптимизация процесса набора текста. Слепой десятипальцевый метод прекрасно регламентирует то, каким пальцем и когда набирать тот или иной символ. Но существует проблема, которая мешает постоянно держать пальцы на клавиатуре в определенном положении и иногда приходится все же совершать лишние движения. Дело в том, что клавиши управления курсором (Left, Right, Up, Down, PageUp, PageDown, Home, End, Delete, Backspace) находятся слишком далеко от основного блока клавиатуры, что мешает ими пользоваться, не совершая лишних движений.

Частично, эта проблема решается, если использовать укороченную клавиатуру (как у ноутбука). Клавиши ближе, движений меньше. Клавиши движения курсора нажимаются пальцами средним, безымянным и мизинцем. По началу, это не совсем удобно, но привыкнув, можно довольно неплохо оптимизировать процесс набора текста.

С появлением современных текстовых редакторов и IDE, которые позволяют очень гибко настраивать сочетания клавиш, стал возможным и другой способ оптимизации набора текста — перенос клавиш управления курсором непосредственно на основной клавишный блок. Я предлагаю свой способ настройки сочетания клавиш, которым пользуюсь уже более 10 лет. Сочетания клавиш для самого основного действия — движения курсора влево, вправо, вверх и вниз выглядит следующим образом:

Alt+J — Left
Alt+L — Right
Alt+I — Up
Alt+K — Down

Выглядит пугающе, но на самом деле это не так страшно, если разобраться. Посмотрев на эти клавиши на клавиатуре, вы обнаружите, что они располагаются точно так же, как и стандартные «стрелочки» (ну, или как WSAD, который давно уже стал стандартом управления в различных играх). Выбор именно этих клавиш обусловлен тем, что при десятипальцевом слепом методе печати правая рука находится именно на этих клавишах, что позволяет вообще не перемещать руку для управления курсором. Клавиша Alt нажимается большим пальцем левой руки.

Вам также необходимо настроить сочетания клавиш для выделения текста (предполагается, что для Copy, Cut и Paste используются Contol+C, Control+X, Control+V соответственно).

Alt+Shift+J — LeftExtend
Alt+Shift+L — RightExtend
Alt+Shift+I — UpExtend
Alt+Shift+K — DownExtend

Следующие операции, которых нам не хватает — это Home, End, PageUp, PageDown:

Alt+U — Home
Alt+O — End
Alt+P — PageUp
Alt+/ — PageDown

И нужно еще настроить сочетания клавиш для выделения текста:

Alt+Shift+U — HomeExtend
Alt+Shift+O — EndExtend
Alt+Shift+P — PageUpExtend
Alt+Shift+/ — PageDownExtend

Еще одна очень важная клавиша находится неприятно-далеко:

Alt+H — Backspace

Для реализации переназначения клавиш я использую программу AutoHotkey.
Для назначения действий на сочетания клавиш программа использует скриптовый язык.
Ниже приведен скрипт, который задает сочетания клавиш вышеописанного метода управления курсором.

;---------------------------------------------- ; Alt+I = Up ;----------------------------------------------  !sc017:: Send {Up} return  !+sc017:: Send +{Up} return  ;---------------------------------------------- ; Alt+J = Left ;----------------------------------------------  !sc024:: Send {Left} return  !+sc024:: Send +{Left} return  ;---------------------------------------------- ; Alt+K = Down ;----------------------------------------------  !sc025:: Send {Down} return  !+sc025:: Send +{Down} return  ;---------------------------------------------- ; Alt+L = Right ;----------------------------------------------  !sc026:: Send {Right} return  !+sc026:: Send +{Right} return  ;---------------------------------------------- ; Alt+U = Home ;----------------------------------------------  !sc016:: Send {Home} return  !+sc016:: Send +{Home} return  ;---------------------------------------------- ; Alt+O = End ;----------------------------------------------  !sc018:: Send {End} return  !+sc018:: Send +{End} return  ;---------------------------------------------- ; Alt+P = Page Up ;----------------------------------------------  !sc019:: Send {PgUp} return  !+sc019:: Send +{PgUp} return  ;---------------------------------------------- ; Alt+/ = Page Down ;----------------------------------------------  !sc035:: Send {PgDn} return  !+sc035:: Send +{PgDn} return  ;---------------------------------------------- ; Alt+H = Backspace ;----------------------------------------------  !sc023:: Send {BackSpace} return  ;---------------------------------------------- ; Alt+; = Delete ;----------------------------------------------  !sc027:: Send {Delete} return  #HotkeyInterval 1 #MaxHotkeysPerInterval 200

Статья впервые была опубликована на сайте GameDev.ru, 18 ноября 2010 года

Всем спасибо за внимание!


ссылка на оригинал статьи https://habr.com/ru/post/476410/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *