2009-03-14 15 views
22

Io lavoro come sviluppatore C# in un negozio puramente Microsoft.Ci sono motivi per cui uno sviluppatore C# dovrebbe imparare Emacs/Vim?

Recentemente ho iniziato a insegnare a me stesso l'assemblaggio usando gas e Linux nel mio tempo libero lontano dal lavoro. Mi piace scherzare con Linux, sono ancora molto nuovo ad esso però.

Continuo a sentire che dovrei imparare VIM o Emacs ma il fatto è che non c'è assolutamente alcun modo per usarli nel lavoro, quindi mi sento un po 'colpevole mentre mi diletto a padroneggiarne uno. Peggio ancora, mi chiedo se imparare VIM o Emacs potrebbe rendermi più lento con Visual Studio come confonderei i tasti di scelta rapida.

Attualmente sto facendo il mio editing in Linux usando SciTE (penso che questo sia diventato Notepad ++ su Windows).

Per qualcuno che lavora in un ambiente di prodotto puramente ms c'è qualche ragione per me per imparare Emacs/VIM? Vedo che c'è un'impostazione in vs studio per usare le scorciatoie di Emacs, qualcuno qui è diventato più produttivo padroneggiandoli in vs, o in altre parole puoi vedere che ne vale la pena?

Grazie in anticipo!

correlati:Is learning VIM worth the effort?
Correlati:Is it worth investing time in learning to use Emacs?
Correlati:Why should I use an IDE? (vista dal lato opposto)

+0

Mi sono chiesto spesso la stessa cosa, ma mi farei infuriare da cose semplici come i tasti di invio e le frecce che non funzionano come mi aspetterei. È così istintivo che ho avuto troppi problemi a rompere me stesso. – AaronLS

risposta

15

Lavoro in un negozio Microsoft al 90%, ma uso ancora gvim tutti i giorni. Ho un plugin vi per ogni IDE con cui lavoro. Ti consiglio vim se stai per imparare l'uno o l'altro, ma so che gli utenti di emacs non saranno d'accordo.

emacs e vi sono in giro da molto tempo e sono entrambi molto potenti. Imparare uno di questi potrebbe aprire gli occhi a un mondo più efficiente di programmazione.

24

Begin the flame war :)

Sono un drogato di VIM e non si vergogna di ammetterlo. Trovo che l'utilizzo di VIM mi renda molto più produttivo nella mia vita quotidiana. La codifica è molto più veloce quando non devi togliere le mani dalla tastiera.

Per impostazione predefinita VS ha uno scarso supporto per le associazioni VIM. Tuttavia, è disponibile un componente aggiuntivo a basso costo (ViEmu) che fornisce eccellenti combinazioni di tasti VIM per Visual Studio. Ho una licenza personale e credo che valga ogni centesimo.

Detto questo, c'è una curva di apprendimento ripida associata a VIM. In tutta probabilità, ucciderà la tua produttività per una settimana o due. Dopodiché, i benefici cominceranno ad arrivare e dovresti notare un aumento dei tuoi poteri produttivi.

+2

Indicheremo la perdita temporanea di produttività mentre stai usando Vim. Se torni all'editor standard non dovresti essere rallentato, ma finirai per essere frustrato perché non stai usando Vim. –

0

dai un'occhiata a JP Boodhoo e cosa sta facendo www.jpboodhoo.com. Lui e Kyle Bailey hanno scritto recentemente sui blog sull'utilizzo di VIM come parte della loro esperienza di sviluppo con VS2008.

3

Ho usato VIM quasi esclusivamente e, dopo essermi trasferito in un negozio MS quasi al 100%, non ho riscontrato problemi nel passare da un sistema all'altro.

VIM ed EMACS sono fantastici se sei disposto a imparare le scorciatoie da tastiera. Trovo che non ho davvero problemi quando vado avanti e indietro - Penso che sia d'aiuto che siano un ambiente completamente diverso rispetto a VS che è facile fare il cambio mentale.

