it-swarm-eu.dev

Muss ein Programmierer Texteditoren wie Emacs und Vim lernen? Wie wichtig sind sie?

Ich habe bisher Code in herkömmlichen Texteditoren geschrieben, die bisher mit dem Betriebssystem geliefert wurden, oder in einigen Fällen ein IDE. Ich weiß, dass es einige erweiterte Texteditoren wie Emacs gibt) und Vim nur für Codierer verfügbar. Wie wichtig sind sie wirklich? Sollte ein Programmierer, der sich mit PHP, Python usw. befasst, diese Editoren lernen? Was sind die Vorteile, die sich daraus ergeben? Sie bieten gegenüber herkömmlichen Editoren wie Notepad++, Scribes etc.?

43
user22662

Vim ist ein wirklich gutes Werkzeug, wenn Sie sich erst einmal damit vertraut gemacht haben.

Es startet schneller als jedes von mir verwendete IDE oder Texteditor), hat eine Syntaxhervorhebung und rückt den Code in den meisten Fällen korrekt ein.

Es hilft Ihnen auch, sich auf den Codierungsprozess selbst zu konzentrieren. Sie werden die Maus überhaupt nicht verwenden, um damit umzugehen. Das spart Ihnen viel Zeit, wenn Sie nur Code schreiben.

Es hat eine Fülle von Plugins für alles, was Sie gerade tun.

Ich habe Emacs nicht verwendet, um ehrlich zu sein, aber ich bin mir sicher, dass es hier Leute gibt, die es mögen. Ich persönlich mag es nicht, ständig die Strg- oder Alt-Taste drücken zu müssen.

Bearbeiten

Die Nützlichkeit von Vim hängt auch davon ab, was Sie schreiben.

