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


18

Quindi, sono principalmente uno sviluppatore .Net che fa di tanto in tanto alcune cose in Java, Python e pochi altri. Ho sentito molte persone lodare Vim ed Emacs per aumentare notevolmente l'efficienza una volta che le basi sono state inchiodate. Posso sicuramente vedere quante delle funzionalità potrebbero essere molto utili con una pratica sufficiente e persino credere che la curva di apprendimento valga probabilmente la pena. Tuttavia ... sembra che dovresti davvero essere una sorta di mago 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 ad usare Vim e penso che alcune delle sue funzionalità siano fantastiche (modifica delle colonne per esempio), ma sembra che molti degli strumenti forniti dagli IDE di peso elevato semplicemente non possano essere sostituiti acquista anche il testo più scarso editore.

  • generazione di file dbml per Linq-to-SQL
  • Test automatizzati
  • progettazione di UI
  • Creazione / organizzazione di progetti e soluzioni

So che Vim ed Emacs possono fare molte delle stesse cose in modo molto potente che VS può (come intellisense, refactoring, ecc.) E può essere in grado di fare alcuni o tutti gli esempi che ho fornito, ma è realistico dirlo che qualcuno che lavora su queste piattaforme trarrebbe effettivamente vantaggio da Vim o Emacs?


2
Lavoriamo in Eclipse nel mio negozio, ma qui c'è un ragazzo che usa Vim come suo editor pimary ed Eclipse solo per attività di compilazione e gestione del codice.
Michael K,

Risposte:


14

C'è un mix di concetti in corso lì, il che forse non è sorprendente dal momento che VS combina un sacco di funzioni piuttosto disparate insieme. Una citazione (da questo sito) suggerisce che Emacs non è un buon IDE, Unix è un buon IDE. L'idea è che nel mondo Linux / Unix, fai affidamento su più strumenti specializzati che giocano bene insieme piuttosto che uno strumento monolitico che fa tutto.

Ora programma principalmente in C # e utilizzo 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 è un mapping 1 a 1 e ci sono diversi modi per raggiungere gli stessi obiettivi usando un editor di testo e / o altri strumenti.

Inizialmente avrei affrontato ciascuno dei tuoi punti, ma la risposta si riduceva sempre a "sì, potresti" in qualche modo. In genere, farebbe affidamento su: 1) uno strumento esterno (come un designer dell'interfaccia utente) per generare codice per te, importandolo; 2) supporto dell'automazione dall'interno dell'editor (come il codice Elisp in Emacs) per automatizzare le attività ripetitive; oppure 3) ti adatteresti all'utilizzo di strumenti di testo anziché visivi (come usare MSBuild e scrivere i tuoi file di progetto invece di fare affidamento sull'impostazione di VS).

Nel mondo Emacs, non hai uno strumento che fa tutto, hai molti strumenti e la possibilità di far crescere più strumenti di cui hai bisogno. Non lo so ancora abbastanza bene per fare tutto questo, quindi uso VS e sono contento degli strumenti che mi dà. VS è un IDE davvero potente, davvero buono. Ora, se stessi facendo Java, avrei dovuto discutere quale strumento avrei usato perché non conosco molto bene Eclipse o IntelliJ. Per qualsiasi altra lingua, Emacs vince praticamente perché farà molto di più per me rispetto a qualsiasi altro editor di testo o IDE a metà che quelle lingue potrebbero usare. (Tranne forse Smalltalk, ma questo è un caso unico.)


6

ma è realistico affermare che qualcuno che lavora su queste piattaforme trarrebbe beneficio da Vim o Emacs?

Lascia che ti dia il mio esempio: lavoro su un sistema ampiamente (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 abbiamo creato il prodotto con esso, ma si è rivelato un compito impossibile) e non ho vantaggi di intellisense, navigazione del codice, diagrammi di classe, ecc. Lo strumento che funziona per me è vim + ctags. Anche questo non è perfetto (i tag sono facili da confondere), ma molto meglio dell'uso di un editor di codice inferiore senza supporto per la navigazione del codice.

Ora capisco che la maggior parte degli sviluppatori .NET o Java non si trovano nella stessa posizione di me e probabilmente stanno meglio usando un IDE se ha un buon editor di codice o almeno un componente aggiuntivo che migliora quello predefinito. Per Visual Studio ci sono componenti aggiuntivi come VsVim che possono rendere più piacevole l'esperienza di programmazione. Lo stesso vale per Eclipse AFAIK.


3

Dubito che molti utilizzino più esclusivamente VIM o Emacs. Ma devo ancora trovare uno sviluppatore che non utilizza un editor di testo (sia esso uno di quelli o qualcos'altro) in virtù di un IDE completo per alcune cose, spesso molte cose.

Ricorda che nel tuo lavoro c'è molto di più 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. Cambiare rapidamente qualcosa in una singola fonte o semplicemente controllare qualcosa in un file noto, è troppo lungo. Il caricamento del file in VIM richiede solo pochi secondi.


1
anche se notepad ++.
Raffael,

non l'ho mai usato, ma ho visto altri usarlo (sono un VIM flunky :)).
jwenting

2

Trovo che usare un IDE e vim (il mio editor preferito personale) non siano concetti che si escludono a vicenda. Durante lo sviluppo di .NET, di solito imposto una combinazione di tasti di scelta rapida che aprirà il file corrente su cui sto lavorando nell'IDE in vim e posiziona il cursore nella stessa posizione. In questo modo se voglio fare il genere di cose in cui vim è bravo (come usare macro, editing verticale, reindenting, diff, ecc.), Quindi premo la combinazione di tasti e botto ho il mio editor preferito attivo, do le mie modifiche, salva il file ed esco, quindi sono di nuovo nell'IDE (puoi configurarlo in modo che il file si ricarichi automaticamente quando è stato modificato al di fuori dell'IDE in VS). In questo modo ottengo il meglio da entrambi i mondi.

Usavo i linguaggi di scripting per manipolare i file di testo in modi complicati. Una volta scoperto il potere di usare le macro di Vim (e anche alcune altre funzionalità) ho scoperto che posso fare questo tipo di modifiche / manipolazioni in modo molto più rapido ed efficiente di quanto potrei fare con un linguaggio di scripting.

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

i miei 2 centesimi :)


Sì, ho giocato con alcuni plugin per VS per farmi saltare in emacs, usare emacs come "finestra dell'editor di codice" o semplicemente usare i keybind di emacs. Non ho amato nessuno di quelli. Una macro per aprire gli emacs e saltare allo stesso punto del cursore sembra un'idea piuttosto interessante. Dovrei provarlo. Per lo più ho solo copia-incolla tra i due quando ho bisogno di fare qualche manipolazione del testo pesante.
CodexArcanum,

0

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

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.