web-dev-qa-db-ger.com

Warum Emacs/Vim/Textmate? Ist Xcode nicht gut genug?

Hallo, ich mache meistens C++, Objective-C-Programmierung. Und ich fand Xcode plus ein Auto Completion/Makro Plugin (Completion Dictionary) ziemlich ausreichend.

Alle Leute scheinen jedoch über ihre reinen Texteditoren zu loben. Ich habe Textmate ein bisschen ausprobiert; mochte die Einfachheit, lehnte aber die Handhabung von Dateien/Frameworks ab.

Fehlt mir hier etwas? Oder haben Vim oder Emacs so gut wie Xcode eine automatische Vervollständigung? 

58
ivanTheTerrible

Ziehen Sie einen Stuhlsohn hoch, lassen Sie mich darüber sprechen.

Lange vor den Tagen von Xcode gab es VIM und Emacs. Ich weiß, dass es schwer vorstellbar ist, aber es stimmt.

Viele Menschen haben sich an VIM/Emacs gewöhnt und verwenden sie daher weiterhin.

Emacs ist extrem anpassbar und bietet so ziemlich alles, was Sie sich vorstellen können (einschließlich eines eingebauten Schrumpfers und der Türme von Hanoi). Sie können Compiler einfach von Emacs aus aufrufen und bei Bedarf eigene Erweiterungen erstellen.

VIM hat eine unglaubliche Regex-Engine (Emacs tut dies auch) und ist sehr praktisch, da (VI) so ziemlich jedes Unix-Betriebssystem enthält und fantastisch funktioniert, wenn Sie keine Pfeiltasten haben (yeah yeah, echte alte Schule). Menschen können sehr gut mit Tasten arbeiten, ohne sich mit der Maus bewegen zu müssen. 

Das gleiche gilt auch für Emacs, aber für mich finde ich die Cursorbewegung auf VIM viel einfacher.

Der Text-Editor-Krieg wird mit so viel religiösem Eifer wie der Mac-gegen-PC-Krieg angeheizt, und die Antwort lautet: Wählen Sie das Beste aus, das für Sie funktioniert. Wenn Sie Xcode mögen, können Sie es weiter verwenden, aber viel Glück, wenn Sie jemals auf einem PC oder Linux arbeiten müssen. Persönlich verwende ich Emacs zum Codieren, VIM zum Manipulieren von Text und Firefox zum Anzeigen von Lolcats.

183
Alan

Ich verstehe wirklich nicht, warum Emacs sich stützt, wenn Leute über Texteditoren sprechen. Meiner Erfahrung nach handelt es sich eher um Eclipse (oder eine dieser anderen Plattformen/IDEs) als um vi, da es ist eine Umgebung ist, was zufällig gut für die Textbearbeitung ist.

Als IDE bietet emacs Versionskontrolle, Live-Kompilierung, Rechtschreibprüfung, automatische Vervollständigung, Debugging, Code-Browsing und vieles mehr für eine Vielzahl von SDKs. Für den Rest Ihrer Computeranwendungen ist dies ein E-Mail-/News-/Web-/IRC-/Twitter-/Xmmp-Client, Kalender, Organizer, Rechner, Terminalemulator, Remote-Bearbeitung, Tabellenkalkulation, Spiele usw. usw.

Nach Dijkstra: "In Emacs geht es nicht mehr um Textbearbeitung als um Astronomie um Teleskope"

15
remvee

Was Sie vermissen, ist, dass Emacs und Vim tatsächlich IDEs sind. 

11
Svante

vi ist auf UNIX-Systemen allgegenwärtig und Emacs fast schon. AFAIK, Xcode ist auf einer Plattform.

Ein Kraftpaket IDE zu haben, ist eine großartige Sache, aber jeder sollte ein bisschen Geschick haben, um sie auf jeder Plattform funktionsfähig zu halten, auf die man sie fallen könnte.

8
dcw

Es hängt alles von Ihren Vorlieben ab.

Einige Leute arbeiten gerne mit einfachen Texteditoren wie (g) vim, emacs, pico usw. .. Andere arbeiten gerne mit IDEs wie MS Visual Studio, Eclipse, Xcode .

Solange Ihre Umgebung mit der Textbearbeitungstechnologie kompatibel ist, liegt es an Ihnen .

Übrigens, ich arbeite gerne mit Eclipse und vim, weil ich das Programmieren gelernt habe;)

5
codingbear

