Comments 116
Vi режим более знаком виммерам, однако есть один существенный недостаток: нет индикатора текущего режима.
И при этом в документации по приведенной ссылке написано:
show-mode-in-prompt
If set to `on', add a character to the beginning of the prompt indicating the editing mode: emacs (`@'), vi command (`:'), or vi insertion (`+'). The default value is `off'.
Это сравнительно недавнее добавление, начиная с readline 6.3 (эта версия вышла полтора года назад). И как-то все по привычке считают, что индикатора нет.

Так что добавляете set show-mode-in-prompt On в ~/.inputrc
и получаете...


P.S. Коды символов удобно смотреть в man ascii.
А почему для «Вырезать предыдущее слово» и «Вставить вырезанное ранее» указана одна и та же комбинация «Ctrl-w»? Вырезание работает, а вставка — это видимо что-то еще.
Когда я был «маленький» я тоже много говнокодил и активно изучал mouse-less. Я смеялся над умными книгами, где говорилось, что в среднем программист пишет 10 строк кода в день. Ха-ха! же несколько тысяч мог накодить! Когда я стал «старым» и медлительным, я анализировал проекты своей молодости которые ушли в продакшн и, с учетом отладки, тестирования, исправления багов и пр. — картина не радужная. В итоге получается, конечно не 10 строк в день, но и завершенными проектами эти поделки назвать сложно. А чтобы их завершить нужно… взять и выкинуть все в мусорку. Сейчас, даже если у меня отнять руки, взяв карандаш в зубы и тыкая по клавиатуре один символ в минуту я сделаю это лучше и быстрее, потому как 99% времени у меня уходит на размышления, а не на клацанье по клаве.
Вы правы, на размышления уходит времени достаточно, по крайней мере для того, чтобы несколько раз «сгонять» за мышью. Хотя существуют ситуации, когда думать приходиться гораздо быстрее и вот тут безмышиные навыки приходят на помощь. ИМХО: когда сильно устаешь (обычно на завершающем этапе) сил на переброс руки на мышь уже не хватает. Спасибо за материал, вещь нужная, себя нужно любить)
это как же надо устать, чтобы не хватало сил перебросить руку до мышки, но при этом хватало сил подумать над кодом который пишешь
Сейчас, даже если у меня отнять руки, взяв карандаш в зубы и тыкая по клавиатуре один символ в минуту я сделаю это лучше и быстрее

Думаю ваши нервы сдадут после нескольких минут такого кодинга и вы вернетесь к классической схеме набора кода. Так же у меня они сдают, когда приходится пользоваться мышкой.
Никому не интересно, пишите вы 10 или тысячи строк кода, главное — быстро шипать. Шипать, пока продукт еще нужен рынку. Пока вы философствуете о лучших практиках и рассуждаете как нужно делать, ваши конкуренты уже что-то тестируют и понимают более важные проблемы продукта, чем проблемы кода.

Идеально — найти баланс между качеством кода и скоростью шипинга.

Я уверен, что сейчас этот комментарий наберет -(рейтинг вашего комментария), но это сказать было нужно. Но может быть это все еще мой максимализм.
Идеально — найти баланс между качеством кода и скоростью шипинга.
Мне кажестся, что противополстовлние скрости разработки и качества — миф.

Я видел и ужасный код, написанный после долгих философских рассуждений, и погоню за скоростью, в которой развитие кода топчется на месте из-за поразительного количества копипаста, и тысячи велосипедов, возникающих из-за того, что люди начинают думать о шипинге вместо изучения существующих решений в области. В то же время хороший код зачастую оказывается вполне лаконичным.
Минусов, я думаю, вы не нахватаете, потому что во многом вы правы. Но баланс между скоростью (много бесполезного не поддерживаемого кода) и качеством (меньше кода, легко разобраться и поддерживать) вы найдете только с опытом. Бесполезно прочитав «умную» книжку тратить уйму времени над обмыванием «идеальной» архитектуры. Все ваши измышления уйдут в топку, как только вы столкнетесь с реальностью. Анализируйте ваши предыдущие проекты, делайте выводы, оптимизируйте процесс разработки. Ну а тренинги по оптимизации клацания по клаве вещь во многом полезная, но реального профита для разработки не дает, разве что произвести впечатление на коллег или начальника.
Оно конечно звучит красиво. Но вы проведите эксперимент. Возьмите карандаш в зубы и попробуйте написать Hello World на любимом языке программирования. Эксперименты вещь полезная. Они обладают отрезвляющим эффектом.
Вообще-то пост не о этом. Но ради эксперимента попробовал — 5 минут на С++. Безумно много, согласен. Но это 100 строк за рабочий день. Разуметься тыкать карандашом по клаве по 8 часов подряд у меня не получиться, но если случиться несчастье — то именно эта та практика, которую имеет смысл практиковать. И слепые умудряются кодить
Пост не о том, а вот ваш комментарий именно о том :).