È sempre possibile iniziare lentamente - usarli e vedere come va. Avrai qualche curva di apprendimento, ma dipende da te.

Se Scite sta lavorando per te, e stai solo "giocando" come un hobby, potrebbe non valerne la pena. Per me, lo sforzo di apprendere nuovi e diversi modi di lavorare/pensare fa parte del divertimento, però.

+1

Trovo che quando mi trasferisco da Vim a un editor minore come VS, la mia produttività diminuisce quando tutti gli strumenti che sono abituato ad avere a Vim non sono improvvisamente lì e quasi impossibili da recuperare. – greyfade

+1

È così che mi sentivo in VS - ma VS ha molti strumenti anche per VIM - specialmente se si hanno addin come resharper. Si tratta di imparare bene i diversi set di strumenti. Adoro VIM per molti compiti, comunque. :) –

2

Mastering un buon editor è sempre la pena, come sviluppatore si spende un sacco di tempo a digitare testo, la scrittura di programmi, XML, HTML, è possibile salvare molto di quel tempo utilizzando un buon editor e l'utilizzo in modo efficace.

Ho iniziato ad imparare Vi come nove anni fa, e ora non posso vivere senza di esso.

Qualunque sia quale editor si seleziona, penso quasi che sarete in grado di trovare i plugin di avere il modello di ingresso del vostro editor di scelta, in tutti i principali IDE, per Visual Studio è possibile utilizzare ViEmu o Emacs Keybindings

1

Imparare uno sarà completo ne vale la pena. Personalmente raccomanderei emacs ma sono di parte. Sono sicuro al 99% che emacs possa essere installato nel backend di sviluppo .net (non posso pensare alle parole giuste mi dispiace).

4

Io lavoro anche per un solo negozio Microsoft, ma a casa uso solo Linux. Basti dire che uso Vim esclusivamente per il montaggio a casa. Al lavoro, utilizzo Visual Studio per tutti gli sviluppi, ma utilizzo Vim per molte attività che richiedono una complessa manipolazione del testo. Anche se non usassi Vim a casa, sarebbe comunque incredibilmente utile per quello che faccio al lavoro. Il nostro tizio IT pensa che io sia una specie di mago quando mi vede fare le acrobazie di Vim. Deve valere qualcosa, giusto? ;)

1

JaredPar ha menzionato ViEmu, di cui ho sentito parlare molto bene. Ma se ti stai davvero chiedendo quali sarebbero i vantaggi del passaggio, c'è un buon articolo ospitato sul sito ViEmu: Why, oh WHY, do those #[email protected]! nutheads use vi?

Personalmente ritengo che l'utilizzo di gvim sia stato un enorme incentivo per la mia produttività, e lo preferisco decisamente all'editor di Visual Studio o SlickEdit o a qualsiasi altra che ho usato. Ma come menzionato nelle risposte precedenti, Vim può essere una curva di apprendimento ripida. Ci sono persone che lo hanno usato professionalmente per 5-10 anni e stanno ancora imparando cose a riguardo. Vim può essere molto simile a perl ... ci sono molti modi per fare qualsiasi serie di modifiche, e ci può volere un po 'per imparare il migliore.

2

Sono stato un programmatore C/C++ professionale per 16 anni. 5 anni fa ho preso alcuni Common Lisp e ho finito per imparare anche elisp/emacs. Mi diletto anche in Haskell. Ho trovato queste esperienze estremamente utili nella programmazione del C++. Se non altro si arriva a vedere il futuro, come il C++ diventa lentamente più espressivo adottando cose che CL ha avuto per decenni.

