Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Vi режим более знаком виммерам, однако есть один существенный недостаток: нет индикатора текущего режима.И при этом в документации по приведенной ссылке написано:
show-mode-in-promptЭто сравнительно недавнее добавление, начиная с readline 6.3 (эта версия вышла полтора года назад). И как-то все по привычке считают, что индикатора нет.
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'.
set show-mode-in-prompt On в ~/.inputrc
Сейчас, даже если у меня отнять руки, взяв карандаш в зубы и тыкая по клавиатуре один символ в минуту я сделаю это лучше и быстрее
Идеально — найти баланс между качеством кода и скоростью шипинга.Мне кажестся, что противополстовлние скрости разработки и качества — миф.
term_reset () {
emulate -L zsh
[[ -n $TTY && -n $terminfo ]] && {
echoti rmacs
echoti sgr0
echoti cnorm
echo -n $'\e[?47l'
}
}перед каждым показом приглашения ко вводу.echoti cnorm должно было идти ещё и echoti smkx, это я просто не сделал source ~/.zshrc в оболочке, из которой брал term_reset.) Переключается в режим «keyboard transmit».cat /some/binary, или у вас свалился Vim во время тестирования, пользоваться терминалом становится неудобно. Раньше такое решалось тем, что я вслепую набирал echo $'\ec'. Но это, насколько я помню, для чего‐то не работало (кажется, не переключало keyboard transmit режим, из‐за чего некоторые приложения переставали адекватно воспринимать стрелочки), да и, в отличие от term_reset, \ec очищает экран.stty sane моя функция никак не заменяет. Но это и не нужно: у zsh есть ttyctl -f (-f[reeze]), замораживающая (некоторые) настройки терминала. Вот этот эффект мне иногда приходится отменять.Просто не обязательно держать руки в одном положении, не отрывая от основных клавиш, это искусственное ограничение
Это намного эффективнее заучивания сотен шорткатов
<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-_
Ctrl+Shift+-
,i (к началу строки)/,a (к концу строки), в том числе в readline. В Vim <C-e> — довольно полезное сочетание, <C-a> забито screen’ом/tmux (с биндингами от screen, а так у него <C-b>).,i — к первому непробельному символу. С readline — к первому символу, т.к. я не знаю, как сделать «к первому непробельному символу» с readline.Если вы держите руки в стандартной позиции для 10-пальцевой слепой печати, более удобно нажать Ctrl-m вместо того, чтобы тянуться мизинцем к энтеру.
Координнация двух пальцев на разных руках — такая вещь, которую умеют все, кто учился слепой печати. И большинство из тех, кто много занимается набором текста.
А вот необходимость постоянно гнуть запястный сустав чтобы переместить мизинец на две клавиши вправо — верный путь к RSI.
Эээ, а зачем для этого запястный сустав гнуть? Просто мизинец вытянуть мало?
Умение координировать стирает для человека разницу между скоординированым и не координированым движением.
Если клавиши стандартного размера, то для того, чтобы сделать это, не задействовав запястный сустав, нужно сильно напрячь мизинец, что в общем достаточно болезненно и уж точно гораздо медленне, чем Control+m.
<C-> (который на CapsLock) мне можно запястье не двигать. А для нажатия на <Enter> (который через клавишу: Steel Series 6GV2) нужно. Если не двигать, то будет напряжней и дольше.А вот время координации продолжит падать, пока, в конце концов, не сократится настолько, что человек перестанет его замечать.
Синхронизация происходит в голове, соответственно мышцы тут не участвуют, а расстояние которое проходят сигналы — существенно меньше. Поэтому минимальное время, за которое можно скоординироваться перед нажатием будет существенно меньше времени самого нажатия.
По моему, начиная с одной пятой секунды разница уже не ощущается.
На мой взгляд, собственное рабочее место, как и свои привычки, нужно максимально кастомизировать под свои нужды.
<C-j>? Нажимать просто <Enter> вроде быстрее.<Enter> и <BS>, нажимаются они привычно быстро. А вот конкретно <C-j> в Vim иногда забирают под что‐то вроде умного автодополнения, потому что это довольно удобный <C-Space> (точнее, это <C-Space>, потому что Vim никогда нормально не переваривает нулевой байт, в том числе и здесь; в gvim такой проблемы нет). Ну и в dvorak особой разницы между <C-j> и <C-m> нет: что j, что m на нижнем ряду под указательным пальцем, только j ещё и на той же руке, что и переделанный CapsLock.<Enter> она перемещается дальше.<code> вокруг сочетаний клавиш не потому, что мне нечем заняться, а потому что хабраредактор может выреза́ть всякие вещи, похожие на HTML тёг. В вашем сообщении явно что‐то пропущено.d[elete] или t[o]/f[ind]. Я нормально пользуюсь programming dvorak и иногда hjkl (чаще jk, hl намного реже). Просто помните, что в большинстве случаев быстрее использовать не hjkl.Есть маленький нюанс — далеко не во всех nix системах это поведение работает:)Выше уже отписывались о неработающих командах. Доступный набор команд в основном зависит от используемой оболочки, но могут быть и другие факторы (например, версия, конфигурация, способ взаимодействия с оболочкой, выставленный тип терминала). Стоит иметь это в виду и консультироваться со справкой в случае сомнений.
Только что было проверено в AIX/HP-UX — половина не работает.
Оттачиваем мастерство работы в консоли