Perché l'utilizzo dei tasti freccia in modalità normale è considerato una cattiva pratica?


43

L'ho letto in molti articoli ( ad es. ) Che è una cattiva pratica usare i tasti freccia in modalità normale. Qualcuno potrebbe spiegare perché è considerata una pratica sbagliata, se non del tutto?


5
Un buon motivo per non usare hjkl è se si utilizza un altro layout di tastiera. Ad esempio, hjkl non è spazialmente correlato in Dvorak e quindi è difficile da usare.
Kylos,

1
@Kylos che uso hjklin Dvorak. È decisamente meno sensato che su qwerty, ma non so che lo definirei "difficile da usare"; sono solo chiavi e non è difficile raggiungerle o altro una volta che ci sei abituato.
Dougal,

2
Ci sono molti miti perché hjkldovrebbe essere l'opzione migliore per spostarsi in un documento. La verità è che alcune tastiere avevano i tasti freccia attivi hjklal momento della creazione di vi, quindi vi utilizzavano gli stessi tasti in modalità normale per adattarsi al layout della tastiera. Ecco un articolo con una foto della tastiera: catonmat.net/blog/why-vim-uses-hjkl-as-arrow-keys
allo

8
Qualunque cosa abbia una reputazione per difficoltà ... attira un certo tipo di persona. Crossfit, Vim, programmazione funzionale, veganismo, ecc. Ora certamente non tutte le persone che intraprendono una di quelle attività sono di quel tipo, ma si presentano spesso in modo sproporzionato. E parte del fascino per quella persona è la difficoltà dell'attività stessa . Le cose che abbassano il livello di accesso sono un anatema per loro: le rende meno speciali. Ci sono ragioni per preferire hjkl. Quelli buoni. Ma si gonfiano allo stato di dogma, almeno in parte, perché le persone devono sentirsi meglio di altre.
Jared Smith,

@Kylos Sono d'accordo che hjklnon sono i migliori in assoluto in dvorak. Ma come utente dvorak posso trovarli un po 'a portata di mano poiché sono accoppiati insieme: come jksu un lato della scheda; e hl dall'altra parte.
nilon,

Risposte:


66

In realtà questa non è una cattiva pratica.

Molte persone ( incluso il documento di Vim come mostra la risposta di @B Layer ) sostengono che non dovresti usare i tasti freccia perché ti fa muovere le mani dalla riga iniziale (la seconda riga della tastiera in cui hai hjkl) e che ti rendono meno efficiente .

Questo è (almeno IMO) un brutto risultato del cretino dei "puristi" di vim: i nuovi utenti lo seguono ciecamente, alcuni addirittura disabilitano i tasti freccia e poi si lamentano che non sono così efficienti come prima.

L'unica vera regola per uso vim è quello di utilizzare in modo efficiente: se si sente più a suo agio con Lefte Rightrispetto he l che si tratti, utilizzare i tasti freccia. Vim ha anche set mouse=aun'opzione se vuoi usare un mouse!

Una volta che ci si abitua a vim e migliorare con i diversi movimenti disponibili ( f, t, ,, ;, w, b, e, ge, e in fondo tutto :h quickref) si potrebbe rendersi conto che non si utilizzano i tasti freccia più di tanto. E se li usi ancora, non è un problema, usa ciò con cui sei più efficiente.

Nota che l'argomento di non lasciare la riga iniziale per maggiore efficienza non è molto positivo secondo me: se dai un'occhiata a Perché vim usa hjkl vedrai che questi tasti sono stati scelti perché non c'erano frecce chiavi quando Vi è stato scritto. Si potrebbe sostenere che forse se le tastiere fossero diverse in questo momento nessuno considererebbe una buona pratica non usare i tasti freccia.


13
Mi ritrovavo spesso a piegare il polso molto male per raggiungere i tasti freccia perché ero così abituato a loro. Ho finito per disabilitare i tasti freccia per abituarmi hjklsolo per alleviare un po 'di dolore dal mio polso.
Shahbaz,

9
Vorrei sottolineare che questo ha senso solo sulle tastiere QWERTY. Per alcuni layout, hjkl può essere una vera seccatura.
Coteyr,