Клавиатурой программист не только набирает код, но и занимается навигацией по нему. И вообще делает много всего. Что касается возможных несчастий — я читал посты людей, встретившихся с RSI, варианты решения у тех, кто не покинул профессию — голосовой набор или медленная печать двумя руками с обширным использованием хоткеев и IDE. Хоть вообще о таком страшно даже думать :(.

Слепым без клавиатуры вообще никак. По очевидным причинам.

Вообще я хочу вот что сказать. Все эти клавиатурные трюки нужны не для скорости. Они для того, чтобы управлять компьютером и в том числе печатать было удобно. Я бы делал всё это даже если бы это замедляло скорость набора текста, потому что такой стиль работы сильно разгружает мозги.

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

Это как с каратистами, боксёрами или самбистами — они все будут утверждать, что сила не главное и со спортивным успехом не коррелирует. Только вот шансы победить в армрестлинге каратиста или боксёра очень невелики, а с самбистом их и вовсе нет.
UFO landed and left these words here
Вот бы кто еще объяснил, почему в различных screen-tmux-mosh все время слетают различные комбинации (типа Shift-F5) или даже просто управляющие клавиши (F5, PgUp и т.д.), например, в midnight commander. Почему все эти tmux-screen-mosh вообще что-то делают с кодами приходящих клавиш вместо того, чтобы просто отправлять их дальше.
UFO landed and left these words here
А я запускаю
term_reset () {
    emulate -L zsh
    [[ -n $TTY && -n $terminfo ]] && {
        echoti rmacs
        echoti sgr0
        echoti cnorm
        echo -n $'\e[?47l'
    }
}
перед каждым показом приглашения ко вводу.
UFO landed and left these words here
Какой режим? Здесь делаются пять вещей:
  1. Графический режим переключается в нормальный (графический — это когда вместо многих ASCII символов печатается всякая ересь вроде частей таблиц).
  2. Убирается цвет (вообще‐то абсолютно ненужная мне часть: powerline делает то же самое).
  3. Включается отображение курсора.
  4. (После echoti cnorm должно было идти ещё и echoti smkx, это я просто не сделал source ~/.zshrc в оболочке, из которой брал term_reset.) Переключается в режим «keyboard transmit».
  5. Отключается alternate screen.
Я не могу представить себе ситуацию, когда мне
  1. нужно использовать графический режим (в этом режиме невозможно нормально печатать),
  2. оставлять цвет (да и не влияет отсутствие этой строки ни на что),
  3. отключать курсор (а здесь нельзя нормально редактировать напечатанное),
  4. использовать разное состояние keyboard transmit (приведёт к тому, что некоторые приложения станут работать некорректно: смотрите github.com/fish-shell/fish-shell/issues/2139 и ссылки внутри) или
  5. смотреть оболочку в alternate screen (здесь не виден scrollback, либо scrollback виден только от основного экрана).


Эти строки были собраны в результате просмотра последствий вывода бинарных файлов на терминал и крэшей [Neo]Vim.
UFO landed and left these words here
Так я спрашиваю потому, что не вижу никаких причин использовать что‐либо из отключаемого таким образом функционала. Но возможно, я что‐то пропускаю из‐за такого отношения.

Если что, данный код, будучи запускаемым только перед command prompt никак не мешает другим приложениям явно пользоваться графическим режимом (хотя я таких приложений не видел вообще), цветами, отключением курсора, другим режимом keyboard transmit или alternate screen. Только интерактивный zsh не сможет использовать ничего из списка.
UFO landed and left these words here
Здесь проблема не с потерянным вводом — с ним‐то как раз ничего плохого не происходило, — а с тем, что после того, как вы случайно написали cat /some/binary, или у вас свалился Vim во время тестирования, пользоваться терминалом становится неудобно. Раньше такое решалось тем, что я вслепую набирал echo $'\ec'. Но это, насколько я помню, для чего‐то не работало (кажется, не переключало keyboard transmit режим, из‐за чего некоторые приложения переставали адекватно воспринимать стрелочки), да и, в отличие от term_reset, \ec очищает экран.

Кстати, stty sane моя функция никак не заменяет. Но это и не нужно: у zsh есть ttyctl -f (-f[reeze]), замораживающая (некоторые) настройки терминала. Вот этот эффект мне иногда приходится отменять.
Не убираю руки с клавиатуры, потому что под ней маковский тачпад. Это намного эффективнее заучивания сотен шорткатов, правда требует отсутствия предрассудков. Ещё не должно быть желания изо дня в день превращать себя в робота, которому, видите-ли, по каким-то причинам труднодоступны Delete, Backspace, Escape или даже Enter.
Кстати, интересная идея использовать тачпад, не убирая рук с позиции. Только как быть с мультитачем? Используете два больших пальца для скрола?
не знаю как на маковских, но на Thinkpad-клавах есть средняя кнопка для этого
И есть трекпоинт с которым вообще ничего не надо никуда двигать, а только слегка сместить палец.
супер удобное решение. Жаль, что они не так распространены, и даже внешнюю клавиатуру с трекпоинтом и купить
Да.

Правда сама маковская клавиатура не блещет, например на ней нет Insert, Delete, (комбинации с Fn) PrintScreen и т.п.
тачпад да — удобный, только на маке я перестал хотеть взять мышку, потому что тачпад реально удобнее.

Потом через несколько лет, при постепенном плановом уходе от маковской техники (как оказалась у неё есть очень неудобные минусы) с удивлением обнаружил что почти такой же по удобству тачпад есть на недорогом Dell Inspiron, который еще и под ubuntu хорошо работает.
Самое грустное, что там нет PageUp / PageDown. Остальное всё можно пережить.
Это, конечно, так. Можно и просто пробел нажимать, чтобы вниз листать. И тачпад изумительный близко. Но мне всё-равно хочется отдельные кнопки для этого. Fn от курсорных клавиш ну очень уж далеко расположена, я люблю хоткеи, которые одной рукой доступны.
Нет, кистью (одной из) нужно двигать, скролл обычным способом. Просто не обязательно держать руки в одном положении, не отрывая от основных клавиш, это искусственное ограничение.
Просто не обязательно держать руки в одном положении, не отрывая от основных клавиш, это искусственное ограничение

Какой же это слепой, десятипальцевый метод тогда?
Это же движение кистью делается, как перевели пальцы на тачпад, так и перевели обратно. Рука не отрывается от поверхности. Я люблю отрывать, но это уже дело привычки, потому что я печатаю как бог, а не как слепой.
Рука не отрывается от поверхности

В слепом, десятипальцевом методе рука должна не отрываться от sdfjkl, а не от поверхности.
Это намного эффективнее заучивания сотен шорткатов

Не соглашусь с вами. Можем провести эксперимент. Уверен, у меня набор текста, работа с git, дебагинг и тестирование намного быстрее вашего будет ;)
К сожалению часовая запись может уложить мой ASUS, потому предлагаю коротенькое видео.
Видео

