Perché vim usa hjkl per i tasti cursore?


56

Perché usare i tasti hjklsulla stessa riga anziché i tasti in un triangolo come wasdper passare ai videogiochi?

Perché non qualcosa di equivalente con la mano destra, come ijklo pl;'?


3
Controlla quella pagina Wikipedia di vi , contiene un'immagine di qualche antica tastiera della macchina Unix che spiega, alcune combinazioni di tasti.
Christian Brabandt,

3
Perché vimè esente dal tenere il passo con i progressi tecnologici: 3
Alexander

3
È possibile posizionare comodamente quattro dita di una mano sui tasti hjkl e spostare il cursore in tutte e quattro le direzioni senza spostare le dita avanti e indietro. Se ci pensate davvero, quattro di fila è l'unico layout dei tasti cursore coerente con l'anatomia umana. La domanda è davvero come tutti gli altri riescono a sbagliare.

4
In realtà non è consigliabile mettere il tuo indice sul hma piuttosto sul j(ecco perché hai un "capezzolo" sulla jchiave). Il motivo è che userete bmolto più di he avere ;accesso è utile in molti linguaggi di programmazione (e con un turno, avete quello :che è sempre più utile in Vim).
nobe4,

2
A proposito, questo argomento è trattato nella seconda domanda più votata su Unix SE
Dmitry Grigoryev,

Risposte:


75

Da http://www.catonmat.net/blog/why-vim-uses-hjkl-as-arrow-keys/ :

Quando Bill Joy ha creato l'editor di testo vi, ha usato il terminale ADM-3A, che aveva le frecce sui tasti hjkl. Naturalmente ha riutilizzato le stesse chiavi e il resto è storia!

inserisci qui la descrizione dell'immagine


27
Questo dovrebbe essere ancora su ogni tastiera! :)
albttx,

16
Ora mi stai chiedendo che tipo di terminale aveva il ragazzo che ha creato emacs ...
leeand00

11
@ leeand00: una tastiera cadetto per spazio macchina Symbolics LISP . L'articolo parla esplicitamente di come il design della tastiera ha influenzato il design di Emacs e lo confronta anche con il design di Vi con il suo onnipresente tasto Escape e il fatto che Escape si trovasse in una posizione molto comoda sulla tastiera del terminale ADM-3A . Bene, sulla tastiera Space Cadet, ci sono i tasti Control, Meta, Super e Hyper che si trovano in una posizione molto comoda, così come non meno di 3 diversi tasti Maiusc che consentono di digitare oltre 8000 caratteri.
Jörg W Mittag,

11
Mentre questa risposta è corretta in quanto tale, in qualche modo sposta la domanda piuttosto che rispondere: "Perché la tastiera ADM-3A ha scelto hjkle non una forma più logica come ijkl?"
Martin Tournoij,

2
@Carpetsmoker: non abbiamo inventato la logica della posizione della freccia della tastiera fino alla fine degli anni '80 upload.wikimedia.org/wikipedia/commons/3/30/…
Jacob Krall

21

La risposta di Nobe4 è ottima e spiega perché usiamo hjklmolto bene. Tuttavia, è davvero interessante vedere la tastiera completa e molte cose strane su Vim hanno più senso quando puoi vedere la tastiera completa su cui è stata progettata. Ad esempio, perché vi fa così tanto affidamento sulla escchiave, quando si trova in un posto così strano e scomodo? Ecco perché:

inserisci qui la descrizione dell'immagine

Come puoi vedere, escè dove si trova la scheda sulla maggior parte delle tastiere. ctrlè un altro tasto che è leggermente imbarazzante da raggiungere, ma in una posizione molto comoda su questa tastiera (dove solitamente si trova il blocco maiuscole).


Aveva viuna <Leader>mappatura? Pensavo che fosse un'invenzione successiva ...
Martin Tournoij,

@Carpetsmoker Penso di sì, ma in realtà non ne sono sicuro. Vim's :help <leader>non ha il {not in Vi}testo della firma e dice che vi era :map(anche se non :noremap), quindi sono abbastanza sicuro che vi avesse un leader. Anche se non lo fosse, immagino che la storia della tastiera vi influenzerebbe almeno in qualche modo il design di Vim.
DJMcMayhem

È anche difficile trovare informazioni su vi tramite google, poiché la maggior parte dei risultati finisce con vim.
DJMcMayhem

@DJMcMayhem pubs.opengroup.org/onlinepubs/009696699/utilities/vi.html e roguelife.org/~fujita/COOKIES/HISTORY/1BSD/exrefm.pdf sono buoni riferimenti per vi (POSIX e storico, rispettivamente). Puoi anche scaricare nvi, elvis, vile o ex-vi (ex-vi è un discendente della vi storica) e vedere cosa fanno o la loro documentazione. Non c'è <leader>funzione in vi.
Casuale 832

Inoltre, Vim è stato originariamente sviluppato per l'Amiga (barra rovesciata nella sua solita posizione [ISO o Grande invio]), e basato su Stevie che era per l'Atari ST (barra rovesciata nell'angolo in basso a destra, passato invio, ma a quanto pare non ha funzionato supporto :mapa tutti)
Random832

17

Sul motivo per cui queste frecce sono state stampate su questi tasti ... è perché potrebbero essere utilizzate con il tasto di controllo per il movimento del cursore locale. Ctrl-H e Ctrl-J (backspace e avanzamento riga) sono evidenti e un facile mnemonico anche oggi. Ctrl-K è "scheda verticale", ma a volte veniva utilizzato per l'alimentazione di linea inversa sui terminali pre-ANSI. L'uso di Ctrl-L per un cursore non distruttivo in avanti è stato probabilmente scelto in base alla sua posizione sulla tastiera.

Potresti anche aver notato nell'immagine della tastiera nell'altra risposta che "HOME" è sul tasto ^/ ~. Ovviamente, Ctrl- ^ ospita il cursore (invia in alto a sinistra dello schermo, o in basso a sinistra, a seconda della modalità).

Queste mappature di controllo sono state utilizzate anche per i terminali Wyse, il protocollo Kermit, e sono state supportate in alcune versioni di PC ANSI.SYS.

fonti:


^ H, ^ K - molto illuminante, poiché oggi ricorderò facilmente che ^ J si sposta verso il basso. Non sono mai stato in grado di ricordare l'affidamento di su-giù in modo affidabile.
miroxlav,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.