Emacs-as-OS: obsoleto? [chiuso]


22

Nel tentativo di raggiungere almeno lo stato di principiante con un editor così leggendario, negli ultimi due mesi ho codificato Emacs. Cerco di mantenere un cuore aperto, ma mi trovo continuamente in disaccordo con una scelta progettuale fondamentale: che Emacs consente ai suoi utenti di non dover mai andarsene. In un mondo del 2010, penso solo che ogni caratteristica laterale di Emacs sia irrimediabilmente dietro il software dedicato:

  • Non userei mai il suo browser integrato; Chrome è avanti di anni.
  • Non userei mai la sua funzione diretta; Path Finder (Mac OS X) soddisfa le mie esigenze.
  • Non userei mai la sua e-mail integrata; l'interfaccia web di Gmail ha funzionalità più pertinenti come Posta prioritaria.
  • Eccetera.

Certo, potrei occasionalmente immergermi in Emacs per usare regexps, ecc. Per una delle attività sopra, ma a parte le regexps, non vedo davvero alcun motivo per toccare mai quelle caratteristiche secondarie. Sono un principiante, ma ho la sensazione che Emacs-as-an-OS sia obsoleto.

Esperti di Emacs, pensate che la scelta di Emacs di essere un ambiente globale sia la scelta giusta per il 2010 e il futuro? Ci sono particolari funzionalità periferiche che sono ancora in anticipo o in anticipo rispetto alle alternative?


9
È davvero una domanda? Sembra che tu abbia già deciso.
Larry Coleman,

5
@Emacs è davvero bello per lo sviluppo di gcc + gdb in un ambiente Unix. È anche bello per scrivere LaTeX.

20
Ecco perché Emacs ha uno psichiatra incorporato.
Tim Post

3
@Tim, Mx tetris è molto più divertente.

2
Ti capisco perfettamente ... Ho usato vi per anni e mi sono preso del tempo per imparare Emacs ... e sono giunto alla conclusione che entrambi non si adattano alle mie esigenze ... per la programmazione, preferisco un moderno IDE (Eclipse) e per un semplice editing / scripting del testo, nano va bene.
Oliver Weiler,

Risposte:


14

Ho usato emacs negli ultimi 10 anni (da e a) e posso solo dire che hai assolutamente ragione . Ai tempi, ho usato gnus e il browser w3, ma chiaramente non sono più all'altezza rispetto ai programmi dedicati. Ma, ovviamente, non puoi eseguire Chrome in modalità testo, quindi è qui che vince emacs. E anche lì, preferirei usare lynx / elinks o mutt per quello.

Anche Emacs-the-programmers-editor ha perso il suo tocco. La modifica del testo va bene, ma quando scrivo il codice , mi trovo a desiderare funzioni come: goto definition, completamento automatico, refactoring, suggerimenti di sintassi, documenti dei parametri ecc. Ecc. (Pensa Eclipse). Ho provato un paio di modalità emacs ma non ho mai funzionato bene. E no, non voglio imparare l'elfo, grazie.

Inoltre, emacs non capisce davvero la semantica del codice. Ciò è dolorosamente ovvio quando si codifica in un file contenente più lingue come html con javascript e php o qualcosa del genere. Si rompe e basta. Per questo, preferisco di gran lunga usare qualsiasi altro editor (notepad ++ o qualsiasi altra cosa) che faccia il lavoro molto meglio.


5
Tra le cose che elenchi, Emacs ha in realtà "goto definition" (usando etags), "auto completamento" ( autocomplete.el, credo), suggerimenti di sintassi / documenti dei parametri (su una base lingua per lingua). L'unico che dici che non supporta AFAIK è il refactoring automatizzato, che non è né necessario né utile per tutte le lingue. Molteplici modalità sono atroci; esiste e supporta PHP e linguaggi misti, ma è male (come eccessivamente lento a meno che non sia sul mio desktop). Ti darò anche lo stesso consiglio che do a qualsiasi collega: se non vuoi imparare Lisp, non usare Emacs, non farà nulla per te.
Inaimathi,

8
Concordato; Emacs non è un sistema operativo. La mia obiezione è "Anche l'Emacs-programmatore-editore ha perso il suo tocco". Questo è un argomento particolarmente irragionevole dato che ti rifiuti di imparare Elisp, dal momento che la maggior parte del vantaggio di Emacs, il programmatore-editore, deriva dall'applicazione delle personalizzazioni. Non obietterei a "Non uso Emacs perché non ho voglia di imparare Lisp", ma lo fai sembrare come se la tua ignoranza intenzionale dello strumento influisse sulla sua forma fisica. Questo è alla pari con me che dice "Eclipse fa schifo perché non ha il supporto PHP. E non ho voglia di imparare come installare plugin, grazie."
Inaimathi,