Спасибо за собранную в кучу таблицу, удобно.
Хочу дополнить список полезных сочетаний в shell(bash) перемещение по истории команд:
ctrl+r — поиск по командам (вдруг кто не знает)
Alt+> — самая последняя команда в списке истории
Alt+< — самая первая команда.
Если история команд используется очень активно, то Alt+> порой проста необходима.
Интересный вопрос: если «проскочил» нужную команду в ctrl+r, как вернуться на одну команду назад?
У меня — <C-n>/<C-p>. Но это ZLE с bindkey -M isearch "\C-n" "history-incremental-pattern-search-forward". Исходя из man readline, я думаю, что <C-s> должен работать (найдите в man C-r и посмотрите соседей). Только <C-s> — это tty stop по‐умолчанию, и перед использованием придётся что‐то переназначить — либо через stty, либо в настройках терминала.
Я с этим Ctrl+w регулярно закрываю вкладки, когда хочу слово стереть
Не совсем ясно что значит
Ctrl-_

На сколько я понял это
Ctrl+Shift+-

?
Стоит еще добавить комбинации 'ALT+.' или 'ESC + .' — перебирают аргументы предыдущих команд.
Дополню. Если вам приходится работать в консоли Windows и вы хотите пользоваться этими сочетаниями (и другими плюшками), установите себе Clink.
«Безмышиный» здесь больше подходит, потому что «Безмышечный» — это когда отсутствуют или не задействованы мышцы. При наборе текста они все равно используются
Полностью согласен, я думаю нужно просто в скобках добовлять mouse-less
Спасибо за статью.
На счет «Начало строки: Ctrl-a»
Может кто-нибудь знает как это исправить в терминале screen?
Я для себя эту проблему решил перебиндив кнопки в screen, а именно:
escape ^pp # suggested binding for emacs users
После небольшого привыкания так даже удобнее и не перекрывает кнопки в vim.
Я использую ,i (к началу строки)/,a (к концу строки), в том числе в readline. В Vim <C-e> — довольно полезное сочетание, <C-a> забито screen’ом/tmux (с биндингами от screen, а так у него <C-b>).