Wenn Sie ein API-Entwickler (Java, C # ... usw.) sind, werden Sie mit einer IDE höchstwahrscheinlich besser vertraut sein.

Wenn Sie jedoch Skripte schreiben (Bash, Perl ... usw.), ist Vim möglicherweise der richtige Weg, da Sie schnell etwas schreiben müssen, Vim schnell ist und alles tut, was Sie brauchen.

30
Mahmoud Hossam

Ein Programmierer sollte nicht unbedingt viele Werkzeuge lernen, sondern einige lernen und sie gut lernen.

Emacs und Vim haben jeweils ihre eigenen Stärken, aber wenn Sie sie nicht regelmäßig verwenden, werden Sie nicht genug davon profitieren, denke ich. Vor allem nicht, wenn Sie ein lernender Programmierer sind.

Sie werden, profitieren jedoch von einer guten IDE, aber Sie sollten auch in der Lage sein, echte Arbeit zu leisten, wenn Sie nur einen einfachen Editor verwenden.

47
user1249

Die Bedeutung von vi ist, dass Sie es immer auf jeder UNIX-Version (Standard sowohl in SysV- als auch in BSD-Versionen) oder UNIX- finden. wie System. Beachten Sie jedoch, dass es möglicherweise original ist vi , nicht vim . Es ist nicht garantiert, dass ein anderer Editor installiert ist. Auch unter Linux ist es in /bin, also ist es auch verfügbar, wenn /usr konnte nicht gemountet werden.

16
vartec

Sind Sie eine schnelle Schreibkraft? Wünschen Sie sich oft mehr Tastaturkürzel, um Änderungen vorzunehmen? Unterbricht die Zeit, die Sie mit der Bearbeitung verbringen, Ihren Gedankengang? Finden Sie kleine Dinge an Ihrem Editor, die Sie so anpassen möchten, dass sie genau so funktionieren, wie Sie es möchten? Stört es Sie nicht, im Voraus möglicherweise viel Aufwand zu betreiben, wenn dies bedeutet, dass Sie auf lange Sicht mehr Zeit und Mühe sparen? Sind Sie nicht gestört von Leuten, die Sie für anachronistisch halten? Wenn ja, dann passt vim vielleicht gut zu Ihnen.

Möchten Sie Ihren Editor lieber herausfinden, ohne das Handbuch zu lesen, auch wenn dies weniger Funktionen bedeutet? Fühlen Sie sich wohler mit dem, was alle anderen im Büro verwenden? Benutzt du die Maus für alles? Wenn ja, dann passt vim möglicherweise nicht zu Ihnen.

15
Karl Bielefeldt

Ich denke, dass das Erlernen von Emacs (und wahrscheinlich auch von Vim) sehr nützlich ist. Warum? Einfach: Ich kann denselben außergewöhnlich leistungsfähigen Editor für mehr oder weniger alles verwenden, was ich tue.

Das ist großartig, weil ich Student bin und ständig lerne, wie man glänzende neue Dinge benutzt. Dieses Jahr habe ich mit Haskell herumgespielt, eine Menge JavaScript gemacht, Scheme verwendet, Java geschrieben, mit Perl herumgeschraubt, an einer Website gearbeitet ... Emacs war großartig für all das.

In der Vergangenheit hatte ich einige Probleme mit verschiedenen Sprachen: Ich habe Perl oder Python gelernt, konnte aber auch keinen guten Editor finden. Jetzt weiß ich, dass ich immer Emacs verwenden kann. Natürlich hat Emacs manchmal nicht alle Funktionen, die ich möchte, aber es hat immer genug Funktionen auf Anhieb, um sie für schnelle Projekte zu verwenden. Bei längeren Projekten müssen möglicherweise einige Anpassungen vorgenommen werden. Die dafür erforderliche Zeit entspricht jedoch wahrscheinlich dem Abrufen und Erlernen einer neuen IDE.

Kurz gesagt: Emacs ist großartig, weil es so viele verschiedene Sprachen unterstützt und auch ohne Unterstützung einer bestimmten Sprache leistungsfähig genug ist, um das Leben viel besser zu machen.

6
Tikhon Jelvis

Nein

Wenn Sie lernen möchten, wie man sie verwendet, tun Sie dies nicht in einer Produktionsumgebung. Tun Sie dies während Ihrer Ausfallzeit oder Zeit, die speziell dafür vorgesehen ist, sich daran zu gewöhnen, Code darauf zu schreiben. Wenn Sie mehr Erfahrung haben, führen Sie es in Ihre Umgebung ein, aber behalten Sie das gewohnte Programm in der Nähe. Ich hielt die Titelseite in der Nähe, als ich mich entschied, in einen reinen Texteditor zu wechseln, bis ich mir sicher war, dass ich sie nicht mehr brauchte.

5
Mallow

Es gibt mindestens drei Gründe , warum ein neu geprägter Programmierer einige Zeit damit verbringen könnte, Emacs zu lernen und vi:

  • Tradition: Sowohl vi als auch emacs gibt es schon, seit Moses seine Ausgabe auf Steintafeln aufgenommen hat. Tatsächlich hat Gott vielleicht entweder vi oder emacs erfunden und der Teufel den anderen, aber Sie erhalten unterschiedliche Antworten darauf, wer welche erfunden hat, je nachdem, wen Sie fragen. (Sie haben gehört, dass es sich um ein religiöses Argument handelt, oder?) Auf jeden Fall haben diese beiden Redakteure einiges an Geschichte und Geschichten und Witze involviert ermöglicht sie gibt es zuhauf. Möglicherweise fühlen Sie sich nicht in der Lage, Ihre Wurzeln zu verstehen, ohne beides zu kennen. Zum Beispiel:

    Wie viele vi-Benutzer sind erforderlich, um eine Glühbirne auszutauschen?

    ne, solange er nicht vergisst, zuerst in den Einfügemodus zu wechseln.* *

  • Trägheit: Es gibt viele Leute da draußen, die Emacs und/oder Vi-Tastenanschläge in ihre Neuronen eingebrannt haben, wie der Highscore auf einer Defender-Maschine. Ich glaube nicht, dass irgendjemand einen der Editoren als leuchtendes Beispiel für modernes Benutzeroberflächendesign hochhalten würde, aber da so viele Leute die Befehle bereits kennen, bauen neuere Editoren häufig Unterstützung für vi- und/oder emacs-Befehle ein. MacOS X ist vielleicht das beste Beispiel dafür: Sie können eine überraschende Anzahl gängiger Emacs-Befehle in jeder Cocoa-basierten Anwendung verwenden (es sei denn, Sie gehören zu diesen Personen = und installiere einen vi-basierten Eingabemanager ). Viele IDEs und Texteditoren auf allen wichtigen Plattformen bieten Schlüsselbindungen für vi und/oder emacs an und werden dies wahrscheinlich noch lange tun. So wie Sie gelernt haben, auf einer QWERTY -Tastatur) zu tippen, werden Sie wahrscheinlich auch einige Befehle abrufen, die von einem alten Texteditor abgeleitet wurden, unabhängig davon, ob Sie es wissen oder nicht.

  • power: Ich bin mir bei vi nicht so sicher, aber man kann mit Sicherheit sagen, dass es nur sehr wenige Editoren gibt, die der verfügbaren Power und Flexibilität nahe kommen Emacs. Gefällt dir nicht, wie etwas funktioniert? Du kannst es ändern. Sie möchten Ihren Editor nicht verlassen, um die Befehlszeile zu verwenden? Kein Problem - Sie können alles, was Sie brauchen, direkt in Emacs erledigen. Sie müssen viel Zeit damit verbringen, in den Sümpfen von Dagobah zu lernen, um zu lernen, wie man all diese Kräfte nutzt, aber manche Leute finden das vielleicht lohnenswert, vielleicht sogar nur um ihrer selbst willen. vi ähnelt eher einem Leatherman-Werkzeug, das an Ihrem Gürtel hängt: vielseitig, immer bereit und für alle möglichen Dinge verwendbar.