1
@Inaimathi Non devi imparare elisp (o nessuna lingua) per poter usare eclissi correttamente. Neanche l'installazione di plug-in lo richiede.
Martin Wickman,

2
@Martin - Non ha il supporto PHP integrato (o no quando l'ho usato); è necessario installare un plug-in per questo. L'affermazione sopra citata equivale a "[Editor] fa schifo perché non ha [funzionalità che ha effettivamente, ma che deve essere abilitato], ma non ho davvero voglia di imparare [cosa che devi fare in ordine per abilitarlo] ", e il mio punto era che questo è un argomento irragionevole.
Inaimathi,

3
@Inaimathi: Per quanto riguarda il refactoring, stavo cercando un programma di refactoring automatizzato C ++, e uno dei pochi che ho trovato era in elisp. Se dici "emacs non supporta X", è molto probabile che ti sbagli.
David Thornley,

19

Scegli lo strumento giusto per il lavoro.

Prova a eseguire Chrome o Path Finder tramite una connessione ssh: qui avrai bisogno di strumenti alternativi ed Emacs è stato progettato per funzionare in un terminale.


Un buon punto su ssh.
Alcubierre Drive,

3
inoltro x11?
TheLQ

7
Quante persone utilizzano effettivamente un browser Web tramite una connessione SSH?
compman,

1
@compman, sì. Può essere estremamente utile per il download di file da siti Web.

1
OS X ha VNC, basta tunnelare la connessione VNC tramite SSH e non devi preoccuparti che OS X non usi X11.
Lie Ryan,

8

Non uso nemmeno il terapista integrato così tanto, ma uso Emacs e mi piace, non per la sua natura globale ma perché è infinitamente configurabile e potente come editor di testo. Inoltre conosco un sacco di tasti per questo. La corretta modifica del testo riguarda le sequenze di tasti.

Se vuoi sviluppare la tua produttività con esso, Steve Yegge ha alcuni buoni consigli.


Sono fortemente in disaccordo con l'approccio di Steves alla riconciliazione di tonnellate di chiavi per far sì che Emacs si comporti. Impara le combinazioni di tasti standard e usa i tuoi .emac per modificarne il comportamento.

Il suo punto è principalmente ergonomico: non sta dicendo che c'è un problema con le associazioni standard come associazioni, sta dicendo che c'è un problema con la posizione dei tasti sulla tastiera e che se vuoi renderli facili da usare , è necessario trovare i tasti a tale scopo che non hanno bisogno di aggrovigliare i mignoli negli angoli più lontani della tastiera. Posso vedere il senso in questo, ma ti limita se cambi frequentemente la macchina in quanto hai bisogno di un altro set di memorie muscolari o per passare le età a riconfigurare ogni macchina che usi.
glenatron,

5

Emacs non è mai stato destinato al mercato di massa. È progettato per un uso efficiente da parte di persone che hanno avuto il tempo di imparare come funziona. Detto questo, una taglia non va bene per tutti, quindi potrebbe non piacerti emacs anche dopo averne appreso di più.

EDIT: Le mie due funzionalità preferite di emacs oltre alla modifica del testo sono la modalità shell e gnus. Dopo essermi frustrato con Google Gruppi a causa di tutto lo spam, mi sono iscritto a Eternal September e ho imparato a usare gnus. È molto più veloce navigare tra i messaggi, e solo le pubblicazioni di spam occasionali riescono, e liberarsene è una questione di pressione di un tasto. La modalità shell mi è particolarmente utile al lavoro perché copia / incolla è più efficiente di quanto non lo sia in un prompt di DOS.


Non sto liquidando l' editor di testo come obsoleto; Sono d'accordo, è molto efficiente una volta che ti ci abitui. La mia domanda riguarda il merito della scelta del design che dovresti essere in grado di fare qualsiasi cosa senza lasciare Emacs. Ci sono caratteristiche periferiche specifiche che sono ancora eccezionali o hai una visione approfondita della storia di funzionalità periferiche un tempo eccezionali che sono state superate?
Alcubierre Drive,

1
Ho eliminato il licenziamento come sezione obsoleta dopo aver letto i tuoi commenti. Non uso emacs per tutto, ma mi piacciono molto la modalità shell e gnus.
Larry Coleman,

Dolce! Ho aggiunto una nuova seconda metà alla mia domanda, in risposta al tuo feedback. Il tuo commento risponde così +1
AlcubierreDrive

1
Anche essere in grado di fare tutto in emacs ha avuto molto più senso nel 1994, quando i computer erano molto più lenti di quanto non siano ora. Di tanto in tanto uso dired, se sono già in emacs e uso molto la shell. Essere in grado di fare molte cose nel mio editor o almeno senza passare al mouse è una vittoria per me. Potresti avere gusti diversi (questa è davvero una questione di gusti ad un certo livello)
Zachary K

2

Ho sempre considerato Emacs come una piattaforma piuttosto che una soluzione pronta all'uso. Esistono molti pacchetti che duplicano funzionalità o scopo e spetta a te decidere se soddisfano o meno le tue esigenze.

Questo è anche il motivo per cui molte cose non sono aggiornate. La maggior parte delle persone (che ho incontrato comunque) che usano Emacs non lo usano per leggere e-mail o navigare sul web. Tuttavia, sono difficile trovare un altro editor che abbia

  • come sofisticate funzionalità di editing remoto
  • creazione e modifica di macro incorporate in formato libero
  • profondità e ampiezza delle estensioni / pacchetti disponibili

È stato il mio editore preferito da oltre un decennio per lo sviluppo di software e l'elaborazione di testi.

Soprattutto non devo toccare il mouse quando utilizzo Emacs.


2

Emacs potrebbe essere un sistema operativo adatto a te se desideri apprendere Lisp e scrivere le tue funzionalità adatte alle tue esigenze.

Ma al giorno d'oggi puoi trovare tutto il necessario in altri strumenti realizzati da altre persone fantastiche. Quelle persone hanno creato quegli strumenti perché sentivano di averne bisogno, proprio come te che li userà. Poiché molti di essi sono open source, esiste una comunità che li renderà sempre meglio, con tutte le funzionalità di cui hai bisogno.

Cercare di migliorare Emacs è difficile perché devi imparare Lisp. Anche i plugin esistenti stanno diventando sempre più vecchi. Prendiamo ad esempio le modalità linguistiche, le lingue comuni come JS e PHP sono difficilmente supportate anche per l'evidenziazione della sintassi. La migliore modalità che potresti trovare per loro semplicemente non è abbastanza.

Emacs è un ottimo strumento nelle mani giuste e per i compiti giusti. Ma ci sono strumenti migliori per compiti specifici, e dovresti assolutamente usarli invece.


1

Non desidero iniziare una guerra santa, in realtà, c'è stato un tempo in cui ho usato emacs ogni secondo giorno (un giorno vim, un giorno emacs). Non c'è niente di sbagliato in Emacs, è davvero un ottimo strumento. Ottimo, ottimo strumento.

Ma come un vero vim'er, sono sempre stato un po 'frustrato dal fatto che molti emacser stanno cercando di usare gli emacs letteralmente ovunque, per letteralmente tutti i compiti.

Leggere la posta, interrogare il database, leggere i pdf: questi sono i compiti più innocenti che ho visto essere "emacsificati".

Quindi, per quanto mi riguarda, ci sono aree principali dell'albero dell'utilizzo di emacs:

  1. Di modifica del testo. Ed è uno strumento straordinario e strabiliante. Credetemi, dopo aver usato vim o emacs per molto tempo, vi mancheranno totalmente le sue funzionalità negli IDE più avanzati.

  2. IDE. Bene, potrebbe essere fatto. Inoltre, potrebbe in qualche modo competere con le modalità IDE. Ma il fatto è che per renderlo davvero competitivo, dovresti investire molto. Dovresti provare a mettere insieme molti script diversi. Dovresti anche scrivere i tuoi frammenti di codice. A dire il vero non lo farei.

  3. Altri compiti, molti dei quali esotici o addirittura esoterici. Giocare a tetris e così via. Meglio di no.


1
Come utente di lunga data di entrambi emacs e vi (oltre 20 anni di esperienza in entrambi, anche circa 1 anno di utilizzo di ed come editor principale), trovo emacs quasi supremo per l'occasionale "Ho codice ripetitivo in arrivo , lascia che l'editor lo generi automaticamente "(piuttosto che, diciamo, scrivi un altro pezzo di codice, quindi compila ed eseguilo, per generare il codice).
Vatine,

0

Da qualche parte nella mia collezione di cose sono sicuro che mia moglie vorrebbe semplicemente buttare via, ho una copia di Emacs su QIC-40 Tape. Ho pagato $ 50 per ottenerlo.

Non potevo sopportarlo # @% # $ # $% @ ^ #% #, non posso sopportarlo ora. Non sto dicendo che non sia un ottimo editor per alcuni, ma per me .. si mette in mezzo più di ogni altra cosa. L'idea originale era quella di aggirare le chiavi della bottiglia di coca cola , e lo ha fatto molto bene.

Se esegui un programma, qualsiasi programma, lo fai nella speranza che aumenti (o almeno non impedisca) la tua produttività. Se non funziona per te, non usarlo.

Fidati di me, non sei il problema.


2
"Questo è un manufatto importante e appartiene a un museo!"

1
"Se non funziona per te, non usarlo" è un appello alla soggettività, quindi "non sei il problema" è una contraddizione.
Jon Purdy,
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.