Letzten Monat habe ich zwei historische Fragen untersucht. Ich habe die Ergebnisse ursprünglich als Threads auf Twitter gepostet, aber jetzt dupliziere ich sie als Artikel.
Warum vim hjkl benutzt
Frage : Warum verwendet vim hjkl und keine Pfeile für die Navigation?
Typische Erklärung : Damit die Finger die Ausgangsreihe nicht verlassen.
Historische Erklärung : Bill Joy entwickelte vi auf dem ADM-3A-Videoterminal, dem einzelne Pfeiltasten fehlten. Wenn Sie sich die ADM-Tastatur ansehen, befinden sich Pfeile auf den hjkl-Tasten. Joy verwendete dieselbe Logik für vi und später für Vim.
Noch mehr historische Erklärung : Eigentlich ist es seltsam, dass auf ADM hjkl für Pfeile verwendet wurde. Warum genau diese Buchstaben?
Dafür gibt es einen guten Grund. Schauen Sie sich die 1967er Version der ASCII-Zeichentabelle an:
7 . 32 — " ", , -. , QWERTY-, , . "" , . . , "backspace", ctrl+H ( ^H). 100 1000 000 1000. , , ^J.
ADM, , "backspace" ADM " " . ^H ^J "" "", ^K ^L "" "". ADM hjkl , vi.
JavaScript
: JavaScript' date API 0-11, 1-12. ?
: . , . , date.GetMonth() .
: Java, , , C.
: C ? , C, , ?
tm_date
ANSI C89, . C , Unix-. Unix, , <ctime.c>
C , .
#define SEC 0
#define MIN 1
#define HOUR 2
#define MDAY 3
#define MON 4
#define YEAR 5
#define WDAY 6
#define YDAY 7
#define ISDAY 8
ctime -- (SMH), HMS. , , . Unix 5 , :
int *t;
{
register char *cp, *ncp;
register int *tp;
cp = cbuf;
for (ncp = "Day Mon 00 00:00:00 1900\\n"; *cp++ = *ncp++;);
ncp = &"SunMonTueWedThuFriSat"[3*t[6]];
cp = cbuf;
*cp++ = *ncp++;
*cp++ = *ncp++;
*cp++ = *ncp++;
cp++;
tp = &t[4];
ncp = &"JanFebMarAprMayJunJulAugSepOctNovDec"[(*tp)*3]; // (a)
*cp++ = *ncp++;
*cp++ = *ncp++;
*cp++ = *ncp++;
cp = numb(cp, *--tp); // (b)
cp = numb(cp, *--tp+100); // (c)
cp = numb(cp, *--tp+100);
cp = numb(cp, *--tp+100);
cp =+ 2;
cp = numb(cp, t[YEAR]);
return(cbuf);
}
. (a). , , , , . , (b) HMS (c), . SMH ( ). , , , .
, . , Unix PDP-7. 1970- . , , 10% RAM!
, CPU, — , , . , , (b), .
: MDAY ( ) , YDAY ( ) — . " ": . ( ).
. , "" . hjkl, , ASCII- . tm_date, Unix, , , . — . , .
. , . , - , , - . , , "", , . , , , " ". , , "" .
. , — . , , , , . , ADM-3A, . , .
. , , , . , , , , . .