emacs portachiavi [chiuso]

-1

Ho letto molto su vim ed emacs e su come ti rendono molto più produttivo, ma non sapevo quale scegliere. Alla fine, quando ho deciso di insegnarmi una lisc comune, la decisione è stata semplice: tutti dicono che non esiste un editor migliore per la chiarezza comune, rispetto a emacs + melma. Così ho iniziato con il tutorial di emacs e immediatamente mi sono imbattuto in qualcosa che mi sembra molto improduttivo. Sto parlando dei collegamenti dei tasti per i tasti cursore:

forward/backward: Ctrl+f, Ctrl+b
up/down: Ctrl+p, Ctrl+n

Trovo che questi attacchi siano molto strani. Suppongo che le dita dovrebbero essere sulle loro file di casa (mi sbaglio qui?), Quindi per muovere il cursore in avanti o indietro dovrei usare il mio indice sinistro e per l'alto e il basso a destra, mignolo e indice destro. Quando lavoro con uno qualsiasi degli IDE di Windows e degli editor di testo per navigare nel testo, di solito metto la mia mano destra in una posizione in modo che il mio pollice si trovi sul Ctrl destro e il mio indice, anello e medio siano sui tasti cursore. Da questa posizione è molto facile e comodo spostare il cursore: posso fare mosse di un personaggio con le mie 3 dita destre, oppure posso premere ctrl con il mio pollice destro e fare mosse di parole. Inoltre posso premere shift con il mio mignolo sinistro e fare selezioni a carattere singolo o parola. Inoltre è una posizione molto comoda per raggiungere PgUp , PgDn , Home , End , Delete e Backspace chiavi con la mia mano destra. Quindi ho ancora più possibilità di navigazione e selezione. Capisco che la decisione di non usare i tasti cursore è di consentire a uno di usare emacs per connettersi alle sessioni del terminale remoto, dove queste chiavi non sono supportate, ma trovo ancora molto sfortunata la scelta dei tasti cursore. Perché non utilizzare j , k , i , l ? In questo modo ho potuto usare la mia mano destra senza allungare troppo le dita. Quindi, come è emacs più produttivo? Cosa sto sbagliando?

    
posta Max 13.11.2012 - 23:32
fonte

4 risposte

3

Queste associazioni di tasti risalgono ai primi anni '70, o forse prima. Dovevano essere mnemonici: F per avanti, B per indietro, N per successivo, P per precedente.

Utilizzo Emacs dal 1976 e lo preferisco per quasi tutto tranne la programmazione Java. Ma trovo le combinazioni di controllo stancanti su una tastiera normale. Al lavoro utilizzo una tastiera Kinesis Contour e ricollego i tasti in modo che il controllo e l'alt siano convenienti per il mio pollice sinistro.

I tasti freccia, pagina su, pagina giù, home, fine, elimina e backspace dovrebbero funzionare tutti.

How is Emacs more productive?

A cosa stai comparando? Trovo che Emacs sia più produttivo di altri editor perché:

  • È altamente personalizzabile. È programmabile su due livelli: immediatamente con i tasti della tastiera o più potente con Emacs-Lisp. Le personalizzazioni di Emacs mi hanno salvato centinaia di migliaia di tasti e centinaia di ore di noia.

  • Non richiede pianificazione in anticipo. Non c'è alcuna distinzione tra cancellazione e taglio. Per spostare il testo, basta cancellarlo in un punto, andare nell'altro posto e tirare il testo cancellato.

  • Il movimento del cursore, la ricerca / sostituzione e altre primitive funzionano meglio di quanto non facciano nella maggior parte degli altri editor che ho usato.

risposta data 14.11.2012 - 00:08
fonte
2

Emacs ha associazioni di tasti configurabili. Se non ti piacciono i valori predefiniti, cambiali.

Ecco alcune cose che dimostrano un numero di comandi specifici di Lisp per la navigazione s-espressioni, cancellazione di s-espressioni, chiusura di tutti i paren aperti, ecc. È passato un po 'di tempo da quando ho modificato il flip, ma ricordo che il comando M- (che racchiude l'elemento successivo in parens) è molto utile. argomento numerico, quindi avvolgerà le successive n cose in parentesi. (Puoi dare un argomento numerico al seguente comando facendo Cu seguito da un numero, o tenendo premuto Meta (probabilmente Alt) mentre digiti un numero.) mette in risalto il confronto tra parents, senza il quale la modifica del lisp è un incubo.

Il post sul blog efficace di Steve Yegge è valido e l'elemento 4 (usa la ricerca incrementale per la navigazione) è parte del motivo per cui ho difficoltà a vedere come le combinazioni di tasti per su / giù / sinistra / destra potrebbero avere un ruolo importante. La ricerca incrementale e alcuni comandi di navigazione con le espressioni S e M-f e M-b (per andare avanti e indietro di una parola) possono occuparsi della maggior parte delle esigenze di navigazione.