Если быть точнее, то ,i — к первому непробельному символу. С readline — к первому символу, т.к. я не знаю, как сделать «к первому непробельному символу» с readline.
Еще один лайфхак помогающий использовать все выше перечисленное: в настройках клавиатуры сделайте байндинг CAPS LOCK -> CTRL, лично мне очень помогает (особенно хорошо чувствуется в screen где много шорткатов начинающихся с ctrl-a, capslock-a нажимать гораздо удобнее чем ctrl-a).
Если вы держите руки в стандартной позиции для 10-пальцевой слепой печати, более удобно нажать Ctrl-m вместо того, чтобы тянуться мизинцем к энтеру.

Серьезно? Во-первых, любая комбинация сложнее нажатия одной клавиши. Во-вторых, на моей клавиатуре движение до энтера (мизинцем на две клавиши влево) короче, чем до контрола (две клавиши по диагонали наружу, я левой рукой даже дотянуться не могу, не передвигая руки). Ну а нажать ctrl-m, не двигая все пальцы, и вовсе невозможно.

(это, конечно, если смотреть на то положение, которое у вас на КДПВ)
Возможно у автора есть педаль ctrl, кастомная клавиатура или что вероятней капс лок переделан в ctrl.
Caps Lock-m — координация двух рук. Тоже сложнее, чем кажется.
Там как-то обойден тот замечательный момент, что движение двух пальцев сложнее координировать, чем одного.
Координнация двух пальцев на разных руках — такая вещь, которую умеют все, кто учился слепой печати. И большинство из тех, кто много занимается набором текста.

А вот необходимость постоянно гнуть запястный сустав чтобы переместить мизинец на две клавиши вправо — верный путь к RSI.
Координнация двух пальцев на разных руках — такая вещь, которую умеют все, кто учился слепой печати. И большинство из тех, кто много занимается набором текста.

Умение координировать не означает, что координировать легче, чем не координировать.

А вот необходимость постоянно гнуть запястный сустав чтобы переместить мизинец на две клавиши вправо — верный путь к RSI.

Эээ, а зачем для этого запястный сустав гнуть? Просто мизинец вытянуть мало?
Умение координировать стирает для человека разницу между скоординированым и не координированым движением.
Эээ, а зачем для этого запястный сустав гнуть? Просто мизинец вытянуть мало?

Пальцы правой руки лежат на JKL;. Указательный на J, мизинец на;. То есть для нажатия Enter надо подвинуть мизинец на одну клавишу вправо. Если клавиши стандартного размера, то для того, чтобы сделать это, не задействовав запястный сустав, нужно сильно напрячь мизинец, что в общем достаточно болезненно и уж точно гораздо медленне, чем Control+m. Это, кстати, на моей клавиатуре. На клавиатуре, изображённой на рисунке в топике, между мизинцем и Enter вообще две клавиши.
Умение координировать стирает для человека разницу между скоординированым и не координированым движением.

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

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

Странно, а мне — не нужно (и совершенно не болезненно).
Не знаю, что у вас за пальцы и клавиатура, но для нажатия на <C-> (который на CapsLock) мне можно запястье не двигать. А для нажатия на <Enter> (который через клавишу: Steel Series 6GV2) нужно. Если не двигать, то будет напряжней и дольше.
Вы говорите, что разница между скоординированым и одиночным движением не стирается с опытом, потому, что скорость одиночных движений растёт и кроме того делать их с каждым разом всё легче. Соответственно, хотя качество скоординированых нажатий тоже растёт, разница между скоординированным и одиночным движеним остаётся постоянной.

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

Теперь мы имеем полсекунды на одиночное действие и три с половиной секунды на координированное. Казалось бы ваша точка зрения верна. Но история на этом не кончается. Полсекунды — физиологический предел для нажатия одной клавиши. Возможно на самом деле он меньше, но в любом случае наш подопытный достаточно быстро его достигнет и скорость одиночного движения расти перестанет.

