Войти
fadetoblackСтатьи

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

Автор:

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

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

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

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

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

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

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

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

  Для начала, вам нужен текстовый редактор или IDE, которая поддерживает гибкую настройку сочетания клавиш (Microsoft Visual Studio, vim, Notepad++ и другиe текстовыe редакторы, основанныe на Scintilla).

  Как уже было сказано, метод основан на переносе клавиш управления курсором на основной клавишный блок клавиатуры. Сочетания клавиш для самого основного действия - движения курсора влево, вправо, вверх и вниз выглядит следующим образом:

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

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

  Первая проблема - это то, что в ОС Windows клавиша Alt является клавишей для быстрого вызова команд меню и при ее нажатии мы получаем выделение пункта меню, по которому далее мы сможем ориентироваться с помощью клавиш курсора. Такая проблема отсутствует в Visual Studio, в Notepad++ решается использованием полноэкранного режима. Насчет других редакторов конкретно сказать не могу - к каждому нужен свой подход.

  Вторая проблема - это забывание отпустить клавишу Alt при нажатии таких клавиш, как Enter или Backspace (если ваш мизинец все же до нее дотягивается). Решается назначением соответствующего действия на сочетания Alt+Enter и Alt+Backspace.

Ну и для наглядности:
Раскладка клавиатуры с переназначенными клавишами | Оптимизация набора текста программ

Настройки сочетания клавиш для Microsoft Visual C++ 2008 Express Edition:
Чтобы применить параметры воспользуйтесь: Сервис->Импорт и экспорт параметров...
Не забудте сохранить свои настройки, вдруг не понравится.

В дополнение к вышесказанному, хотелось бы заметить, что существует еще программа для переназначения сочетаний клавиш средствами операционной системы. Называется эта программа 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

#Vim, #Visual Studio, #кодирование, #набор текста

18 ноября 2010 (Обновление: 25 ноя. 2010)

Комментарии [22]