Der Hauptgrund, warum Sie glauben, dass Leute wie Emacs/Vim scheinen, ist der Code-Abschluss. Leute wie Emacs/Vim haben beide die Möglichkeit, Text zu bearbeiten. Ihnen stehen Kontrollmöglichkeiten und Optionen zur Verfügung, über die andere Editoren gerade nicht verfügen. Wenn Sie sich wirklich gut mit einem dieser Programme auskennen, möchten Sie, dass diese Tastenkombinationen/Befehle überall verfügbar sind. Makros, reguläre Ausdrücke, Bewegen durch Suchen/Wort/Absatz/Funktion, Schnittstellen zur Versionskontrolle, komplizierte Funktionen zum Rückgängigmachen/Wiederherstellen und Kopieren/Einfügen sowie Erweiterungsoptionen sind nur ein paar Beispiele für die Funktionen, die diese Editoren wirklich gut machen.

Code-Vervollständigung ist nur eine von vielen Dingen, die das Schreiben von Programmierern erleichtern können. Emacs/Vim kann ALLE von ihnen handhaben (nativ oder durch Umbauten).

4
user151339

Nein nicht wirklich. Es ist wirklich eine Frage der Präferenz. Ich habe gern in Visual Studio 6 gearbeitet, aber heutzutage sind die neueren Versionen einfach zu aufgebläht. Wenn ich also etwas außerhalb von VS machen kann, mache ich es normalerweise, ohne das gesamte IDE - Feld zu öffnen.

An Windows mag ich notepad2 und gvim. Ich habe vim so angepasst, dass es perfekt zu meinen Bedürfnissen passt, sodass ich nicht darüber nachdenken muss, was und wo.

Aber es ist gut zu erwähnen, dass viele Benutzer vim/emacs/... verwenden, da Sie diese Art von Posts selbst lesen können. tatsächliche Nutzbarkeit. Wenn es Ihnen nicht passt, verwenden Sie es nicht. Niemand wird dich deshalb falsch sehen.

3
Rook

Für mich sind die zwei wichtigsten Funktionen:

  • Emacs-Tastenkombinationen, da sind meine Finger damit kompatibel.

  • Open Source für die Freiheit, die es bietet. An eine Plattform gebunden zu sein, ist Anathema.

Heutzutage verwende ich hauptsächlich Eclipse zum Programmieren (auf Emacs-Tastenkombinationen eingestellt) und FSF-Emacs zum Lesen von E-Mails und gelegentlich auch LaTeX.

3
starblue

Ich persönlich liebe Emacs. Ich habe Vim und eine Handvoll IDEs verwendet. Vim und Emacs haben großartige Communities, in denen die Leute bereit sind, Funktionen für nahezu jede Sprache zu programmieren. Ich kenne keine IDEs, die Haskell unterstützen. Es hängt alles davon ab, was Ihnen wichtig ist. Beide haben Erweiterungssprachen, obwohl IMO, Emacs LISP der bessere der beiden ist. Die Fähigkeit, die Maus zu ignorieren, ist die Hauptsache, die ich auch mag. So viele IDEs bieten auch Emacs- und Vim-Kompatibilitätsmodi oder -Erweiterungen. Beide haben eine große Zeitinvestition, aber beide sind es wert. Früher oder später entscheiden Sie sich für das, was zu Ihnen passt, vim/emacs/IDE, und bleiben dann daran, Ihre Fähigkeiten zu verbessern.

3
Ron

Wenn Sie Emacs verwenden, können Sie das Paket Cedet oder das Autocomplete-Paket installieren, um die Namensergänzung für einige Sprachen zu verwenden (C++ ist ziemlich gut, während Obj-C immer noch nicht unterstützt wird), zusätzlich zu den umfangreichen Editorfunktionen

2
Alex Ott

emacs ist mächtig. Ich verwende emacs mit vimpluse.el, damit ich die vim-Schlüsselbindungen mit allen emacs-Funktionen verwenden kann.

2
pscyehao

Ich verwende Vim hauptsächlich für das Eingabemodell. Sobald Sie sich mit dem Eingabemodell auskennen, fühlt es sich unbeholfen an, einen Editor zu benutzen, in dem Sie gezwungen sind, eine Maus zu verwenden. Letztendlich (zumindest für mich) ist das irritierend. Es ist viel effizienter, "ci '" einzugeben, um den gesamten Text zwischen zwei einfachen Anführungszeichen zu ändern, dann die Hände von der Startzeile zu nehmen, den Text mit der Maus zu suchen und auszuwählen und schließlich auf "Löschen" zu klicken.

Ich habe Emacs nur kurz benutzt, und obwohl ich Vim lieber mag, bin ich auf einige seiner Eigenschaften eifersüchtig. Aber ich bin letztendlich zu Vim gegangen, weil ich das Akkord-Eingabe-Modell finde, mit dem Emacs meine Finger unnötig belastet.

1
FlemishBeeCycle

Ich habe Xcode und TextMate und verwende sie nicht, obwohl ich weiß, dass sie sehr mächtig sein können. Stattdessen verwende ich Vim (oder MacVim, wenn Sie möchten). Warum ? 