Il comando M- / tenterà di completare automaticamente la cosa corrente che stai digitando, il che è molto utile per nomi di variabili / funzioni lunghi. C'è anche il comando C-M-%, e sì, è necessario tenere premuto il tasto control, alt e shift allo stesso tempo, ma ti permette di sostituire le query con espressioni regolari, il che ti consente di fare alcuni trucchetti.

Inoltre, i normali tasti cursore funzionano ancora in emacs (non posso sapere dal tuo post se l'hai notato o meno) e c'è una modalità CUA che ti permette di usare il "taglia-e-incolla" in stile windows se preferiscilo

    
risposta data 14.11.2012 - 05:43
fonte
2

I find these bindings very strange. ... What am I doing wrong?

Dovresti trovarli strani, perché lo sono, o lo saranno finché non avrai avuto tempo sufficiente per abituarti a loro. Se non hai superato il tutorial, ciò che stai facendo male non ti dà tempo per sistemarti prima di fare paragoni con cose che sono già familiari.

Scegliere un editore per un uso a lungo termine è un impegno che, in molti modi, è come trovare qualcuno da sposare. Al primo appuntamento, tutto è completamente sconosciuto e forse a disagio. Col passare del tempo diventerai più a tuo agio e scoprirai che la relazione è una miscela di cose che ti piacciono, cose che non fai e cose che puoi imparare a piacere o almeno tollerare. Se il bilancio complessivo è sbagliato, lo interrompi e passa a quello successivo. Se è giusto, ti infili e hai un compagno per la vita. Una cosa che posso garantire è che disegnare paragoni con la tua ex ragazza alla prima data farà sì che la relazione non vada bene.

Dopo alcuni anni di utilizzo quotidiano di vi (25 anni fa), ho iniziato a utilizzare Emacs ed è stato il mio editor preferito da allora. Non sono qui per esaltare le virtù dell'uno sull'altro (o su qualsiasi altra cosa), ma dirò che il mio primo paio di settimane con entrambi non è stato un picnic. Avevo bisogno di tenere a portata di mano il materiale di riferimento, e il mio lavoro era goffo e lento fino a quando non ho appreso ciò di cui avevo bisogno. Dopo un po ', la situazione è migliorata e ora la maggior parte delle cose che faccio sono così riflessive che non devo pensarci. Lo stesso vale per quasi tutti gli strumenti, e le cose che valgono la pena imparare hanno una curva di apprendimento più ripida.

So how is emacs more productive?

La tua metrica per la produttività sembra essere il livello di comfort con le associazioni chiave, quindi la risposta per Emacs e qualsiasi altro strumento che non utilizzi quotidianamente sarebbe "non lo è".

La mia metrica per la produttività è quanto mi ci vuole per fare le cose che faccio spesso e se lo strumento può essere adattato per ridurre quel tempo.

Caso in questione: ho spesso bisogno di trasformare parti dei miei buffer usando programmi di filtraggio a riga di comando. Emacs fornisce shell-command-on-region (associato a M-| per impostazione predefinita), che mi ottiene a metà strada eseguendo il comando e inserendo i risultati in un nuovo buffer. Usare ciò significava che dovevo passare attraverso un sacco di macchinazioni per estrarre il testo dal nuovo buffer e sostituire quello che avevo selezionato. Per rendermi più produttivo, ho scritto shell-command-in-region , che è circa nove righe di Emacs LISP, legato a M-# e l'ho usato più volte di quanto possa contare.

Le persone hanno scritto centinaia, se non migliaia, di questi tipi di componenti aggiuntivi che vanno da cose semplici come quelle che ho descritto per interfacciare ai sistemi di controllo delle versioni a intere applicazioni come mail Ho utilizzato quotidianamente dalla fine degli anni '80. (Io ne uso altri, ma questo funziona alla grande in un terminale.)

Su una nota correlata: un certo numero di risposte e commenti hanno suggerito che i collegamenti dei tasti in Emacs sono personalizzabili. Lo sono, ma consiglio di non ribadire le basi. Farlo ti lega alle tue personalizzazioni e ti lascerà a bocca aperta quando devi eseguire Emacs su un sistema in cui non puoi semplicemente copiare la tua .emacs in posizione.

    
risposta data 14.11.2012 - 14:24
fonte
0

Come ho già detto, le combinazioni di tasti sono più o meno mnemonici e per capirle devi sapere che i terminali su cui sono stati progettati i tasti di comando di emacs non erano sempre frecce e stavano generando solo codice ASCII (quindi CTRL- H è lo stesso di backspace, se c'era un backspace, CTRL-I come tabulazione, CTRL-J / CTRL-M come invio / ritorno) e il tasto CTRL era il CapsLock è ora o accanto ad esso.

    
risposta data 14.11.2012 - 09:13
fonte

Leggi altre domande sui tag