L'apprendimento di emacs è un processo lungo e lento che inizia a dare i suoi frutti una volta che sei perfettamente informato sulle sue caratteristiche, il modo di fare le cose e l'elis. Io uso Visual Studio per molto del mio sviluppo, ma spesso passo ad emacs per sfruttare le macro chiave veloci, o per eseguire elaborazioni complesse su una tabella di valori. Ci sono un sacco di cose che puoi fare a poco a poco nell'elite, che richiederebbero alcune ore di capelli strappati con i plug-in di Visual Studios.

+0

Questo è esattamente giusto, avere più strumenti al tuo comando - lingue o editor - ti rende più efficace nella risoluzione dei problemi e nel lavoro. – ashawley

4

Io uso emacs e Visual Studio insieme e avrei un momento difficile senza emacs. VS è ovviamente indispensabile, ma non fornisce la modifica del testo eseguita da emacs. Emacs è il riquadro di modifica del 98,4% per me. Visual Studio ha 12 pannelli diversi, ognuno dei quali importante, ma a volte voglio solo guardare il codice. Emacs mi permette di farlo. E posso dividere le schermate e vedere 4 finestre di modifica su un unico schermo, anche nello stesso file. Con due monitor posso avere finestre emacs su ognuno di essi. Sembra strano ma mi è molto utile quando sto lavorando su diverse parti del codice allo stesso tempo (diciamo una definizione di interfaccia e un'implementazione, allo stesso tempo). Il regex search-and-replace.

Ho la modalità di ripristino automatico attivata in emacs, che è l'analogo della funzione VS che dice "un file modificato fuori da Visual Studio, vuoi ricaricarlo?" Tranne che in emacs, ricarica sempre in modo silenzioso, il che è il modo in cui lo voglio. Quindi rimbalzo da VS a emacs e ritorno, e non c'è mai un problema con le modifiche in sospeso nel codice sorgente che non sono state mostrate nell'altro editor. VS ha la capacità di "schermo intero", ma non ho trovato che sia flessibile o utile come emacs.

Non riesco a immaginare di non avere la capacità di questa combinazione di strumenti. Solo Visual Studio non offre questo. Emacs da solo non sarebbe sufficiente. Uso ancora emacs per frammenti di base e piccoli programmi di test. Uso VS per la gestione di progetti, TFS, test e debugging.

Il mio utilizzo di emacs non è una scelta a questo punto. L'ho preso molto tempo fa, in un'azienda precedente, dove emacs era lo strumento standard, quindi era ... per non dire "facile" ma era automatico. Non riesco a immaginare di imparare Emacs "da solo". Ho imparato le cose in modo osmotico, solo dalla comunità di altri utenti di emacs che mi circondano. Dalle persone nel corridoio, ho acquisito e personalizzato un certo numero di codice elisp per il mio setup. Farlo con un libro ... Non riesco a immaginare.

Per renderti meno produttivo a causa della confusione delle dita ... Non ho avuto un problema.

0

Si dovrebbe imparare almeno come salvare (:w) e modificare i file (magia) in VIM - anche le installazioni minime del sistema operativo lo hanno incluso. In questo modo, se sei bloccato su una casella unix vuota, puoi almeno modificare i file.

In caso contrario, io non comprarlo. Hai pesci più grandi da friggere e lo nano sta migliorando tutto il tempo. Diamine, nano ha alcuni colori di sintassi e indentazione automatica e funziona anche con il mouse su PuTTY.

La cosa migliore da imparare è come configurare Samba nella tua casella unix e quindi utilizzare un vero editor di testo sulla tua casella di Windows come UltraEdit (cue flamewar). Uso questa configurazione per modificare qualcosa di più grande di un file di configurazione in/etc.

+1

Prima di imparare Vim, ho usato nano. Ma dopo aver usato vim e abituato a tutte le scorciatoie da tastiera, nano diventa molto fastidioso. –

+0

evidentemente non hai mai provato seriamente vim/emacs – Sujoy

0

Sono anche uno sviluppatore C# da molto tempo. Quando si sviluppa C++ in Linux, io uso Eclipse CDT perché è la cosa più vicina che ho trovato in Visual Studio.

Essendo abbastanza esperto con vim, lo uso per modificare i file di configurazione di Linux e così via, ma non sono particolarmente attratto da esso per lo sviluppo quando potrei semplicemente usare un IDE.

A proposito, se si utilizza vim, è possibile attivare i numeri di riga e l'evidenziazione della sintassi; Aggiungo sempre queste righe al mio ~ /.file vimrc:

number on 
set syntax 
1

IMHO, no. sto usando acme over vim. gedit o vs2008 al lavoro.

3

Sono stato un utente hardcore di VIM e ho sviluppato anche intellisense per C# (http://insenvim.sourceforge.net/) .. ma con le ultime modifiche di lingua non posso evitare di utilizzare Visual Studio. Ma molte volte guardare indietro usando VIM è per motivi di semplicità. Visual Studio occupa molta memoria e il tempo di avvio è enorme. Anche per leggere un file o fare cose semplici, sono necessari alcuni minuti. Ma con esso è così facile aprire un file e navigare. Potrei portare VIM intellisense a C# 3.0.

0

La velocità di codifica dipende in gran parte dalla scelta dell'editor, quindi è una delle più importanti soluzioni che prenderà.

1

Io uso (e amo) Emacs, ma riesco a capire la gente di là (sono sempre combattuto tra il minimalismo e il lavello-cucina). Ciò che mi fa usare Emacs giorno dopo giorno, e ciò che mi fa alla fine lasciare ogni IDE che io abbia mai usato, è che posso scrivere le funzioni. E quando dico le funzioni intendo le funzioni ; Posso davvero programma l'editor stesso. Aggiungo una nuova funzione, la valutazione e bam ora è nel mio editor. Se uso un po 'questa funzione, si ottiene una combinazione di tasti.

Ho notato che con gli IDE, sono fantastici in una lingua particolare (Eclipse è sorprendente per Java). Non credo che Emacs sia bravo in nessuna lingua (tranne forse come Lisp IDE, ma non cercherò di esaltare le virtù di questo qui ...) come IDE dedicato ma è meglio in lingua N, dove "N" è praticamente un linguaggio di programmazione con o inventato. È bello, se sto imparando un nuovo linguaggio di programmazione (o anche solo saltellare tra C, PowerShell, Haskell, Lisp, Java ... ecc.) Che il mio ambiente è comodo e abbastanza capace. La mia risposta, quindi, è "sì" perché Emacs (o vi, assumerei) ti dà la portabilità nel tuo set di strumenti. Oggi potresti fare C#, ma su tutta la linea, chissà che tu possa hackerare su Monad # ++, e se lo sei, puoi scommettere che ci sarà una modalità Emacs per questo.

0

Ho usato Vim ed Emacs ma è probabilmente il 5% più lento. Una volta ho misurato la quantità di tempo in cui gli sviluppatori hanno effettivamente digitato il codice e (non sto parlando di scorrazzare) e probabilmente è circa il 5% della tua giornata. Stiamo discutendo circa il 5% del 5% ...

Ciò a cui si riduce è che gli utenti di Emacs e Vim lo hanno utilizzato per così tanto tempo che non possono essere disturbati a cambiare. Molti di loro possono solo guidare VS attraverso un mouse e non conoscono la maggior parte dei tasti di scelta rapida.

1

Le persone che continuano a fare riferimento a "tasti di scelta rapida" di Vim dovrebbero davvero apprenderlo in un modo più approfondito. Molti comandi della tastiera di Vim funzionano su un "linguaggio" realmente strutturato di navigazione e manipolazione del testo (cioè intervalli, conteggi, azioni, movimenti, oggetti di testo, ecc.) Che va ben oltre le "scorciatoie" che devi memorizzare come nella maggior parte degli editor di testo. Questo è uno dei principali motivi per l'apprezzamento di Vim e il suo lodato aumento della produttività.

Problemi correlati