← blog

Почему hjkl? Виноват терминал 1978 года

2026-07-173 min readBeginner
#история#движения

Любой новичок задаёт этот вопрос в первые тридцать секунд: почему стрелки живут на h, j, k, l?

Честный ответ состоит из двух половин. Историческая — случайность. Практическая — причина, по которой случайность не исправили за пятьдесят лет.

Случайность

Билл Джой написал vi в 1976 году в Беркли. Написал на том терминале, что у него был: Lear Siegler ADM-3A.

Найдите фотографию этой клавиатуры. На ней нет стрелок — точнее, они есть, и нарисованы прямо на клавишах h, j, k, l. Эти четыре клавиши работали на две ставки: обычно буквы, а с зажатым Control — перемещение курсора.

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

Вот и всё. Вся история. Самая узнаваемая черта самого принципиального текстового редактора в мире — это решение по раскладке, принятое производителем терминалов, который разорился десятки лет назад.

Раз уж смотрите на фото, обратите внимание ещё на две вещи. Escape стоит там, где у вас Tab — вплотную к Q, достаётся ленивым мизинцем. А Control — там, где Caps Lock. Половина эргономики Vim рассчитана на клавиатуру, которой почти ни у кого нет со времён Картера.

Почему это всё-таки выжило

Вот что удивляет: случайность оказалась правильной — по причине, не имеющей отношения к 1978 году.

Положите правую руку на домашний ряд. Указательный палец лежит на j. Теперь h, j, k, l — прямо под четырьмя пальцами, которые уже там. Курсор двигается, рука не двигается.

А теперь потянитесь к стрелкам. Рука уходит с домашнего ряда в правый нижний угол, делает своё дело и возвращается. Потом пальцы заново нащупывают позиции — доля секунды, каждый раз.

Этот поход туда-обратно и есть весь аргумент. Не скорость набора — положение рук. Весь дизайн Vim исходит из того, что руки не уходят с домашнего ряда; поэтому и выход из режима вставки, и операторы, и счётчики, и текстовые объекты втиснуты в три средних ряда.

Стрелки это допущение ломают. hjkl — сохраняет. То, что это нашли случайно, не делает его менее верным.

Где какая

Мнемоника, которая правда работает:

Кому-то ближе: j похожа на стрелку вниз. В любом случае вы перестанете об этом думать примерно через двадцать минут использования — навсегда.

Ловушка, которой стоит избежать

Vim поддерживает стрелки. Они работают. В этом и проблема.

Если оставить себе стрелки как запасной выход, вы будете ими пользоваться — потому что они привычны, а hjkl пока нет. Через две недели вы всё ещё будете тянуться, руки всё ещё будут уходить с ряда, и вы сделаете вывод, что знаменитая эргономика Vim переоценена — так её и не попробовав.

Многие на первые две недели отключают стрелки именно поэтому. Это не пуризм. Просто выгода появляется по ту сторону привычки, а стрелки держат вас по эту.

Суть

hjkl — не самое интересное в Vim. Это шлагбаум: маленькое, слегка нелепое препятствие перед настоящей вещью — грамматикой редактирования текста.

Но объехать его нельзя, потому что все остальные команды рассчитаны на руки в домашнем ряду. Так что заплатите пошлину сразу. Она стоит один вечер.

Первая ката — это только hjkl. Минута в браузере, и это последний раз, когда вы задались этим вопросом.