Weil es leicht, schnell, süchtig, kraftvoll, anpassbar ist ....__ Ich könnte noch lange so weitermachen, aber das Wichtigste ist, dass ich mit Vim alles tun kann, was ich will. 

Was auch immer der Editor ist, den Sie verwenden, der beste Editor ist der, den Sie (fast) perfekt beherrschen.

1
Taurus Olson

Ich verwende vi nicht für meine Codierung. Wenn ich verfügbar bin, verwende ich jedoch in meinen Editoren die Vi-Emulation. Wenn ich Java-Codierung in IntelliJ mache, verwende ich das IdeaVIM-Plugin, das mir im IntelliJ-Editor vi unterstützt. Das bedeutet, dass ich fast nie meine Finger von der Heimatreihe nehmen muss. Ich navigiere mit der Tastatur (h, j, k, l), schneide/füge mit yy, dd usw. ein. Wenn ich jedoch die volle Leistungsfähigkeit eines GUI-Editors benötige, hindert mich die vi-Emulation nicht daran, diese zu verwenden Eigenschaften.

Es macht mich verrückt, dass XCode keine Vi-Emulation im Editor hat. Scheint wie Funktionalität, die jeder anständige IDE haben sollte.

1

TextMate fühlt sich einfach leichter an. Aus meinem Kopf:

  1. Es bietet eine große Unterstützung für das Springen zwischen Dateien und Methoden innerhalb von Dateien. Denken Sie an Quicksilver nach Dateien/Methoden. Wenn Sie eine Datei zum Bearbeiten geöffnet haben, drücken Sie Befehlstaste-t, um ein schwebendes Fenster mit allen Methoden in der Datei aufzurufen. Beginnen Sie mit der Eingabe und die Liste filtert sich herunter. Wählen Sie die gewünschte Methode aus und drücken Sie die Eingabetaste, um zu dieser zu springen. Xcode hat etwas Ähnliches, aber das Sting-Matching ist wörtlicher.

  2. Viele eingebaute Texterweiterung. Geben Sie einen Auslöser ein und klicken Sie auf die Registerkarte, um ihn zu erweitern. Wenn Sie beispielsweise in einer neuen Zeile m eingeben und dann auf die Registerkarte tippen, wird eine Methode für Sie erstellt. Die Tabulatortaste springt dann auf intelligente Weise zu den verschiedenen Teilen des eingefügten Textes, sodass Sie sie an Ort und Stelle bearbeiten können. Das ist eine so große Zeitersparnis, dass es lächerlich ist.

  3. Schöne Plugin-Unterstützung für Subversion und Git. Wahrscheinlich auch andere VCSs.

  4. Ergänzungen (wie Xcode) und Verlauf. Mit TextMate können Sie im Wesentlichen jeden in der Datei vorhandenen Text mit Tabulatoren füllen. Wenn Sie also einmal einen Variablennamen oder einen Methodenaufruf einmal eingegeben haben, können Sie ihn mit der Registerkarte an einer beliebigen Stelle in derselben Datei automatisch vervollständigen.

  5. Intelligentes Board mit Vergangenheit, Geschichte, Nice eingebaute Diffs, Theme-Unterstützung, gute Tastaturunterstützung, Suche in Dateien und Projekten (mit RegEx) und wahrscheinlich mehr, die ich vergessen habe.

Jedenfalls reicht das von mir.

1
Kevin

Ich bin ein langjähriger Vim-Benutzer und finde, dass ich Komodo wirklich sehr mag, wenn die Vim-Emulation eingeschaltet ist. So bekomme ich die Bequemlichkeit der vim-Tastenkombinationen (an die ich mich so gewöhnt habe, dass ein kürzlich von mir erstelltes MS-Word-Dokument nicht weniger als drei ": w" s enthielt) plus die gut implementierte Code-Vervollständigung C++, Python, Javascript usw.

Ich verwende XCode nicht, weil ich keine speziellen OS X-spezifischen Anwendungen entwickle. Daher ist der Nutzen der Integration des OS X-Frameworks nicht groß genug, um die Kosten zu überwiegen, wenn keine vim-Tastenkombinationen vorhanden sind oder überhaupt nicht "Ansatz, den Apple in Richtung Entwicklung nimmt. 

1
Sobo

Ich habe Vim vor langer Zeit versucht und aus irgendeinem Grund "ich habe es nicht verstanden". Nachdem ich im Laufe der Jahre andere Redakteure ausprobiert hatte, erreichte ich einen Punkt, an dem kein Redakteur das tat, was ich wollte. Nachdem er einem Freund meine Frustration geäußert hatte, empfahl er mir, Vim auszuprobieren .... und ich bin so froh, dass ich noch einmal nachgesehen habe, weil dies die Antwort auf eine Frage war, die ich nicht fragen konnte! Ich verwende Vim/MacVim seit ...

