Verwenden Sie VIM / Emacs / Terminals, um C / C ++ zu entwickeln? Für welche Art von Projekten ist das praktisch?

8

Für diejenigen, die vim / emacs / terminals usw. benutzen (also keine IDE), an welchen Projekten arbeiten Sie gerade? Sind sie groß? Produktion? Sind das die Werkzeuge, die Sie bei der Arbeit verwenden? Oder hauptsächlich für kleinere Dinge ... oder große Dinge in kleine Dinge zerbrochen? Entschuldigung ... genug Fragen.

Ich frage, weil ich gerade Informatik studiere und bin super aufgeregt. Ich hatte vor kurzem ein Praktikum bei J2ME für eine Regierungsbehörde, und es war Netbeans und ich habe den ganzen Weg über verdunkelt. So hatte ich nur ein paar "Minor-League" Jahre in der Branche.

Kurz gesagt, was ist praktisch für die CL-Typ-Tools, im Gegensatz zu einer IDE wie "Bohnen und VS. Ich muss noch eine Menge lernen und die CL-Tools werden mir wahrscheinlich beibringen, dass sie mich nicht wie eine Vollversion von IDE abschirmen können.

    
Jimbo 15.11.2009, 04:51
quelle

16 Antworten

11
  

An welchen Projekten arbeiten Sie?

All kind ... vim ist meine Haupt "IDE" überall

  

Sind sie groß?

Ja ... Mein FOSS-Projekt CppCMS wurde fast zu 100% in vim

geschrieben
  

Produktion?

Ja, der meiste Produktionscode (nicht FOSS), den ich heute schreibe, verwende ich vim.

  

Sind das die Werkzeuge, die Sie bei der Arbeit verwenden?

Ja.

Ich würde mehrere einfache Dinge erklären:

  1. vim bietet fast alle Werkzeuge IDE, Hervorhebung, Rechtschreibprüfung, Autokomposition, Arbeiten mit mehreren Puffern, Build, Kontext "Sprünge" (decl, def) und vieles mehr
  2. Es ist extrem portabel, ich arbeite damit unter Windows, Linux, OpenVMS, Solaris, FreeBSD.
  3. Es ist sehr hell im Vergleich zu aufgeblähter IDE.

Es gibt nur eine Sache, die ich heute IDE benutze: das Debugging von harten Fehlern.

    
Artyom 15.11.2009 05:28
quelle
7

Emacs / Vim kann für beliebige Projekte verwendet werden.

Im Allgemeinen werden Sie die Umgebung nicht auswählen, der Job, den Sie finden, wird bereits für Sie ausgewählt (außer es ist nicht-Java-Programmierung in Unix, in diesem Fall verwenden Sie, was Sie wollen).

Ich würde nicht die Wahl schwitzen, nur lernen, welche Editor / IDE ist in ihrem größtmöglichen Umfang zu verwenden.

Ich benutze (und habe) Emacs für persönliche Projekte und in zwei verschiedenen Firmen für Softwareprojekte verwendet, die jeweils 10 Millionen Zeilen Produktionscode überschreiten.

    
Trey Jackson 15.11.2009 08:07
quelle
6

Ich benutze Emacs. Ich würde Emacs empfehlen. Ich habe Emacs benutzt, seit es Emacs war: TECO, TV und das e-Makro-Paket auf dem Decsystem-20. Ich kann vim benutzen, wenn ich es brauche, aber das, was Sie lernen, ist weitgehend das, was zur Hand ist, und Sie kommen hinein. Ja, lerne eins oder beides. Und ich würde sagen, wenn die IDE passt, trage sie auch.

    
Don 15.11.2009 06:16
quelle
5

Ich benutze vim für alles, ich hasse IDEs, sie sind zu aufgebläht für mich.

Ich habe es nicht für irgendwelche massiven Projekte benutzt (weil ich keine großen Projekte geschrieben habe), aber wenn ich es würde, würde ich immer noch vim benutzen.

Wenn ich eine neue Sprache lerne, glaube ich, dass es am besten ist, IDEs überhaupt nicht zu verwenden und die "richtige" Art zu lernen (wie für c ++, das Erlernen der Befehlszeilenschalter und die Verwendung von Makefiles).

    
Jeffrey Aylesworth 15.11.2009 04:54
quelle
5

