12 ms·
Yes, hjkl navigation is certainly one of the things that should learn about a vi clone. But are novices well served, in the 2020s, by that being the primary th
by JdeBP 3mo ago
Yes, hjkl navigation is certainly one of the things that should learn about a vi clone. But are novices well served, in the 2020s, by that being the primary thing that they learn before anything else?
This is not a criticism of this WWW site specifically. The VIM doco has the same priorities, teaching hjkl navigation before arrow keys. (So do nvi2 and NeoVIM.) The problem is that the received wisdom, that arrow keys are some newfangled idea that might not have reached your terminal manufacturer yet, is massively out of date.
Even if one does not teach the arrow keys first, the BS SPC SO (Control+N) DLE (Control+P) set is surely worth teaching early on. One cannot make any reasonable argument that terminals might not have spacebars. (-:
- tokamak-teapot 3mo agoThe reasons I still use vi-style editing in editors are: 1. Efficiency, so I can be fast 2. Minimal stretching and whole-hand movement, so I don't get painful wrists and so I can be accurate. Using a keyboard's arrow keys doesn't fit with 2.
- alexhans 3mo agoTouch typing essentially. It's such a comfortable way to work. Remapping mode switching to something like jk instead of Esc is vital to stay comfortably in the home row. I always liked this site to grok some of those vim fundamentals [1] and the touch typing part was going to touch typing exercise webpages and getting pure practice. - [1] http://learnvimscriptthehardway.stevelosh.com/ http://learnvimscriptthehardway.stevelosh.com/
- zavec 3mo agoI always wonder about the choice of hjkl, because don't people normally rest their hands one row to the left, on jkl;?
- sudahtigabulan 3mo agoIt has to do with the codes these keys (used to) emit in combination with Ctrl: Ctrl/H - Backspace Ctrl/J - Line Feed Ctrl/K - Upline Ctrl/L - Forward Space Source - the ADM-3A operator's manual, page 3-5: https://archive.org/download/lear-siegler-adm-3-a/Lear_Siegler_ADM-3A.pdf https://archive.org/download/lear-siegler-adm-3-a/Lear_Siegl...
- piekvorst 3mo agoDoesn’t the act of reaching for the mouse actually creates a natural moment of wrist relaxation? A fixed wrist position creates static muscle tension.
- JdeBP 3mo agoThat does not really present any argument that we should be teaching your way of working to VIM novices, instead of teaching them the obvious arrow keys first and the hjkl navigation later.
- tokamak-teapot 2mo agoYou're right, It presents an argument that we shouldn't teach them 'the obvious' arrow keys at all.
- eska 3mo agoSorry to be blunt, but if you don’t want to spend effort on touch typing (and therefore avoid arrow keys), learning vim motions is rather pointless and you might as well not bother.
- jldugger 3mo agobut what if i learned to type Colemak?
- eska 3mo agoAt that point does your keyboard even still have arrow keys?
- adrian_b 3mo agoMany years ago, I have switched to touch-typing using the Dvorak layout (on standard QWERTY keyboards), which I find much more comfortable. Obviously any classic control key assignments, like those of vi or those of emacs, are far from optimal on a non-standard keyboard layout. The only decent solution is to remap all control keys in your text editor, to whichever positions you prefer. Any good text editor allows that. Likewise, all programs with a good user interface allow the remapping of the keyboard shortcuts.
- flexagoon 3mo agoI just have a layer on my keyboard that puts arrow keys where hjkl are on qwerty when I hold the tab key. Since tab is right next to my pinky finger on my laptop, it easily became muscle memory, and allows to use home row navigation in all apps, not just the ones that support hjkl.
- throw-the-towel 3mo agoI'll be blunt to you back: that's not true. Vim motions are useful because you don't have to switch between the keyboard and the mouse, even if you (like me) never bothered with touch typing.
- johncoltrane 3mo agohjkl are more of a cult/status thing anyway because they are not _that_ touch-typing-friendly to begin with, and they suck just as much as the cursor keys for moving the cursor around. Insisting so much on hjkl is silly. No one is using an ADM-3A in 2026, so the official documentation should let users use the more intuitive cursor keys and downgrade hjkl to what they have always been since vi: __ham-fisted alternatives to the cursor keys__.
- flexagoon 3mo agoHow are they "not that touch-typing-friendly" when they're literally the keys that are always under your fingers when touch typing?
- magackame 3mo agoBro be using two mice with a screen keyboard.
- johncoltrane 3mo agojkl; are (on QWERTY keyboards). hjkl are not.
- flexagoon 3mo agoIdk, I get what you mean but I'd personally rather not use my pinky finger for navigation, sounds really uncomfortable.
- johncoltrane 3mo agohjkl AND the cursor keys equally suck for moving the cursor because they only move by one line or by one character. jjjllllljjh is just as bad as <Down><Down><Down><Right><Right><Right><Right><Right><Down><Down><Left>. There are much better ways to move around and touch-typists and non-touch-typists would be better off learning them instead of obsessing over hjkl: :help motion.txt.
- drw85 3mo agoI think the reason to use and teach those keys first, is that they can be used in all the motions aswell. The arrow keys can´t and thus do not really make much sense in a vi context.