1
È possibile utilizzare entrambe le opzioni: sia che si scelga hjkl o le frecce, è possibile associare l'altro set di tasti su / giù per spostarsi tra le righe sullo schermo e non quelle dei file. Aiuta a modificare file con linee lunghe.
user31389

1
Prima di leggere la tua risposta non mi ero reso conto che non uso quasi mai i tasti freccia e hjkl perché mi ero abituato ai comandi di movimento avanzati di cui parli. Buon punto!
Spiros,

4
Per quanto apprezzi la tua risposta corretta ai miei occhi, potrei per favore prevalere su di te come collega moderatore e vi appassionato nel provare il più difficile a trovare qualche frase alternativa meno "squallida" per fare il cretino che non evoca l'immagine vividamente inquietante di un anello senza pantaloni di ragazzi o uomini che si masturbano tutti insieme in compagnia dell'altro‽ Abbastanza per favore? :)
tchrist

40

Non so più se questo è davvero rilevante, ma sono un vecchio timer, quindi ecco un po 'di storia.

Ai vecchi tempi, i terminali VT100 avevano i tasti freccia, ma premendo uno si trasmetteva una sequenza di escape come <ESC>[Asu, <ESC>[Bgiù, ecc.
Inoltre, essendo un terminale seriale che comunicava a 9600 baud, era possibile per l'utente premere i tasti troppo velocemente per trasmettere l'intera sequenza che causerebbe la pressione di un tasto per interrompere la sequenza del tasto precedente premere e confondere vi.

Ciò provocherebbe inspiegabilmente vi in ​​modalità di inserimento e l'inserimento di [B [B [B [B [B [B [B nel file in uso) se si tiene premuta la freccia giù. Dico inspiegabilmente perché non c'è nulla in questa sequenza che dovrebbe entrare in modalità inserimento e il fatto che ogni sequenza inizia con un carattere ESC dovrebbe essere uscito dalla modalità inserimento. Tuttavia, inserirebbe immondizia. Non sempre - proprio quando eri di fretta.

Uno si stancò rapidamente di questo e decise di attenersi alle hjklchiavi.


8
Per qualsiasi motivo, i programmi terminal TCP utilizzano ancora i tasti freccia basati sull'escape e non hanno ancora alcun modo affidabile al 100% di distinguere tra premere il tasto Esc e inviare il primo byte di una sequenza di escape tasto freccia.
supercat

1
@supercat Essi fanno avere un modo affidabile per distinguere quelli. Si chiama usando SC81T . Il problema è più che molti programmi non lo negoziano e alcuni terminali probabilmente non lo supportano.
Jamessan,

1
@jamessan: Se ho letto bene, stai suggerendo che il modo affidabile di distinguere la fuga dai tasti freccia è di non usare i tasti freccia basati sulla fuga, che si collegano al mio commento "per qualsiasi motivo" sui programmi che usano ancora escape- tasti freccia basati.
supercat

Hmm, ho un vecchio terminale IBM che può emulare un VT100, potrebbe essere necessario provarlo
un earwig

3
Posso certamente confermare che questo era vero, almeno nel passato, dato che durante gli anni '80 dovevamo apporre dei cartelli nella sala dei terminal degli studenti per non usare i tasti freccia in vi proprio per questo motivo. Hanno continuato a rovinare i loro file quando il driver tty ha lasciato cadere gli interrupt.
tchrist

28

Mentre sono d'accordo con @statox sul fatto che nessuno dovrebbe essere castigato, evitato, scomunicato o catrato e piumato se scelgono di usare i tasti freccia ... usa il tuo software come meglio credi ... Non trasuderei come molto di un atteggiamento laissez-faire se stavo dando una guida a un nuovo utente di mentalità aperta. Consiglio vivamente di iniziare con le migliori pratiche seguenti. Sono "buone pratiche" per un motivo ... sono stati impiegati con buoni risultati da molte persone che sono venute prima di te e me.

Cavolo, anche l'aiuto di Vim ti spinge in quella direzione , anche se non senza iperbole (" rallenta notevolmente ") ...

Puoi anche spostare il cursore usando i tasti freccia. Se lo fai, tuttavia, rallenti notevolmente la modifica perché, per premere i tasti freccia, devi spostare la mano dai tasti di testo ai tasti di direzione. Considerando che potresti farlo centinaia di volte all'ora, questo può richiedere una notevole quantità di tempo.

C'è anche il fatto che qualsiasi scelta tu faccia all'inizio può diventare abitudini difficili da spezzare se vuoi cambiare in futuro. Quindi, a parità di altre condizioni, perché non adottare un'abitudine raccomandata ora invece di rischiare che l'uso dei tasti freccia sia inefficiente o che uccide il carpale?

Tutto sommato, considera di fare uno sforzo onesto per fare le cose senza i tasti freccia. Dopo un ragionevole lasso di tempo se non riesci a vivere senza su / giù / sinistra / destra ... non farlo.

... è quello che direi a un nuovo utente interessato alla mia opinione. Non prenderlo sul personale se non sei d'accordo (sto parlando con te, downvoter).


9
Anche se accetti che sia davvero meglio dei tasti freccia (non sono nemmeno convinto che lo sia) è da qualche parte in fondo all'elenco di tutte le possibili "migliori pratiche". Direi che ci sono molte molte cose più importanti utilizzando hjkl.
Martin Tournoij,

5
@Carpetsmoker Non credo sia necessario classificare le migliori pratiche. A meno che tu non abbia un forte desiderio di usare i tasti freccia perché non fare come raccomandato da Vim? Soprattutto se sei nuovo su Vim ... sappiamo tutti quanto sia difficile cambiare il modo in cui facciamo qualcosa una volta radicata.
B Layer

1
"rallenti notevolmente il tuo editing" - mi sembra abbastanza esagerato ... tuttavia sono d'accordo che vale la pena provarlo. Onestamente, non è abbastanza importante per la guerra.
Ombra

2
@BLayer no non qui - questa è la discussione più civile sull'argomento che penso di aver visto. Ma le guerre sono state certamente combattute ...
Shadow

1
don't think it's necessary to rank best practicesBene, mi sembra che dovremmo concentrarci sulle cose che ci danno il miglior valore nella vita, dato che le risorse sono limitate e che la vita è breve. Mi capita di sapere che i tasti hjkl sono il cuore a causa di un'infanzia sbagliata che gioca a canaglia, larn, angband, ecc. Su un laptop senza tastierino numerico, ma alcune persone hanno trascorso la loro infanzia meglio e dovranno "disimparare" i tasti freccia a prescindere. Penso che i movimenti di apprendimento, le gamme, ecc. Siano un modo molto più utile per passare il tempo.
Martin Tournoij,

16

Altre risposte hanno affermato che la perdita di efficienza derivante dal spostare le mani dalla fila in casa non è un grosso problema, e per lo più concordo. Tuttavia, ciò che è un grosso problema è quando stai imparando vim, usando sempre i tasti freccia per evitare di tornare alla modalità normale.

In altre parole, usare un singolo in cui avresti usato un singolo hnon è una perdita enorme di produttività, ma l'utilizzo di un punto in cui avresti potuto usare EscI è una perdita enorme.

Ecco perché le persone ti dicono di evitare i tasti freccia quando stai imparando vim, perché ti costringe a imparare la modalità normale invece di non lasciare mai la modalità di inserimento. La modalità normale è dove sono tutti i tuoi guadagni di efficienza.


1
+1. In altre parole: "Non usare i tasti freccia e non usare hjkl". (Mantenimento dell'iperbole intenzionale.)
wchargin

3
In realtà, invece di 10 volte si potrebbe avere utilizzato 1 0 o, ancora più semplice, Home. Quest'ultimo funziona anche con Blocco note di Windows.
Ruslan,

7

Ci sono due ragioni principali per cui le persone dicono che non dovresti usare i tasti freccia. Alcuni sostengono che hjkl sia preferito perché tiene le mani sulla fila di casa, il che non è falso , ma non importa. Altri, incluso me stesso, direbbero che non dovresti usare i tasti freccia se stai spostando più di alcuni caratteri, ma non dovresti nemmeno usare hjkl.

L'importante non è quali chiavi stai usando, ma piuttosto quante . Se vuoi spostarti all'inizio della parola, non colpisci hhh; hai colpito b. La fine della parola è eno llll. All'inizio della riga: 0, fine della linea: $. E qualsiasi altra cosa, /searchper il testo che esiste dove vuoi andare. (o qualunque dei comandi avanzati di movimento che preferisci).

Ma ogni volta che ti ritrovi a digitare la stessa chiave più di due volte di seguito, c'è un modo migliore per farlo.


7

Un'affermazione più precisa potrebbe essere "usare i tasti freccia è una cattiva pratica mentre si cerca di imparare meglio vim " . Le persone che non conoscono Vim sono abituate a usare i tasti freccia per spostarsi e quindi non imparano hjkl, quindi non hanno la possibilità di vedere se questo è preferibile.

Personalmente, dopo aver acquisito una certa familiarità con vim, ho disabilitato i tasti freccia per un po 'per riagganciarli hjkle riattivarli in seguito per semplificare il mio .vimrc. La saggezza convenzionale vale nel mio caso; una volta che ho saputo usare entrambi hjkle i tasti freccia, mi sono ritrovato quasi esclusivamente ad usare il primo.


6
Non sono d'accordo. Come dice questo blog , l'approccio "tutto o niente" per i principianti aiuta a causare la reputazione "ostile agli utenti" di VIM. I nuovi utenti iniziano, impantanati e sopraffatti e (non a caso) concludono che vim è un disastro e tornano a un editor in cui possono essere decentemente produttivi. - Se stai imparando a nuotare, non ti butti giù dalla barca nell'oceano aperto. È perfettamente accettabile remare nella piscina per bambini fino a quando non ti senti a tuo agio con l'acqua.
RM

2
... per non dire che disabilitare i tasti freccia non funzionerà per le persone. Ma è un passaggio "Mi piace vim e voglio imparare a usarlo meglio", non un passaggio "Sono nuovo per vim e voglio imparare a usarlo".
RM

5

La solita risposta riguarda l'efficienza. Probabilmente sei stato addestrato nel corso degli anni a utilizzare la digitazione tattile, che impiega tenendo le mani su asdf e jkl ;. La stragrande maggioranza dei vincoli chiave di Vi sono progettati attorno a questo fatto, compresi i comandi di movimento hjkl.

Personalmente uso entrambi. Uso hjkl quando sto modificando attivamente grandi sezioni di testo e i tasti freccia durante lo scorrimento dei file di registro (e |, g e / quando eseguo modifiche spot in un file). Questo è solo ciò che funziona bene per me, e in un caso come questo, è ciò che conta davvero.


2

Molto tempo fa, molti terminali non avevano i tasti freccia o non li avevano tutti e quattro. I sistemi software che necessitavano di navigazione normalmente fornivano una sorta di approccio di navigazione senza fare affidamento sui tasti freccia e l'hjkl di vi è un esempio canonico. (Un altro esempio classico è ^ E- ^ S- ^ X- ^ D di WordStar) Man mano che l'utilità di navigazione da tastiera diventava sempre più evidente, sempre più nuovi terminali cominciavano a venire con i tasti freccia e i sistemi software spesso li associavano ai vecchi modi di navigazione. Tuttavia, ciò forniva una sorta di preoccupazione per la portabilità: se i bambini addestrati nelle scuole dovessero fare affidamento su una caratteristica così stravagante come i tasti freccia, il pensiero era che potrebbero non essere in grado di essere produttivi sul - una volta comune - tastiere senza tasti freccia.

Quindi, gli insegnanti dei corsi di informatica di base hanno iniziato ad avvertire con cautela gli studenti di imparare a usare il minimo comune denominatore in modo da massimizzare la loro occupabilità. E questa pratica è sopravvissuta a lungo a qualsiasi motivo che potesse aver avuto una volta.

Nelle moderne implementazioni di vi, il motivo principale per preferire hjkl è che è leggermente più veloce usare i tasti già sotto la tua mano che spostare la mano ovunque siano i tuoi tasti freccia. L'aspetto negativo di evitare il cambio di contesto della tua mano, ovviamente, è che potresti dover eseguire un cambio di contesto di vi. Al giorno d'oggi, quando gli umani sono molto raramente apprezzati digitando la velocità, se si fa l'uno o l'altro è praticamente una questione di preferenza personale, e non c'è più nulla di intrinsecamente negativo nell'uso dei tasti freccia, se mai ce ne fosse.

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.