Vim o Emacs sono pratici per linguaggi come .Net o Java? [chiuso]

18

Quindi, sono principalmente uno sviluppatore .Net che fa qualcosa in Java, in Python e in pochi altri di volta in volta. Ho sentito molte persone elogiare Vim ed Emacs per aumentare notevolmente l'efficienza una volta che le basi sono state fissate. Posso sicuramente vedere quante funzioni potrebbero essere molto utili con una pratica sufficiente, e anche credere che la curva di apprendimento valga probabilmente lo sforzo. Tuttavia ... sembra che tu debba essere una sorta di procedura guidata di macro e tasti di scelta rapida per essere efficiente in Vim o Emacs come lo sviluppatore medio è in Visual Studio, Netbeans, Eclipse o altre piattaforme. Ho iniziato a imparare a usare Vim e penso che alcune delle sue funzionalità siano fantastiche (editing di colonne, ad esempio), ma sembra che molti degli strumenti forniti dagli IDE pesanti non possano essere sostituiti semplicemente comprando anche il testo più ridimensionato editore. Alcuni processi che sarei scettico a chiunque possa essere più efficiente in Vim includono (so che VS è il migliore, quindi mi atterro a quelli):

  • generazione di file dbml per Linq-to-SQL
  • Test automatici
  • progettazione di interfacce utente
  • Creazione / organizzazione di progetti e soluzioni

So che Vim ed Emacs possono fare molte delle stesse cose molto potenti che VS può (come intellisense, refactoring, ecc.) e potrebbe essere in grado di fare alcuni o tutti gli esempi che ho fornito, ma è realistico dire che qualcuno che lavora su queste piattaforme potrebbe trarre benefici da Vim o Emacs?

    
posta Morgan Herlocker 25.03.2011 - 17:49
fonte

5 risposte

14

Hai un mix di concetti in corso lì, che forse non è sorprendente dato che VS combina insieme molte caratteristiche piuttosto disparate. Una citazione (da questo sito) suggerisce che Emacs non è un buon IDE, Unix è un buon IDE. L'idea è che nel mondo Linux / Unix, ci si basa su più strumenti specializzati che giocano bene insieme piuttosto che uno strumento monolitico che fa tutto.

Ora, programma principalmente in C # e uso VS per farlo. Adoro anche Emacs e lo uso praticamente per tutto il resto. Ora, come dici tu, cosa puoi fare in Emacs e cosa è meglio fare in Emacs sono distinti. Ma in molti casi non si tratta di una mappatura 1-a-1 e ci sono diversi modi per raggiungere gli stessi obiettivi usando un editor di testo e / o altri strumenti.

Originariamente intendevo indirizzare ognuno dei tuoi punti, ma la risposta si riduceva sempre a "sì, potresti" in qualche modo. Tipicamente ti affidi a: 1) uno strumento esterno (come un designer dell'interfaccia utente) per generare codice per te, importarlo; 2) supporto dell'automazione dall'interno dell'editor (come il codice Elisp in Emacs) per automatizzare attività ripetitive; o 3) ti abituerai ad usare strumenti basati sul testo invece di quelli visivi (come usare MSBuild e scrivere i tuoi file di progetto invece di affidarti alla configurazione di VS).

Nel mondo di Emacs, non hai uno strumento che faccia tutto, hai molti strumenti e la possibilità di far crescere più strumenti quando ne hai bisogno. Non lo so ancora abbastanza bene per fare tutto questo, quindi uso VS e sono felice con gli strumenti che mi fornisce. VS è un IDE davvero potente, davvero buono. Ora, se stavo facendo Java, dovrei discutere quale strumento usare perché non conosco molto bene Eclipse o IntelliJ. Per qualsiasi altra lingua, Emacs praticamente vince perché farà molto più per me di qualsiasi altro editor di testo o IDE mezzo fatto che quelle lingue potrebbero usare. (Tranne forse Smalltalk, ma è un caso unico.)

    
risposta data 25.03.2011 - 18:33
fonte
6