Ist es nun wichtig, vi und/oder emacs zu lernen? Ich würde sagen, dass es nützlich ist, etwas über beide zu wissen, insbesondere, damit Sie zumindest ein wenig wissen, ob Sie sie jemals brauchen (vielleicht). Aber wenn Sie sie nicht kennen, werden Sie nicht unbedingt zurückgehalten. Es ist viel wichtiger zu wissen, wie man die Werkzeuge, die Sie täglich verwenden, so effektiv wie möglich einsetzt.

* * Das ist kein Tippfehler - Sie erhalten ihn, nachdem Sie Ihre erste Stunde mit vi verbracht haben.

5
Caleb

Wenn Sie einen Editor zum Programmieren lernen müssen, machen Sie ihn emacs. Warum?

Wenn ich eine U/min machen muss und Emacs öffne und ihm sage, dass er eine Datei finden soll, die zufällig mit der Erweiterung .spec WHAM endet! Eine Skelettdatei wird mit allen Tags und Makros angezeigt, die bereits mit farbcodiertem Text ausgefüllt sind.

Und wenn ich mich meiner bevorzugten Versionskontrolle unterwerfen möchte, versetzt die esc-x-Ladebibliothek Mercurial (oder git oder svn) Emacs in die Stimmung, die richtigen Befehle aus dem Versionskontrollmenü zu entfernen oder Befehle wie Strg-x zu erkennen vv, um Code aus einem Repository ein- oder auszuchecken und alles zu tun, was man mit einem Repository tun kann.

Optische Ermüdung tritt auf, wenn man zu lange auf die gleichen Farben starrt. Ich benutze die Konsole für Terminalfenster und ändere die Farben häufig. Mit Emacs, die sich nicht in einem Terminalfenster befinden, habe ich mehr als 50 Farbthemen zur Auswahl, von denen einige angenehm kontrastarm sind, wie Alice Blue, und einige wie Euphorie, wenn ich wach bleiben muss.

Ich codiere viel Python. Wenn ich eine Codierung für die Syntax testen muss, lasse ich keine Emacs. Ich starte den Python - Interpreter und der Bildschirm wird geteilt, dann speichere ich meine python - Datei und importiere sie in den Interpreter, um die Syntax zu überprüfen - ein Fehler wird auftreten leicht erkennbar, und ich kann es sofort beheben. Wenn ich fertig bin, kann ich zu einem ungeteilten Fenster wechseln und die Arbeit fortsetzen.

Einige Leute sagen, benutze vi, und ich benutze es auf einigen älteren Sun-Systemen ... Ich habe einen regelmäßigen Rhythmus - drücke i und füge ein Zeichen ein, dann drücke Escape und drücke erneut i und tippe das nächste Zeichen ... (kaum besser als ed, aber es ist was verfügbar ist).

Normalerweise ist meine erste Installation auf einem neuen System zile. GNU zile ist Emacs ohne all die Fensterdekoration wie Browsen und E-Mail und IRC und Farben, nur eine C-codierte Binärdatei, die in etwa 100.000 funktioniert und Emacs-Schlüsselcodes verwendet.

Wenn Emacs so lästig wären, wie die meisten versuchen, es klingen zu lassen, sollte es erstaunlich sein, dass so viele Leute Nutteln für die Selbstgeißelung waren, indem sie Emacs-ähnliche Editoren machten. MINCE ist nicht vollständig Emacs, die 31 Geschmacksrichtungen von Mikro-Emacs, Jed, Zile, Joe und einem Oddball python Codierung oder zwei plus webbasierte YMacs, sind alle Emacsen. Peppy http://peppy.flipturn.org/ ist eine andere Einstellung, bei der Emacs-Schlüsselcodes verwendet und in Python) codiert werden, und es wird nahezu alles bearbeitet, einschließlich Teile von Binärdaten, und es hat Dutzende von Modi für Programmiersprachen, aber sein Schlüsselcodierungsparadigma ist emacsen.

Ja, Emacs sind es wert, gelernt zu werden, und vi auch. Im Übrigen ist Eclipse vielleicht genauso nützlich, wenn Sie die Schwachsinnigkeit seiner vielen Einsätze ertragen können. Und wenn Sie etwas WIRKLICH Kleines, Leichtes und Schnelles brauchen, schauen Sie sich e3 an. Die x86-Version ist in Assembler geschrieben und bietet viele Schlüsselcodesätze, einschließlich Emacs und Vi. https://sites.google.com/site/e3editor/

