3 ms·
> \n is ^J (ctrl-J) so there's some logic there The same 'j' as vi uses for 'hjkl'. https://vi.stackexchange.com/questions/42426/why-did-vi-use-hjkl-instead-of
by rgoulter 3mo ago
> \n is ^J (ctrl-J) so there's some logic there
The same 'j' as vi uses for 'hjkl'.
https://vi.stackexchange.com/questions/42426/why-did-vi-use-hjkl-instead-of-jikl/42428#42428 https://vi.stackexchange.com/questions/42426/why-did-vi-use-...
- microgpt 3mo agoalso the same 'j' found in words like 'jujuism', 'jejunities', and 'bejeezus', also by a magical coincidence the same one in most Latin fonts, and even some random text strings such as 'pj$4' But I suppose you're saying ASCII 10 was chosen as newly because it aligns with the down arrow on keyboards of the time. Maybe.
- rgoulter 3mo ago> I suppose you're saying ASCII 10 was chosen as newly because it aligns with the down arrow on keyboards of the time. Maybe. The linked StackExchange has it as: > What character was used for what control code was mostly a matter of bitwise arithmetics. LF is ^J because J happens to be at the corresponding location in the corresponding column of the table (+ 64 in decimal)
- microgpt 3mo agoand did they choose that code because the J key had a down arrow printed on it?
- ahazred8ta 3mo agoNo, the Baudot / Western Union mechanical teletype code assignments were worked out in the late 1800s and early 1900s. This was later developed into ASCII. Computer keyboards came much later. https://en.wikipedia.org/wiki/Baudot_code https://en.wikipedia.org/wiki/Baudot_code
- kps 3mo agoOther way around. ASCII classified control characters into blocks and newline ended up a bit-flip away from J, so the ADM-3A printed ‘↓’ on the ‘J’ key.
- Joker_vD 3mo agoYes, and ADM-3A also had "↑" on the "K" key, because \013 is vertical tabulation (VT), and "→" on the "L" because \014 is form feed (FF). It all makes perfect sense. If terminfo database is to be believed, quite a lot of other terminals reused this control sequences too, for some reason.
- kps 3mo agoIn the era when video terminals were new I have to guess that K and L were just plausibly related enough to justify using them for additional cursor motions, after H and J fit exactly.
- snarkconjecture 3mo agoNo, it's ^J because `J` is 0x4A in ASCII and `\n` is 0x0A, just as `I` is 0x49 and `\t` (tab, ^I) is 0x09. In the stone age, pressing CTRL flipped that bit, so ^J is literally "ctrl-J".
- kps 3mo agoYou're saying the same thing. vi uses ‘j’ because the ADM-3A printed ‘↓’ on the ‘J’ key because Control-J is newline because the code is J with a bit flipped because bit-flipping was practical on an electromechanical teletype.