but is it realistic to say that someone working on these platforms would actually benefit from Vim or Emacs?

Lascia che ti dia il mio esempio: lavoro su un sistema che è in gran parte (ma non al 100%) codificato con C #. Il sistema non può essere creato da Visual Studio: è troppo complesso. Pertanto, non ho un file sln (alcune persone hanno provato a mantenerne uno anche se non costruiamo il prodotto con esso, ma si è rivelato un compito impossibile) e non hanno i vantaggi di intellisense, la navigazione del codice, diagrammi delle classi, ecc. Lo strumento che funziona per me è vim + ctags. Anche questo non è perfetto (i ctags sono facili da confondere), ma molto meglio che usare un editor di codice inferiore senza supporto per la ricerca del codice.

Ora capisco che molti sviluppatori .NET o Java non si trovano nella stessa posizione in cui sono io e probabilmente stanno meglio usando un IDE se ha un buon editor di codice o almeno un componente aggiuntivo che migliora l'impostazione predefinita uno. Per Visual Studio ci sono componenti aggiuntivi come VsVim che possono rendere l'esperienza di codifica più piacevole. Lo stesso per Eclipse AFAIK.

    
risposta data 25.03.2011 - 18:01
fonte
3

Dubito che ci siano molti che usano esclusivamente VIM o Emacs. Ma devo ancora trovare uno sviluppatore che non usi un editor di testo (che si tratti di uno di quelli o qualcos'altro) in lode di un IDE completo per alcune cose, spesso molte cose.

Ricorda che c'è molto di più nel tuo lavoro che scrivere codice Java, C # o C ++. Ci sono script ANT, makefile, file XML, file di configurazione di molti tipi. E per molti piccoli compiti, il tempo di avvio di quell'IDE potrebbe essere semplicemente troppo lungo. Eclipse può richiedere alcuni minuti per iniziare, VS simile. Per cambiare rapidamente qualcosa in una singola fonte, o semplicemente controllare qualcosa in un file conosciuto, è troppo lungo. Il caricamento del file in VIM richiede solo pochi secondi.

    
risposta data 28.03.2011 - 10:50
fonte
2

Trovo che l'utilizzo di un IDE e di Vim (il mio editor preferito personale) non siano concetti che si escludono a vicenda. Quando eseguo lo sviluppo .NET, di solito creo una combinazione di tasti di scelta rapida che aprirà il file corrente su cui sto lavorando nell'IDE in Vim e metto il cursore nella stessa posizione. In questo modo, se voglio fare il genere di cose che vim è fantastico, (come l'uso di macro, editing verticale, rientro, diffing, ecc.), Poi premo il tasto combo e bang ho il mio editor preferito, do le mie modifiche, salvare il file e uscire, e poi sono di nuovo in IDE (è possibile configurarlo in modo che il file si ricarica automaticamente quando è stato modificato al di fuori dell'IDE in VS). In questo modo ottengo il meglio di entrambi i mondi.

Usavo i linguaggi di scripting per manipolare i file di testo in modi complicati. Una volta scoperto il potere di usare i macro di vim (e anche alcune altre caratteristiche) ho scoperto che posso eseguire questo tipo di modifiche / manipolazioni in modo molto più rapido ed efficiente di un linguaggio di scripting.

È molto comune per me generare uno script off-shell per fare cose complicate usando vim, eseguire lo script della shell che ho creato e poi buttarlo via.

my 2 cent: :)

    
risposta data 10.02.2012 - 19:25
fonte
0

Dai un'occhiata ai OpenIDE e Test continui progetti. Il primo si concentra sull'aggiunta del supporto del progetto .NET a qualsiasi editor incluso VIM ed Emacs. L'altro è un test runner continuo simile a AutoTest / pythons Sniffer / Autonose di Ruby. Può funzionare come plug-in VS o standalone.

    
risposta data 13.07.2012 - 14:58
fonte

Leggi altre domande sui tag