А вот время координации продолжит падать, пока, в конце концов, не сократится настолько, что человек перестанет его замечать. И тут разница между одиночным и координированным нажатием исчезнет.
А вот время координации продолжит падать, пока, в конце концов, не сократится настолько, что человек перестанет его замечать.

Откуда у вас такая уверенность?
Время нажатия клавиши ограничено скоростью распространения нервных импульсов и физическими свойствами мышц.

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

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

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

По моему, начиная с одной пятой секунды разница уже не ощущается.

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

(смешное развлечение: положите обе руки на стол, так, чтобы все пальцы кончиками касались столешницы. Теперь поочередно постучите одновременно одноименными пальцами каждой руки: сначала обоими большими, затем обоими средними, и так до мизинца. «Постучите» — это несколько раз подряд одним и тем же пальцем. Остальные пальцы в это время должны оставаться на столешнице (или хотя бы не стучать по ней). Сравните степень «одновременности» для разных пальцев. Найдите ту скорость, с которой вы можете стучать пальцами разных рук гарантированно одновременно. Сравните ее со скоростью, с которой вы можете стучать одним (тем же) пальцем на одной руке. Если не надоело — сравните со скоростью одновременного движения двух пальцев на одной руке.)
Вот это номер! У меня точно такая же! Жать Enter мизинцем, не задействуя запястье реально тяжело и по субъективным ощущениям ведёт к травме.
Ну, вы не забывайте, что у людей отличаются не только клавиатуры, но и руки — включая их тренированность.
Ну я помню, да. Но подозреваю, что людей с такими руками, как у меня — подавляющее большинство.
Если CapsLock перемаплен на Control, то Сontrol+m раза в 2 быстрее. И раз в 10 приятнее.
То есть сработает уже не на любой клавиатуре. Приятно, да.
На любой клавиатуре, на которой есть CapsLock :). Там хабра съел часть. На всякий случай продублирую сюда правленый вариант.

Если CapsLock переделан в Control, то <C-j> быстрее потому, что CapsLock стоит слева от клавиши a, на которой лежит мизинец. А Enter находится через клавишу вправо от ;, на которой лежит мизинец правой руки.
Я боюсь, что на моей клавиатуре вы получите просто 'M' вместо перевода строки.
Я правил сообщение выше, оказалось, что правил не то, которое надо было править, но теперь уже ничего изменить не могу. Прошу прощения.

Насчёт вашей клавиатуры — уверен, что если её воткнуть в мой компьютер — будет работать прекрасно :).
Мне кажется, вы прекрасно понимаете, о каком сценарии я говорю. Мне вот часто приходится сидеть за чужими компьютерами, и даже различия в переключении раскладки клавиатуры раздражают, хотя это редко нужно. А уж Caps вместо Ctrl — ненене.
Если речь идёт о работе на чужом компьютере, то о собственном комфорте естественным образом приходится забыть, это правда.

Я был уверен, что мы обсуждаем работу на своей машине. На мой взгляд, собственное рабочее место, как и свои привычки, нужно максимально кастомизировать под свои нужды. Когда я осознал, что переключение окон по Alt+Tab требует запоминать в каком окне ты был до текущего, я отказался от этой порочной практики и повесил используемые прораммы на хоткеи. Когда я понял, сколько раз в минуту!!!! перевожу взгляд с монитора на клавиатуру и обратно, я стёр с клавиш буквы и научился печатать не глядя. Когда прикинул, сколько раз в день жму Control — сделал дополнительный Control на CapsLock.

Если окажется, что можно сделать работу ещё комфортнее, пусть ценой большего дискомфорта при временной пересадке за другой компьютер — я сделаю это не задумываясь. Ибо за своим я провожу больше половины своей же жизни.
На мой взгляд, собственное рабочее место, как и свои привычки, нужно максимально кастомизировать под свои нужды.

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

PS У меня вот три «своих» компьютера, и я несколько утомился поддерживать в синхронизации даже тот минимум настроек, который я использую.
Ну тот факт, что чем больше ты кастомизируешь, тем больше проблем на других компьютерах — неоспорим. Разногласия возникают, по поводу того, стоит ли удобство у себя дискомфорта в других местах.

Синхронизацию настроек приходится возлагать на средства автоматизации — решение не для всех.

Короче это отдельная, тоже очень интересная дискуссия, но, видимо, не совсем по теме данного топика.
Странно говорить, что Ctrl дальше чем Enter, да и тянуться за ним мизинцем до него тоже так себе удовольствие.
Я почитаю на хабре кучу полезных советов.
Проходит время. И чик, все забыл.