Vor zwanzig Jahren wurde meine gesamte Programmierung in reinen Text-Editoren gemacht, meistens Emacs, aber die Technologie hat sich im Laufe der Jahre verbessert.

Ich verwende immer noch Texteditoren, um gelegentlich Code zu schreiben, aber nur, wenn es ungünstig ist, eine IDE auf dem Rechner zu installieren, auf dem ich Code schreibe. Zum Beispiel, ein paar Mal habe ich von einer Client-Site ohne meinen Laptop gestoppt und wollte ein schnelles Programm schreiben.

Dies ist auch ein Problem bei bestimmten eingebetteten Systemen, bei denen Sie den Code möglicherweise interaktiv über eine RS232- oder USB-basierte Befehlszeilenschnittstelle aktualisieren möchten.

Die meisten modernen IDEs bieten genügend Beschleunigung für den Code-Bearbeitungsprozess, den ich installieren werde, wann immer ich den Computer für mehr als zwei oder drei Stunden für die Entwicklung verwenden möchte.

    
Ray Burns 15.11.2009 05:03
quelle
4

Ich benutze vim für alles, von kleinen Einzel-Skripten bis zu mehr als 1000 Zeilen Produktionscode. Es ist so vielseitig, dass das Arbeiten in jeder anderen Umgebung einschränkend wirkt. Wenn ich Teil eines Projekts bin, das eine Standardumgebung (IDE) benötigt, dann werde ich so viel wie möglich in vim codieren und dann in die IDE importieren.

    
ennuikiller 15.11.2009 05:02
quelle
4

Ich glaube, jeder sollte in der Lage sein, in einer Befehlszeilenumgebung effektiv zu arbeiten. Sie können nicht immer sicher sein, dass auf den Zielcomputern alles außer den grundlegenden Tools verfügbar ist. Sie können nicht sicher sein, dass Sie über genügend System verfügen, um eine vollständige IDE zu erstellen, und Sie könnten das System tatsächlich finden. Das erneute Erstellen ist für eine IDE zu kompliziert.

Ich habe Systeme entwickelt, die aus mehreren interoperierenden Clients und Servern bestehen, die auf mehrere physische Maschinen verteilt sind. Bei diesen Bemühungen habe ich Kommandozeilen-Tools fast ausschließlich auf der Serverseite verwendet. Ich werde DDD verwenden, wenn ich kann, aber ich kenne auch die zugrunde liegende gdb. Wenn es sich bei den Clients um Windows handelt, verwende ich die Visual Studio-IDE, aber wenn es sich um UNIX handelt, verwende ich die Befehlszeile.

Finden Sie heraus, wie Sie mit minimalen Werkzeugen effektiv arbeiten können. Sie werden ein besserer Entwickler sein und Sie werden die integrierten Tools mehr zu schätzen wissen, wenn sie besser gemacht werden.

Übrigens, ich habe Emacs in die IDE-Klasse eingefügt. Ich habe einen Freund, der hereinkommt und ihn als erstes anzündet und die Umwelt den ganzen Tag nicht verlässt. Es ist mehr als nur eine IDE, da er Mail, Surfen usw. in dem Ding macht, oder so sagt er mir.

    
jfawcett 15.11.2009 05:19
quelle
4

Bei großen Projekten mit mehr als 100 Dateien ist die Verwendung einer IDE sehr wichtig. Aber es gibt viele kleine kleine Dinge, die Sie die ganze Zeit tun müssen, während Sie an großen Projekten arbeiten. Es mag sich nicht lohnen, die IDE für all diese Dinge hochzufahren. Ein gutes Kommando über einen mächtigen Editor wie Vim oder Emacs zu haben ist etwas, was ich als eine wesentliche Fähigkeit für jeden Programmierer betrachten würde. Aber eine angemessene IDE sollte auch verwendet werden, um die regelmäßige Entwicklungsarbeit je nach Projektanforderungen zu beschleunigen.

    
Shailesh Kumar 15.11.2009 07:12
quelle
4

Hmm ... Nun, sieh es dir so an:

Ich öffne Code in Emacs. Ich bearbeite es. Ich benutze Code Completion (und ich habe sogar mit Intellisense Emacs gespielt) ... Wenn ich bereit bin zu kompilieren, drücke ich STRG + F7 ... Ein Schlüssel, den ich gebunden habe ... Er baut in einem kleinen Popup-Fenster auf ... Wenn es irgendwelche Fehler gibt, kann ich zu ihnen im Code springen, indem ich f8 (eine weitere gebundene Taste) drücke ... Sobald alles fertig ist, drücke ich f5 ... (das läuft ein kleines Programm, das ich geschrieben habe, das die analysiert Makefile und bestimmt den Pfad der ausführbaren Datei) ... Dies startet den Debugger in einem kleinen Popup-Fenster ... Ich kann auf Codezeilen klicken, um Breakpoints zu setzen ... etc ... Ich debugge ... ich kann "next" Durch den Code mit F10 ... kann ich mit F11 (mehr Tastenbelegungen) durch den Code "gehen" ... Wenn alles fertig ist, drücke ich Shift-F7, um das Projekt zu packen (.rpm).

Also, habe ich eine IDE? Oder verwende ich nur einen einfachen Texteditor?

    
dicroce 15.11.2009 15:53
quelle
4

1. Ja. 2. Jede Art von Projekt.

Es gibt keine Begrenzung für die Größe eines Systems, das in Vim / Emacs / Unix entwickelt werden kann. Tatsächlich gibt es weniger Einschränkungen als bei IDEs. Schauen wir uns ein paar Dinge an, die ich benutze ...

%Vor%

Das sind ziemlich große Systeme.

Ich glaube nicht, dass einer von ihnen mit IDE-Software entwickelt wurde.

    
DigitalRoss 15.11.2009 05:35
quelle
3

Ich stimme dem zu, dass es für das Lernen eine gute Idee ist, die Grundlagen zu verstehen: die Tatsache, dass Sie den Code bearbeiten, ihn mit einem Compiler kompilieren, mit einem Linker verknüpfen, ihn mit einem Debugger debuggen.

>

Es erleichtert das Verständnis der Konzepte. Und es ist einfacher, von Plattform zu Plattform zu wechseln.

Also, lerne vi, make, gdb, ein Versionskontrollsystem (git, svn).

Aber für die Produktion würde ich sagen, dass es ein Muss ist, sich mit der "Standard-IDE" der Umgebung vertraut zu machen (Visual Studio für Windows, XCode für Mac OS, Eclipse für Java usw.)

Was auch immer Sie sagen, das Beherrschen einer IDE erhöht Ihre Produktivität. Wenn Sie vi / emacs seit 10 Jahren verwenden und Eclipse oder Visual Studio für ein paar Tage testen, werden Sie sagen, dass sie aufgebläht sind und nichts im Austausch anbieten. Das ist BS. Je aufgeschlossener du bist, desto besser wirst du sein.

    
Mihai Nita 15.11.2009 09:10
quelle
3

Ich benutze Emacs, um kommerzielle Software mit einer Größe von mehreren Millionen LoC zu entwickeln, und benutze Vorlagen, etc. Ich benutze CEDET + gnu global als Hilfspakete + yasnippet, etc.

    
Alex Ott 15.11.2009 10:31
quelle
1

gut ... Ich muss sagen, dass ich ein Vimmer bin. Mit einer IDE ist es mir egal, wenn Sie einen Editor wie vim / emacs verwenden. Aber wenn Sie ein bisschen mehr tun, werden Sie feststellen, dass die IDE, die Sie verwenden, schwieriger ist, als in Ihrem Programmentwicklungsprozess zu helfen. leider ... wenn du darauf bestehst, vim / emacs als deinen editor zu verwenden, wirst du "eine tiefe Lernkurve" erleben, du wirst so viel Zeit verschwenden, um eine so triviale Funktion in deinem Editor zu erreichen, du wirst verzweifelt sein, wenn du es bist Beschäftigt sich mit Ihrem Stundenplan, wenn Sie sie einfach abholen ...... Sie müssen sich beruhigen und anfangen zu lehnen und auch mit Redakteuren spielen und ein paar Tage, Sie werden feststellen, dass Sie schon mehr erreicht haben als Sie jemals können erwarte!

    
iBacchus 16.11.2009 05:15
quelle
0