Und oh ja, ich öffne Emacs, tippe 17 Seiten und BLAP! Ein Blitz schlägt ein und meine Energie geht aus. Wenn die Stromversorgung wiederhergestellt ist, schaue ich mir die Arbeit an und stelle fest, dass ich die letzten 7 eingegebenen Zeichen verloren habe. Und wenn ich mich entscheide, das Verfahren "Abgestürzte Sitzung wiederherstellen" zu befolgen, kann ich sie auf 2 verlorene reduzieren.

Python-Code glaubt nicht an Einrückungen, er hängt von ihnen ab. Emacs ist sich dessen bewusst und stellt sicher, dass Ihre Einrückung korrekt ist. Wenn Sie sich jedoch dazu entschließen, ein "Wenn" zu entfernen, befindet sich eine ganze Region im falschen Einrückungsstatus. Mit Emacs beheben Sie das durch:

strg-Leertaste und Pfeiltasten, um die Region hervorzuheben

strg-C <, um den gesamten markierten Code zu übertreffen. (Strg-C> rückt es erneut korrekt ein).

Ich glaube, ich habe mehr als 60 Editoren verwendet, und ich komme immer noch auf Emacs zurück, nicht weil ich Funktionscode-Stubs in C oder korrekte Einrückungen oder Farbcodierungen erhalten kann, sondern weil ich sie über ihre bereits beeindruckenden Funktionen hinaus anpassen kann . Richard Stallmans Idee wurde von so vielen ...

3
Michael Moore

Heutzutage kommt die Popularität verschiedener Arten von Redaktionsverehrung höchstwahrscheinlich von Pragmatic Programmer Buch,

oder, um genau zu sein, von Lesern, die gedankenlos überfüllt waren Kapitel 3 Grundlegende Tools -> Power Editing -> Ein Editor aber den im Vorwort-Kapitel beschriebenen Schlüssel (pragmatisch!) völlig verfehlt haben:

Es gibt keine einfachen Antworten. Es gibt keine beste Lösung, sei es ein Tool, eine Sprache oder ein Betriebssystem. Es kann nur Systeme geben, die unter bestimmten Umständen besser geeignet sind.

Hier kommt Pragmatismus ins Spiel. Sie sollten nicht an eine bestimmte Technologie gebunden sein, sondern über einen ausreichend breiten Hintergrund und eine ausreichende Erfahrungsbasis verfügen, um in bestimmten Situationen gute Lösungen auswählen zu können ...

Sie passen Ihren Ansatz an die aktuellen Umstände und die Umgebung an. Sie beurteilen die relative Bedeutung aller Faktoren, die ein Projekt beeinflussen, und nutzen Ihre Erfahrung, um geeignete Lösungen zu finden. Und das tun Sie kontinuierlich, während die Arbeit fortschreitet.

Wenn man das oben genannte allgemeine Verständnis erhält, ist das Buch allein lesenswert. Die Hauptidee, die zu beachten ist, ist eine, die die Autoren klar und eindeutig angegeben haben: "Es gibt keine beste Lösung" .

3
gnat

Weder Emacs noch vi sind ausschließlich zum Codieren gedacht. Sie unterstützen nur Funktionen, die das Schreiben von Code ein wenig erleichtern.

die einzige Tugend von vi ist seine Allgegenwart; Jedes Unix- oder Linux-basierte System wird eine Implementierung von vi haben. Es ist Lichtjahre freundlicher als TECO , aber es wird auch eine Etch-a-Sketch verwendet. Trotzdem ist vi mein primäres Bearbeitungswerkzeug in einer Terminalsitzung, einfach weil ich nie die Bandbreite hatte, um es gleichzeitig zu lernen und Emacs (und emacs hat zu viele Keycode-Kombinationen verdammt).

Sie brauchen nicht , um eines der beiden Werkzeuge zu lernen. Es gibt andere hochwertige Texteditoren, die viele der gleichen Funktionen in einem freundlicheren Format unterstützen.

2
John Bode

Sie müssen weder Vi noch Emacs lernen, Sie müssen Ihre Werkzeuge lernen. Stellen Sie sich einen Scharfschützen vor, der die Nachteile und Fähigkeiten seines Gewehrs nicht gut kennt. Er wäre kein guter Scharfschütze? Würde er?

Suchen Sie sich einen Editor, den Sie mögen, vielleicht mögen Sie Emacs, Vim, Textmate, Sublime Text ... vielleicht mögen Sie keinen von ihnen und Sie sind mit Nano einverstanden, aber was zählt, ist, dass Sie sich wohl fühlen mit Ihren Werkzeugen.

1
dysoco