Решил с этим бороться.
Засунул вывод в терминале при старте:

Может пригодится кому-нибудь.
Perl Скрипт, который формирует это хозяйство здесь.
Текстовый вывод для /etc/motd здесь.
Ну это я со статьи взял, просто за основу.
Для себя я там кое-что удалил, кое-что наоборот добавил.
В том числе удалил и C-j.
Я еще не дошел до такого скила, чтобы юзать C-j, вместо Enter ))
Чем больше зазубрено шорткатов, тем круче скилл, несомненно.
А если забылось, то только потому, что мозг падла, а не потому, что знания по своей сути абсолютно бесполезные и не пригождаются на практике. *irony*
Если CapsLock переделан в Control, то <C-j> быстрее потому, что CapsLock стоит слева от клавиши , на которой лежит мизинец. А находится через клавишу вправо <;>, на которой лежит мизинец правой руки.
Я как‐то не замечаю разницы; наверное, с непривычки: хотя я вижу, что мне нужно перемещать кисть для <Enter> и <BS>, нажимаются они привычно быстро. А вот конкретно <C-j> в Vim иногда забирают под что‐то вроде умного автодополнения, потому что это довольно удобный <C-Space> (точнее, это <C-Space>, потому что Vim никогда нормально не переваривает нулевой байт, в том числе и здесь; в gvim такой проблемы нет). Ну и в dvorak особой разницы между <C-j> и <C-m> нет: что j, что m на нижнем ряду под указательным пальцем, только j ещё и на той же руке, что и переделанный CapsLock.

Кисть перемещается в любом случае, только с <Enter> она перемещается дальше.

PS: Я использую <code> вокруг сочетаний клавиш не потому, что мне нечем заняться, а потому что хабраредактор может выреза́ть всякие вещи, похожие на HTML тёг. В вашем сообщении явно что‐то пропущено.
Мне для удобной работы в консоли (кроме перечисленного) очень помог переход на dvorak-programmer. В основном это всякие вещи спецсимволы типа ;,.:<>'"/?@^-_\|, особенно минус, который часто используется в параметрах команд и теперь находится практически под мизинцем, и до которого теперь не надо тянуться. Ну и просто на английском печатать стало заметно проще.
Давно хотел попробовать. Скажите, а проблем с хоткеями нету? В часности в vim? Ведь они по сути рассчитаны на обычный qwerty.
За исключением hjkl никакого QWERTY тут нет и в помине. Остальное мнемоники вроде d[elete] или t[o]/f[ind]. Я нормально пользуюсь programming dvorak и иногда hjkl (чаще jk, hl намного реже). Просто помните, что в большинстве случаев быстрее использовать не hjkl.

В остальных приложениях обычно тоже сочетания привязаны к мнемоникам, связанным со значением сочетания, а не к положению клавиши на клавиатуре.
Первое время, конечно же, есть. А потом все выучивается, я в емаксе работаю (и во многих других программах), тут хоткеи что в кверти не супер удобны, что в двораке, не сильно поменялись. Есть еще путь переназначения всего на привычные положения, но я не рискнул по нему идти)
Ctrl + M на Mac-клавиатуре набирать определённо неудобнее, чем нажать Enter. А за статью спасибо.
Некоторые советы не работают…

По поводу «Вместо того, чтобы тянуться мизинцем к enter-у»…
Я вот не тянусь, у меня удобная клавиатура, и мизинец буквально висит над энтером, и я точно не промахнусь мимо Enter-а, а вот вместо ctrl-m вполне можно Ctrl-< нажать.

и Ctrl-w у меня уже стойкая ассоциация с закрытием вкладки/окна.

UFO landed and left these words here
Тут через почту человек попросил передать:
Есть маленький нюанс — далеко не во всех nix системах это поведение работает:)
Только что было проверено в AIX/HP-UX — половина не работает.
Выше уже отписывались о неработающих командах. Доступный набор команд в основном зависит от используемой оболочки, но могут быть и другие факторы (например, версия, конфигурация, способ взаимодействия с оболочкой, выставленный тип терминала). Стоит иметь это в виду и консультироваться со справкой в случае сомнений.
UFO landed and left these words here
В консоли cisco эти команды также работают, очень удобно. про сокращения из бонус таблицы не знал, спасибо.
Only those users with full accounts are able to leave comments. Log in, please.