Meine Standard-IDE ist eine Gruppe von xterms, die eine Mischung aus vim-Editoren, Manpage-Dokumentation, Debuggern, Log-Tails und Befehlszeilen zum Ausführen von Dingen sowie eine Instanz von Firefox zum Hochladen zusätzlicher Dokumente oder (falls zutreffend) Tests ausführen webbasierter Code. Dies ist, was ich heute für alle Projekte verwende, unabhängig von der Größe, egal ob persönlich oder beruflich.

So ziemlich das einzige Mal, dass ich einen echten Nutzen aus der Verwendung einer IDE gezogen habe, war, als ich an plattform-nativen GUI-Apps arbeitete, wo sie das Erstellen von Formularen und das Verdrahten ihrer Steuerelemente so viel einfacher machen. Aber ich habe diese Art von Arbeit seit über einem Jahrzehnt nicht mehr gemacht - die letzte, die ich gemacht habe, war in Depli, damals, als Borland es noch besaß; Ich denke, Version 4 war gerade herausgekommen, obwohl es 3 gewesen sein könnte.

    
Dave Sherohman 15.11.2009 11:15
quelle
0

Emacs ist ein großartiges Werkzeug (so auch Vim) zum Programmieren, und ich benutze es, um meinen Code für die Physikforschung zu entwickeln. Als zusätzlichen Vorteil (für mich) Emacs behandelt remote-Dateien schön über Tramp, so dass es ein großer Boom für mich ist, da ich sehr oft Remote-Server besuchen müssen.

Jedes Mal, wenn ich eine Anwendung mit einer GUI und in einem großen Framework (wie c # mit .NET oder dem Android Framework) schreiben muss, fällt es mir immer schwer mit nur Emacs zu entwickeln. Die IDEs (Visual Studio, Eclipse) haben einfach alles, einschließlich Autocomplete und Lookup mit entsprechenden Inhalten aus dem Framework und Debugging, auch wenn das Schreiben von Code immer unbefriedigend ist (ich installiere immer eine Art von Emacs Plugin für die IDE, die immer Emacs richtig!).

Manchmal dauert es einfach zu lang, eine Umgebung in Emacs für diese Art von Projekten einzurichten, da dies nicht die Standardmethode der Designer ist, und es ist viel einfacher, eine Umgebung zu haben, die out of box funktioniert die Wand finden normalerweise obskure Informationen darüber, wie man diese App kompiliert / debuggt, ohne die designierte IDE zu benutzen.

    
polyglot 15.11.2009 15:41
quelle
0

Wir könnten die Dinge zusammenfassen, indem wir sagen, dass Editoren wie emacs / vi einige der Funktionen von IDEs mithilfe von CL-Tools (oder den Bibliotheken hinter den CL-Tools) implementieren.

Ihr Hauptproblem bei der Verwendung eines Editors als IDE wäre:

  • es so zu konfigurieren, dass es genau die Funktionen hat, mit denen Sie in einer IDE zufrieden sind, ist nicht unbedingt geradlinig (ich bitte um Sympathie von jedem, der jemals versucht hat, CEDET zu konfigurieren;)), im Gegensatz zum Ausarbeiten -die-box mit IDEs

  • Die Art und Weise, wie solche Funktionen in Editoren funktionieren, ist sehr eng mit CL verbunden, so dass Sie im Voraus zumindest ein vages Verständnis des CL benötigen.

Die Vorteile liegen in der Tatsache, dass CL-Tools manchmal allgegenwärtiger als IDEs sind. Auch das Mastering von CL öffnet die Tür zum Erstellen von Skripts für Ihren Build ("Erstellen eines Builds in einem Befehl" im Gegensatz zu "make a build in one click"), was die Tür zu automatisierten, nahtlosen Builds, fortlaufender Integration usw. öffnet die schwieriger zu erstellen sind, wenn dein Verständnis des Builds aufhört, F6 oder was auch immer zu treffen.

    
phtrivier 20.11.2009 11:50
quelle

Tags und Links