Я читал во многих статьях ( например ), что использование стрелок в обычном режиме - плохая практика. Может ли кто-нибудь объяснить, почему это считается неправильной практикой, если вообще?
key-bindings
cursor-movement
Анкит Джайн
источник
источник
hjkl
в Дворжаке. Это определенно менее разумно, чем в qwerty, но я не знаю, что бы я назвал это «сложным в использовании»; это всего лишь ключи, и совсем не так сложно их достать или что-то еще, когда ты к этому привык.hjkl
должен быть лучший вариант для перемещения в документе. Правда в том, что на некоторых клавиатурахhjkl
во время создания vi были включены клавиши со стрелками , поэтому vi использовала те же клавиши в обычном режиме для соответствия раскладке клавиатуры. Вот статья с фотографией клавиатуры: catonmat.net/blog/why-vim-uses-hjkl-as-arrow-keyshjkl
. Хорошие. Но они завышены до уровня догмы, по крайней мере частично, потому что люди должны чувствовать, что они лучше, чем другие.hjkl
не самый лучший в дворак. Но, как пользователь дворака, я могу найти их немного удобными, поскольку они соединены вместе: какjk
на одной стороне платы; иhl
с другой стороны.Ответы:
На самом деле это неплохая практика.
Многие люди ( включая документ Vim, как показывает ответ @B Layer ) утверждают, что вы не должны использовать клавиши со стрелками, потому что это заставляет ваши руки двигаться от домашнего ряда (вторая строка вашей клавиатуры, где у вас есть hjkl), и это делает вас менее эффективными ,
Это (по крайней мере, IMO) плохой результат от рывка vim "purists": новые пользователи следуют этому вслепую, некоторые даже отключают клавиши со стрелками, а затем жалуются, что они не так эффективны, как раньше.
Единственное реальное правило для использования vim - это эффективное его использование: если вы чувствуете себя более комфортно при использовании Leftи Rightчем hи l быть, используйте клавиши со стрелками. Vim даже имеет
set mouse=a
опцию, если вы хотите использовать мышь!После того, как вы привыкнете к ВИМ и лучше с различными доступными движениями ( f, t, ,, ;, w, b, e, ge, и в основном все в
:h quickref
) вы могли бы понять , что вы используете не клавиши со стрелками , что много. И если вы все еще используете их, это не проблема, используйте то, с чем вы наиболее эффективны.Заметьте, что аргумент не выходить из домашней строки для большей эффективности, на мой взгляд, не так уж хорош: если вы посмотрите на Почему vim использует hjkl, вы увидите, что эти клавиши были выбраны, потому что стрелок не было ключи, когда Vi был написан. Можно утверждать, что, может быть, если бы клавиатуры в это время отличались, никто бы не подумал, что не стоит использовать клавиши со стрелками как хорошую практику.
источник
hjkl
просто снять боль с запястья.Я не знаю, действительно ли это больше актуально, но я старожил, так что немного истории.
В старые времена терминалы VT100 имели клавиши со стрелками, но нажатие одной из них передавало управляющую последовательность, например,
<ESC>[A
вверх,<ESC>[B
вниз и т. Д.Кроме того, будучи последовательным терминалом, обменивающимся со скоростью 9600 бод, пользователь мог слишком быстро нажимать клавиши. передать всю последовательность, что приведет к тому, что одно нажатие клавиши прервет последовательность предыдущего нажатия клавиши и запутает vi.
Это может привести к тому, что vi необъяснимым образом перейдет в режим вставки и вставит [B [B [B [B [B] B в ваш файл, если вы удерживаете стрелку вниз. Я говорю необъяснимо, потому что в этой последовательности нет ничего, что могло бы войти в режим вставки, и тот факт, что каждая последовательность начинается с символа ESC, должен был выйти из режима вставки. Но все равно, это вставило бы мусор. Не всегда - просто когда вы спешили.
Один быстро устал от этого и решил просто придерживаться
hjkl
клавиш.источник
Хотя я согласен с @statox, что никто не должен подвергаться наказанию, избеганию, отлучению от церкви или перелистыванию, если они решат использовать клавиши со стрелками ... используйте свое программное обеспечение так, как считаете нужным ... Я бы не выделил большая часть laissez-faire, если бы я давал руководство новому непредубежденному пользователю. Я бы настоятельно рекомендовал, чтобы они начали со следующих лучших практик. Они являются «лучшими практиками» по определенной причине ... они были использованы с пользой для многих людей, которые были до вас и меня.
Черт, даже собственная помощь Вима подталкивает вас в этом направлении , хотя и не без гиперболы (« сильно замедляет») ...
Также существует тот факт, что любой выбор, который вы делаете в начале, может стать привычкой, которую трудно сломать, если вы хотите измениться в будущем. Так при прочих равных условиях, почему бы не принять рекомендуемую привычку сейчас , а не рисковать , что с помощью клавиш со стрелками является неэффективным или кистевой-убийство?
В общем, подумайте о том, чтобы честно попытаться сделать что-то без клавиш со стрелками. По прошествии достаточного количества времени, если вы просто не можете жить без вверх / вниз / влево / вправо ... не делайте.
... это то, что я бы сказал новому пользователю, который интересовался моим мнением. Не принимайте это на свой счет, если вы не согласны (я говорю с вами, downvoter).
источник
don't think it's necessary to rank best practices
Что ж, мне кажется, что мы должны сосредоточиться на вещах, которые дают нам наибольшую ценность в жизни, учитывая, что ресурсы ограничены, а жизнь коротка. Мне довелось знать, что ключи hjkl являются сердцем из-за того, что в детстве с ошибками они играли в мошенника, жгута, ангбанда и т. Д. На ноутбуке без цифровой клавиатуры, но некоторые люди провели свое детство лучше, и им придется «отучить» клавиши со стрелками, независимо от того. Я думаю, что изучение движений, диапазонов и т. Д. - гораздо более полезный способ провести время.В других ответах говорилось, что потеря эффективности при перемещении рук из домашнего ряда не такая уж большая проблема, и я в основном согласен. Однако, что это большая сделка , когда вы изучаете Vim, всегда используя клавиши со стрелками , чтобы избежать переключения в нормальный режим работы .
Другими словами, использование сингла, в ←котором вы бы использовали сингл h, не является огромной потерей производительности, но использование того, ←←←←←←←←←←где вы могли бы использовать, EscI - огромная потеря.
Вот почему люди советуют вам избегать клавиш со стрелками, когда вы изучаете vim, потому что это заставляет вас учиться в обычном режиме, а не выходить из режима вставки. Нормальный режим - это то, где все ваши достижения эффективности.
источник
hjkl
». (Сохраняя преднамеренную гиперболу.)←
вы могли бы использовать1
0
←
или, еще проще,Home
. Последний работает даже в Windows Notepad.Есть две основные причины, почему люди говорят, что вы не должны использовать клавиши со стрелками. Некоторые утверждают, что hjkl предпочтительнее, потому что он держит руки на домашнем ряду, что не является ложным , но также не имеет значения. Другие, в том числе и я, сказали бы, что вы не должны использовать клавиши со стрелками, если вы перемещаете более нескольких символов, но вы также не должны использовать hjkl.
Важно не то, какие ключи вы используете, а сколько . Если вы хотите перейти к началу слова, вы не нажмете
hhh
; ты ударилb
. Конец слова естьe
, нетllll
. Начало линии:0
, конец строки:$
. И что-нибудь еще,/search
для текста, который существует, куда вы хотите пойти. (или какая из продвинутых команд движения вы предпочитаете).Но каждый раз, когда вы набираете одну и ту же клавишу более двух раз подряд, есть лучший способ сделать это.
источник
Более точное утверждение может быть следующим: «использование клавиш со стрелками - плохая практика при попытке лучше изучить vim » . Люди, плохо знакомые с vim, привыкли использовать клавиши со стрелками для перемещения и поэтому не учатся
hjkl
, таким образом, не имея возможности увидеть, является ли это предпочтительным.Лично, после некоторого общего знакомства с vim, я на некоторое время отключил клавиши со стрелками, чтобы освоиться,
hjkl
и включил их позже, чтобы упростить мои.vimrc
. Обычная мудрость верна в моем случае; как только я знал, как использовать обеhjkl
клавиши и клавиши со стрелками, я почти полностью использовал первую.источник
Обычный ответ предполагает эффективность. Скорее всего, вы прошли обучение на протяжении многих лет, чтобы использовать сенсорный набор текста, при котором вы держите руки в руках asdf и jkl ;. Подавляющее большинство привязок клавиш в Vi разработано вокруг этого факта, включая команды перемещения hjkl.
Лично я на самом деле использую оба. Я использую hjkl, когда активно редактирую большие фрагменты текста, и клавиши со стрелками при прокрутке файлов журналов (и |, g и /, когда я делаю точечные изменения в файле). Это как раз то, что хорошо работает для меня, и в таком случае это то, что действительно имеет значение.
источник
Давным-давно во многих терминалах не было клавиш со стрелками или не было всех четырех из них. Программные системы, которые нуждались в навигации, обычно обеспечивали своего рода навигационный подход, не полагаясь на клавиши со стрелками, и hjkl vi - это канонический пример. (Другой классический пример - WordStar ^ E- ^ S- ^ X- ^ D.) По мере того, как утилита навигации по клавишам становилась все более очевидной, все больше и больше новых терминалов стали поставляться с клавишами со стрелками, и программные системы часто отображали их на старых способах навигации. Тем не менее, это создавало проблемы переносимости: если бы дети, обучающиеся в школах, стали полагаться на такую причудливую, новомодную особенность, как клавиши со стрелками, то, как они думали, они не могли бы быть продуктивными - когда-то распространенными - клавиатуры без клавиш со стрелками.
Так, преподаватели курсов по основам информатики стали осторожно предупреждать студентов, чтобы они учились использовать наименьший общий знаменатель, чтобы максимизировать их возможности трудоустройства. И эта практика давно пережила любые причины, которые могли когда-то иметь.
В современных реализациях vi основная причина, по которой предпочитается hjkl, заключается в том, что использовать клавиши, находящиеся под рукой, немного быстрее, чем перемещать руку туда, где находятся клавиши со стрелками. Недостатком избегания переключения контекста вашей руки, конечно же, является то, что вам может потребоваться выполнить переключение контекста vi. В настоящее время, когда люди очень редко ценят скорость печати, то, делаете ли вы одно или другое, в значительной степени зависит от личных предпочтений, и нет ничего плохого в использовании клавиш со стрелками, если они когда-либо были.
источник