hier meine Konfiguration: https://github.com/RandyMcMillan/QuickVim

Ich benutze auch Xcode, weil es schön ist, Code fertigzustellen. XVim ist gut für Leute, die ein Modal/Vim-Gefühl im Xcode-Editor wünschen: https://github.com/JugglerShu/XVim

Aber wenn es um meine tägliche Bearbeitung geht, gewinnt Vim jedes Mal. Deshalb habe ich das QuickVim-Repo, damit ich meine Umgebung jederzeit und überall schnell reproduzieren kann.

Ich habe eine Liste von Lizenzen für Editoren wie TextMate usw., aber es ist wahrscheinlich, dass ich sie niemals verwenden werde, da ich vim kostenlos verwenden und an meine genauen Spezifikationen anpassen kann. 

0
RandyMcMillan

Xcode ist eher eine IDE, wohingegen emacs und vi für reinen Text sind (obwohl sie umfangreiche Erweiterungen haben). Dies ist vorzuziehen, wenn Sie sich auf einem älteren System oder über einem SSH befinden. Darüber hinaus sind sie praktisch auf jedem UNIX-basierten Computer installiert, während XCode proprietäre Apple-Software ist.

0
samoz

Vielleicht haben Sie einen Blick auf meinen Aufsatz zu diesem Thema Warum Emacs? . Obwohl es mehr oder weniger Emacs-zentrisch ist, würden einige der Punkte, die darin gemacht werden, auch auf vim und TextMate zutreffen.

0
Bozhidar Batsov

Ich persönlich liebe TextMate, weil es eine wirklich leichte Lösung ist. Zugegeben, ich habe Vim oder Emacs nicht in der Tiefe verwendet (ich mag meine GUIs) ... obwohl ich die Control-basierte Cursornavigation sehr genieße (Control-A ist Zeilenanfang, Control-E ist Zeilenende, Control- F und Control-B sind vorwärts und rückwärts usw.). Zwischen Xcode und TextMate verwende ich Xcode für die meisten meiner ernsthaften Entwicklungen, aber wenn ich nur schnell eine Quelldatei bearbeiten muss, kann ich die Codierung beenden, bevor Xcode überhaupt gestartet wird (es hilft, dass TextMate sich daran erinnern kann, welche Dateien zuvor geöffnet wurden und stellen sie wieder her). Für eine einfache Textbearbeitung ist TextMate meine Wahl. 

Darüber hinaus ist die Plug-In-Unterstützung von TextMate erstaunlich. Es bietet vollständige Unterstützung (Syntaxfärbung, Erstellen und Ausführen usw.) für so viele verschiedene Dinge (Shell-Skripts, CSS, SQL, LaTeX und vieles mehr), die Xcode nicht bietet. Wenn ich ein schnelles Programm in Java auffrischen oder eine Webseite optimieren muss, ist es viel einfacher, als Vim zu verwenden und dann vom Terminal aus zu bauen. 

Die einzige Beschwerde bei TextMate ist, dass die Konsole schreibgeschützt ist, sodass ich keine interaktiven Elemente erstellen kann. Das und die Tatsache, dass es scheinbar keine C99-Schlüsselwörter (für Schleifen und Booleans) in einer einfachen C-Datei unterstützt. 

0
FeifanZ

Schwerer Vim-Benutzer hier. Im Allgemeinen finde ich die Textbearbeitungsfunktion von Vi/Vim weit überlegener als herkömmliche Editoren, denen folgende Dinge fehlen:

  • visueller Modus: z.B. vorangestellt 5 Zeilen mit Kommentar //
  • makros: z.B. 3. bis 5. Wörter in einer Zeile mit Anführungszeichen umgeben, für 100 Zeilen wiederholen
  • mehrere Register: 36 Register zum Kopieren und Einfügen
  • delete {motion}: z. vom Cursor bis zum nächsten Vorkommen von 'initWithFrame' löschen

Dies sind nur ein paar Beispiele dafür, dass Vim XCode-Textbearbeitungen übertrieben hat

Für Objective-C. Ich neige dazu, ein Vim-Plugin auf der IDE zu installieren, um das Beste aus beiden Welten zu erhalten - native Unterstützung für Build/UI-Komponenten.

Übrigens. Tastaturbefehle von Emac (z. B. STRG-A, um an den Anfang der Zeile zu gelangen) werden in vielen nativen Textfeldern (Coacoa) auf dem Mac unterstützt. Darunter die, die Sie zum Eingeben von Antworten in stackoverflow verwenden: D

XVim arbeitet mit XCode. IdeaVim für AppCode

0
snowbound