Emacs oder Vim - was soll ich lernen?

Gast #3047705
Lesenswert?

Hallo Leute,

Neben dem Studium programmiere ich recht viel, hauptsächlich in Perl und 
C unter Linux. Inzwischen bin ich total frustriert über das Angebot 
herkömmlicher IDE's und Texteditoren. Immer finde ich irgendwas, was 
mich absolut stört. Dabei sind das oft ganz simple Dinge (kein 
Fullscreen Coding möglich, kein Splitscreen, schlechtes 
Syntaxhighlighting, Man wählt ein anderes Colorscheme aber z. B. der 
Explorer wird weiterhin in knall weiß angezeigt weil es auf irgendwelche 
Farbresourcen des Systems zurückgreift etc...). Ich weiß nicht wie viele 
IDE's und Editoren ich schon ausprobiert habe, aber es sind gewiss 
dutzende und ich bin es Leid.

Ich glaube, ich muss man mich langsam mit Vim oder Emacs auseinander 
setzen. Jetzt frage ich mich aber, was von beiden ich lernen soll. Vor 
allem, welches der beiden für Anfänger zugänglicher ist und mich schnell 
zu dem Punkt bringt, wo ich wirklich produktiv arbeiten kann.

Was mich auch noch interessieren würde. In eurem Job, falls es so sein 
sollte, was bringt euch mehr? Emacs oder Vim?

Viele Grüße
#3047775
Lesenswert?

Ich finde KDevelop recht gut, als reinen Editor ohne IDE nehme ich 
normal Kate.

Wenn mich da irgendwas dran massiv stören würde - es wäre kein Problem 
das nach meinen Wünschen umzuprogrammieren. Der Code ist ja zum Glück 
frei zugänglich.

Was meiner Meinung nach mir für die Bequemlichkeit beim Programmieren am 
meisten gebracht hat: Multi-Monitor. Ich hab 3 20"-Monitore mit je 
1600x1200 nebeneinander. Da muss ich nicht immer auf begrenztem Platz 
hin- und herspringen, sondern kann mich ausbreiten und hab alles 
wichtige im Blick.
Gast #3047785
Lesenswert?

Tomboy schrieb:
> Und Gedit
> und Konsorten habe ich schon ausprobiert. Wäre etwas passendes dabei,
> hätte ich es benutzt :( ..

Wenn du alles graphischen Texteditoren schon ausprobiert hast, und 
unzufrieden bist, dann wirst du mit vim oder emacs auch nicht zufrieden. 
vim und emacs ist doch ein Rückschritt im Vergleich zu den graphischen.

So, wie es aussieht, wirst du dein Problem nicht lösen können.
Gast #3047822
Lesenswert?

Gerd E. schrieb:
> Was meiner Meinung nach mir für die Bequemlichkeit beim Programmieren am
> meisten gebracht hat: Multi-Monitor. Ich hab 3 20"-Monitore mit je
> 1600x1200 nebeneinander. Da muss ich nicht immer auf begrenztem Platz
> hin- und herspringen, sondern kann mich ausbreiten und hab alles
> wichtige im Blick.

Das ist natürlich nice :-) ...
Benutze leider nur 2 Monitore. 1x 22" zum Fullscreen programmieren und 
den rest mache ich dann auf meinem 14" Thinkpad Notebook der daneben auf 
dem Notebook Ständer steht.

Gerd E. schrieb:
> Wenn mich da irgendwas dran massiv stören würde - es wäre kein Problem
> das nach meinen Wünschen umzuprogrammieren. Der Code ist ja zum Glück
> frei zugänglich.

Da fehlt mir leider die Erfahrung, da einfach mal was umzuprogrammieren.

user schrieb:
> Also ich kann gvim empfehlen. Das hast du syntax highlighting,
> Codevervollständigung, make ausführen und an Fehler springen usw.

Matthias K. schrieb:
> Dann benutz vi und seine Kollegen.
>
> Das ist zwar aufwendig zulernen meine Meinung.
> Aber wenn du es verstanden hast.
>
> Dann kannst unter die Schale schauen und deine Schreibmaschine so
> ummodelieren das alles geht was dir bei den anderen Programmen gestört

Ja ich glaube das werde ich machen. Danke euch :) !

Gerd E. schrieb:
> vim und emacs ist doch ein Rückschritt im Vergleich zu den graphischen.

Nö. Ganz im Gegenteil. Von dem was ich bis jetzt gelesen und gesehen 
habe, ist es eine Offenbarung. Endlich alles mal so anpassen zu können, 
wie man es braucht - und dazu auch noch für jede Sprache. Und es gibt 
massig Shortcuts, wodurch man nicht mehr zur Maus greifen muss. Genau 
das richtige. Es ist nur sehr aufwendig zu lernen, aber 1x gelernt, dann 
brauch ich wahrscheinlich bis zum Lebensende nichts anderes mehr :-) ...
Gast #3047915
Lesenswert?

Emacs ist sehr mächtig, kann fast alles. Was er nicht kann, kann man 
ergänzen. Es ist nur eine Frage des Aufwandes. Allerdings wird er nur 
noch von einigen Freaks verwendet und wohl selten für größere 
Programmierprojekte. Das Bedienkonzept stammt aus dem vorigen 
Jahrtausend und jeder der die heute bekannten grafischen IDEs 
kennengelernt und verstanden hat, will nicht mit emacs oder vi arbeiten. 
Bis auf die unverbesserlichen Freaks aus den älteren Jahrgängen.
Dazu kommt, dass es keine ausführlichen Dokumentationen zu emacs gibt, 
auch nicht in käuflicher Buchform. Das bekannte Tutorial der 
Fernuni-Hagen kratzt nur etwas an der Oberfläche.

Alles gesagte gilt im wesentlichen auch für vi. Nur dass bei vi die 
Bedienung noch gewöhnungsbedürftiger ist.
Gast #3048008
Lesenswert?

Zur Ausgangsfrage: Beides, oder keinen. Beide haben ihre Vorteile. Beide 
kosten viel Zeit um reinzukommen.

VI startet sehr schnell und ist auf fast jedem Unix verfügbar. Das ist 
dann nicht notwendigerweise VIM, aber eben irgendein anderer VI-Klon 
oder gar das Original. Wer öfter mal auf der Kommandozeile arbeitet und 
das vielleicht noch in beschränkten Umgebungen (Recovery-Modus, 
uralt-Hardware, unbekanntes Unix) wird ihn nicht missen wollen. Dass man 
den Cursor sogar per Buchstabenkürzel bewegen kann, ist eine 
unschätzbare Hilfe bei Terminalproblemen oder Tastaturen ohne 
Cursortasten (Smartphone). Die Bedienung ist aber wirklich sehr anders 
als alle anderen Editoren. Große Projekte würde ich damit nicht angehen.

Emacs ist das Ultimum an Personalisierbarkeit. Ich mache in Emacs Dinge, 
die kein Eclipse kann, es sei denn ich würde Eclipse umprogrammieren. 
Und das ist der wesentliche Vorteil vom Emacs: Die Hürde, ihn 
umzuprogrammieren ist so niedrig, dass man das "mal eben so nebenbei" 
erledigt -- kein Editor-Neustart nötig, man kann seinen Code verändern 
und immer wieder ausprobieren. Das, und der Umstand, dass es tausende 
Webseiten mit Codebeispielen zu allen möglichen Funktionen gibt, macht 
Emacs so besonders und mächtig.

Leider ist Emacs auch die denkbar schlechteste Wahl: Er ist lahm, er 
wird in LISP programmiert (und einem unkomfortablen Dialekt noch dazu), 
er trägt Altlasten von 30 Jahren mit sich rum, und man braucht Wochen, 
bis man sich den Komfort eingerichtet hat, den man von herkömmlichen 
IDEs gewohnt ist. Und wenn Englisch eine Hürde für dich ist (als 
Programmierer eigentlich ein totales no-go), wirst du auch nicht viel 
Dokumentation haben. Und man muss sich an viele Tastenkombinationen 
gewöhnen -- Emacs hat Menüs, aber seine Stärke ist die 
Tastaturbedienung, darauf muss man sich einlassen.

Wenn du ohnehin nur in einer oder zwei Programmiersprachen arbeitest, 
und dich nicht an fremdes Projektmanagement anpassen musst, dann such 
dir eine IDE, die diese Sprachen vernünftig umsetzt. Eclipse ist da 
immer ein gut erster Versuch. Hast du aber klare eigene Vorstellungen, 
was dein Editor machen soll und bist nicht bereit, dich dem Diktat 
deiner IDE zu unterwerfen, könnte Emacs für dich sein.

Sei dir der oben genannten Nachteile bewusst, aber lass es dir auch 
nicht mies reden: Mein Emacs findet automatisch heraus, zu welcher Sorte 
Projekt eine Datei gehört (Autoconf, Perl, plain Make usw.) und passst 
sich jedem Buildsystem an, er hat für 8 Sprachen Code-Completion, 
Call-Tips (wie IntelliSense) und kontinuierliche Syntaxüberprüfung. Dazu 
kommt, dass Emacs von allen Editoren und IDEs die ich kenne das 
solideste Syntax-Highlighting hat -- gerade als Perl-Programmierer 
kennst du das Problem bestimmt. Emacs hat eine aktive Community mit 
eigenem Wiki und neuerdings auch Erweiterungen per integriertem 
Paketmanagement, dazu tausende Webseiten von Anwendern mit deren kleinen 
Codeschnippseln. Durch die durchgängige Tastaturbedienung kann man nach 
der Einarbeitung schneller arbeiten als in einer menügeführten IDE. Und 
da Emacs sowohl per GUI als auch per Text-Terminal läuft, kann man sein 
erlerntes Wissen auch mal über eine SSH-Verbindung anwenden.

Zusammenfassung:

Meiner Meinung nach braucht man früher oder später auf  jeden Fall 
VI-Kenntnisse, wenn man gelegentlich mit der Kommandozeile arbeitet. 
Emacs lohnt sich nur, wenn der hohe Aufwand für Einarbeitung und 
Personalisierung (in LISP-Code) auch durch einen persönlichen Mehrwert 
ausgeglichen wird. In dem Fall ist er aber das Ultimum an Flexibilität. 
Wer den Aufwand (und das Lernen neuer Tastenkürzel und gleichzeitig 
einer funktionalen Programmiersprache) scheut, wird bei soliden 
Fertiglösungen wie Eclipse glücklicher.
Gast #3048013
Lesenswert?

MaWin (Gast) schrieb:

>> was bringt euch mehr? Emacs oder Vim?

> Beide sind die Steinzeit der Computerei und seit 30 Jahren überholt.
> Genau das richtige für Masochisten die den Schuss nicht mehr gehört
> haben.

Sehe ich auch so. Vielleicht kommt noch hinzu, dass man mal darüber 
nachdenken sollte, warum einen das eigene OS zu solch einer Wahl 
zwischen Pest und Colera nötigt. Der Fisch stinkt bekanntlich am Kopf 
zuerst. Alles was auch heutzutage sich noch beharrlich weigert intuitiv 
zu sein, gehört ins Museum und nicht auf einen modernen Desktop (mit 
Ausnahme von sehr spezieller Software die quasi "alternativlos" 
daherkommt, dann aber auch meistens entsprechend teuer ist).

Schon mal Scite probiert?
Gast #3048043
Lesenswert?

> Oder will mir wer weiß
> machen, dass ESC :w schneller geht als CTRL-s?

Völlig unerheblich, wie schnell ein bestimmter Befehl ist. Wie schnell 
ist denn in deinem Editor das Kopieren der nächsten 3 Zeilen, das 
Löschen der nächsten 2 Wörter, oder der Sprung zum Ende der gerade 
geöffneten Klammer?

Wenn man so versucht zu argumentieren, welcher Editor der beste ist, 
wird man zurecht nicht ernstgenommen.

Was in erster Linie zählt, ist dass man das Programm beherrscht, egal 
welches es ist.

wlad
Gast #3048139
Lesenswert?

Adler schrieb:
> Sehe ich auch so. Vielleicht kommt noch hinzu, dass man mal darüber
> nachdenken sollte, warum einen das eigene OS zu solch einer Wahl

Was hat das Betriebssystem mit der Programmierumgebung zu tun?

> zuerst. Alles was auch heutzutage sich noch beharrlich weigert intuitiv
> zu sein, gehört ins Museum und nicht auf einen modernen Desktop (mit

Das richtige Werkzeug für den richtigen Zweck. Übliche IDEs haben zwar 
schöne Komfortfunktionen, der Editor selbst ist aber der letzte Scheiss. 
Mal eben einen Bereich korrekt Einrücken, um den man gerade eine 
Schleife hinzugefügt hat? Einrückung vergrößern/verkleinern, das können 
die besseren gerade noch. Aber welcher kann vollautomatisch korrekt 
einrücken und sich dabei jedem denkbaren Einrückungsstil anpassen?

Dazu kommt: Eine IDE, die einen zwingt, die Maus in die Hand zu nehmen, 
ist kein ernstzunehmendes Werkzeug. Das ist was für 
Gelegenheitsprogrammierer. Wer wirklich ohne Störung des Gedankenflusses 
programmieren will, der braucht etwas, was sich blind bedienen lässt, 
und das geht nunmal nur über geeignete Tastenkürzel.

Tasten sind irgendwann im Kleinhirn gespeichert, man benutzt sie blind, 
ohne Nachzudenken. Für Mausklicks muss man vom Code wegsehen, von der 
Tastatur zur Maus greifen, zielen und ggf. mehrfach die Reaktion des 
Programms abwarten (Menüs, Untermenüs, Dialoge). Für "Suchen und 
Ersetzen" muss man das Maus-Tastatur-hin-und-her gleich mehrfach machen. 
Und nein, die universell verfügbare Tab-Taste zum Wechsel zwischen 
Eingabefeldern zählt nicht, weil man dann immer noch auf das visuelle 
Feedback vom Programm warten muss. Änderungen an der Benutzeroberfläche 
ändern automatisch auch Tab-Positionen. Buchstabenkürzel (Alt+Buchstabe) 
sind manchmal auch vorhanden und etwas besser, aber in der Praxis war 
noch jedes "intuitive" Programm umständlicher zu bedienen als ein gut 
erlerntes textbasiertes Programm.

Das ist das gleiche Spiel wie mit 3D-Modellierern, Schaltplan-Editoren 
oder Echtzeit-Strategiespielen: Der Einsteiger ist auf "Entdeckbarkeit" 
angewiesen, benutzt Menüs, Icons, Dialogfenster. Der Profi will vor 
allem schnell und direkt jede gewünschte Funktion aufrufen können. Jeder 
Wechsel des Eingabegeräts, jede Schleife 
Programm-Auge-Hirn-Hand-Programm ist verlorene Zeit und verlorene 
Konzentration.

Wer also hin und wieder mal ein kleinen Programm für Mikrocontroller 
schreibt, kriegt mit einem Werkzeug wie Emacs nicht das, was am meisten 
nützt. Wer täglich stundenlang programmiert, tut sich mit einer IDE mit 
minderwertigem Editor keinen Gefallen. Es behindert die Produktivität 
erheblich.

Oder als Analogie aus der Elektronik: Wer nur ein paar einfache 
Steuerungsaufgaben erledigen will ohne gleich ganze Geräte und 
Schaltungen zu entwerfen, ist mit Arduino oder mbed bestens bedient. Wer 
flexibel sein will und alle seine Vorstellungen exakt umsetzen will, 
wird eher auf Steckbrett oder Lochraster experimentieren, auch wenn die 
weniger Komfort bieten und einen zwingen, mehr per Hand zu machen.
#3048180
Lesenswert?

Also ich will eine IDE, die die Semantik meiner Sprache versteht, nicht 
mehr missen. Es geht einfach so viel schneller, auf einem Klassennamen 
Ctrl+. zu drücken, als von Hand irgendein Header-File rauszusuchen... 
das ist für mich persönlich wesentlich produktiver, als da mit vim 
irgendwas rumzubasteln.

Natürlich ist vim ein feiner Editor, aber ich benutze ihn in der Praxis 
nur zum Editieren von z.B. Konfigurationsdateien.
Gast #3048246
Lesenswert?

Lukas K. schrieb:
> Ich hatte mich letztens mal ein wenig mit vim beschäftigt und bin zu
> folgendem Schluss gekommen: Um mal schnell Konfigurationsdateien und
> Einmalskripte zu schreiben perfekt (besser als nano), aber für den
> täglichen Einsatz mir persönlich zu umständlich. Oder will mir wer weiß
> machen, dass ESC :w schneller geht als CTRL-s?

Na ja, wenn man eine GUI hat, dann nimmt man wohl eher gvim -- und der 
ist schon sehr gut. Ich habe die letzten Jahre meist gedit benutzt, bin 
dann vor einem halben Jahr auf gvim umgestiegen. Hat sich gelohnt.

Emacs ist wohl noch etwas mächtiger, für Leute die Scheme können und 
lieben vielleicht die erste Wahl. Emacs kann Proportionalfonts 
verwenden, das wäre für mich ein Plus gewesen.
#3048317
Lesenswert?

Sam P. schrieb:

> Das richtige Werkzeug für den richtigen Zweck. Übliche IDEs haben zwar
> schöne Komfortfunktionen, der Editor selbst ist aber der letzte Scheiss.
> Mal eben einen Bereich korrekt Einrücken, um den man gerade eine
> Schleife hinzugefügt hat? Einrückung vergrößern/verkleinern, das können
> die besseren gerade noch. Aber welcher kann vollautomatisch korrekt
> einrücken und sich dabei jedem denkbaren Einrückungsstil anpassen?

Welche brauchbare IDE kann das nicht? VS, Eclipse, Netbeans können das 
alles.
Als vim damals auf dem Amiga erschien, hätte es lebenslanges 
Computerverbot für den "Programmierer" geben müssen und religiös 
verblendete Fanatiker (emacs) muss ich nicht unterstützen.
#3048401
Lesenswert?

> Moin, wie wärs alternativ mit Joe? Den verwende ich am liebsten

Der Joe hat ein alter-ego, nämlich jmacs. Das ist Joe aber mit den 
wichtigsten Emacs-Kommandos. Für schnelle Editieraktionen (config-File, 
...) ist das super, ist sofort da und man kommt mit den Tastenkombis zum 
Emacs nicht durcheinander...

Ansonsten nehm ich (x)emacs (was halt installiert ist), obwohl ich 
eigentlich da nicht gross rumkonfigurier oder gar Lisp mache. Ich finde 
es sehr schön, für ALLE Anwendungen (C, ASM, VHDL, Perl, TeX, XML, XSL, 
...) dieselbe Editor-Umgebung zu haben und das auf allen Platformen und 
mit oder ohne GUI. Finde ich persönlich wichtiger, als die 
Unterstützungen von Classbrowsern, Symbol-Datenbanken etc. Wenn jemand 
zB. nur C++ macht, mag das natürlich anders sein, mein Portfolio lebt 
jedenfalls vom Universal-Diletantismus :)

Beim vi weiss ich im wesentlichen nur, wie ich was abspeichere bzw. OHNE 
Abspeichern rauskomme... Das Verhalten der vi-Varianten auf Cursortasten 
ist mir jedenfalls suspekt. Man weiss nie, ob man im Insert-Mode 
gefahrlos eine drücken kann, ohne dass Control-Code-Dreck im Text 
landet.
Gast #3048412
Lesenswert?

Sam P. (Gast) schrieb:

Adler schrieb:
>> Sehe ich auch so. Vielleicht kommt noch hinzu, dass man mal darüber
>> nachdenken sollte, warum einen das eigene OS zu solch einer Wahl

> Was hat das Betriebssystem mit der Programmierumgebung zu tun?

Anscheinend sehr viel, denn unter Windows würde niemals jemand auf die 
Idee kommen, einen so krankhaften Scheiss wie die beiden genannten 
"Editoren" (die den Namen heutzutage nicht mehr nicht verdienen) zu 
empfehlen.

> Übliche IDEs haben zwar
> schöne Komfortfunktionen, der Editor selbst ist aber der letzte Scheiss.

Der Editor von MS Visual Studio ist sehr gut. Man muss auch nicht jeden 
Krampf mit dem Editor anstellen, den man von vi sich einmal ins Gehirn 
gefräst hat. Wenn's ums programmieren geht verbringt man die Zeit mit 
ganz anderen Dingen als mit kryptischen Editoren-Kommandos und die Maus 
stört dabei auch nicht wie immer behauptet wird, egal ob man layoutet 
oder Quelltexte verfasst. Hier wird immer krampfhaft versucht zu 
verkaufen es ginge bei den genannten Themen um Akkordarbeit, aber genau 
das ist i.d.R. nicht der Fall, sondern die Zeit wird hauptsächlich mit 
ÜBERLEGUNG verbracht.
Gast #3048430
Lesenswert?

Adler schrieb:
> Der Editor von MS Visual Studio ist sehr gut. Man muss auch nicht jeden
> Krampf mit dem Editor anstellen, den man von vi sich einmal ins Gehirn
> gefräst hat. Wenn's ums programmieren geht verbringt man die Zeit mit
> ganz anderen Dingen als mit kryptischen Editoren-Kommandos und die Maus
> stört dabei auch nicht wie immer behauptet wird, egal ob man layoutet
> oder Quelltexte verfasst. Hier wird immer krampfhaft versucht zu
> verkaufen es ginge bei den genannten Themen um Akkordarbeit, aber genau
> das ist i.d.R. nicht der Fall, sondern die Zeit wird hauptsächlich mit
> ÜBERLEGUNG verbracht.

Ja, das sehe ich ganz genauso!
Gast #3048462
Lesenswert?

Patrick Dohmen (oldbug) (Moderator) schrieb:

> Gut, dann oute ich mich jetzt:
> Ich nutze emacs auch in Windows!

Patrick schrieb auch

> Ich bin zu emacs gekommen, wie die Jungfrau zum Kind! Ich habe C und
> emacs gleichzeitig gelernt (lernen müssen), und ich will ihn nie mehr
> missen!

Du bist aus zwei Gründen "entschuldigt". Zum einen hast du selbst 
betont, dass du emacs lernen MUSSTEST und zum anderen schätze ich mal 
das ist schon länger (viele Jahre) her und somit kennst dich inzwischen 
sehr gut mit emacs aus. Dagegen ist absolut nichts einzuwenden bzw. kann 
ich gut verstehen. Die Frage ist halt, ob man das heutzutage auch noch 
so handhaben MUSS?!

;)
#3048495
Lesenswert?

Das Wort MUSS mag ich gar nicht, weil es hört sich immer so an als ob es 
keine Alternative gibt. Und sowas gibt es schon zwei mal nicht.

Wenn einer es sagt ich muss das machen, dann werde ich dafür auf 
jedenfall
dafür bezahlt und dann habe ich immer noch eine Wahl.

??????????????????????????????????????????????????????????????????????

Gruß,
Matthias K.
#3051780
Lesenswert?

Eine praktische Diskussion dazu findet sich hier:
https://www.youtube.com/watch?v=2Hy89myXLvc
Ein schönes Zitat daraus, "Ich bin jetzt nicht betrunken aber ich nehme 
sed".



Ich muss gestehen, ich nehme ganz "normale" Editoren wie den mcedit oder 
kate. Die einzige "richtige" Entwicklungsumgebung die ich verwende ist 
Lazarus, die teilt sich Quellcode mit dem Compiler und kann somit 
wirklich verstehen was ich schreibe.
#3051799
Lesenswert?

>Emacs oder Vim ?

>programmiere ich recht viel,

viel?

das glaub ich nicht..

wer WIRKLICH Programmiert, hat min. 20 Sourcefiles gleichzeitig offen,
dazu noch Hilfetexte/Webseiten/sonstige Nachschlagewerke

die IDE muss vorallem Codevervollständigung könne,
funktionsparameter anzeigen (als HINT)
fehler sofort anzeigen
automatisch zur implementierung einer funktion springen können
automatisch den hilfe-text zur funktion anzeigen können
codeblöcke ein/ausblenden
beim debuggen unterstützen usw. usw. usw.

und (manchmal) auch einen GUI designer enthalten ..
Gast #3051905
Lesenswert?

Adler schrieb:
> Wenn's ums programmieren geht verbringt man die Zeit mit
> ganz anderen Dingen als mit kryptischen Editoren-Kommandos und die Maus
> stört dabei auch nicht wie immer behauptet wird, egal ob man layoutet
> oder Quelltexte verfasst. Hier wird immer krampfhaft versucht zu

Und da sieht man, das wir zwei unterschiedliche Auffassungen von 
Programmieren haben. Ich rede natürlich von dem Teil des Programmierens, 
der mit der Erstellung des Quelltextes verbracht wird. Für das andere 
(Entwurf, UI-Design) braucht man keinen Editor. Da benutze ich genau so 
wie du GUI-Werkzeuge (UML-Editor, UI-Layouter) -- wie schon gesagt, das 
richtige Werkzeug für den richtigen Zweck.


> verkaufen es ginge bei den genannten Themen um Akkordarbeit, aber genau
> das ist i.d.R. nicht der Fall, sondern die Zeit wird hauptsächlich mit
> ÜBERLEGUNG verbracht.

Mit Verlaub, nein. Erst die Planung, dann die Durchführung.

Wenn du während des Schreibens von Quelltext tatsächlich regelmäßig 
überlegen musst, dann beherrschst du deinen Problembereich noch nicht.

Natürlich gibt es immer unvorhergesehene Probleme, aber dann musst du 
doch um so mehr Ablenkungsfrei arbeiten können. Jedes mal, wenn du 
irgendwo anders hingucken musst, um irgendeine Aktion auszulösen, wird 
dein Arbeitsgedächtnis unnötig belastet.

Die von dir "kryptisch" genannten Tastaturbefehle kannst du jedoch blind 
benutzen. Wenn du erst einmal Tastaturbedienung gewohnt bist, musst du 
nicht nachdenken. Deine Finger (genauer: dein Kleinhirn) kennen die 
nötigen Tastenkürzel von selbst. Die Augen bleiben im Quelltext, dein 
Geist auch.

Ich weiß, es ist müßig darüber zu reden: Wer sich noch nie darauf 
eingelassen hat, der versteht es einfach nicht. Das ist so, wie 
jemanden, der zig Projekte mit Arduino gemacht (und hinbekommen) hat, 
davon zu überzeugen, dass Steckbrett oder Lochraster viel mächtiger 
sind.


Robert L. schrieb:
> wer WIRKLICH Programmiert, hat min. 20 Sourcefiles gleichzeitig offen,
> dazu noch Hilfetexte/Webseiten/sonstige Nachschlagewerke

Und genau deswegen bevorzuge ich einen Editor, mit dem ich schnell und 
direkt navigieren kann. Den ich mir so einstellen kann, dass ich die 
gesuchten Informationen möglichst schnell bekomme. Meine Finger rufen in 
weniger als einer Sekunde exakt die gesuchte Datei auf, und zwar nicht 
nur unter den 20 offenen, sondern auch unter den 200 zuletzt benutzen. 
Das mache ich nicht bewusst, das läuft so automatisch wie ich mir die 
Nase putze. Das ist das Mächtige an der Tastaturbedienung.

Und wenn ich von einem flexiblen Editor rede, dann rede ich von Dingen 
wie:

 - mit einem Tastendruck bis zum Zeilenende löschen
 - mit einem Tastendruck nur den aktuellen Klammerausdruck löschen
 - ein Wort in Groß- oder Kleinbuchstaben wandeln
 - den drittletzten kopierten Text nochmal einfügen
 - an Anfang/Ende der aktuellen Funktion springen
 - zur Stelle der letzten (vorletzten, ...) Änderung springen
 - eine Änderung rückgängig machen, aber nur die vorletzte
 - alle Änderungen in einem bestimmten Bereich rückgängig machen
 - den Einrückungsstil einer Datei automatisch erkennen und bewahren
 - einen Kommentar unter Erhaltung von Rahmenzeichen korrekt einrücken
 - einen ganzen Block vorübergehend auskommentieren (und zurück)
 - einen Text in allen (auch ungeöffneten) Projektdateien
   (Dokumentationsdateien, anderen Projekten, ...) suchen
 - schnell mal das Projekt wechseln um etwas zu vergleichen



> die IDE muss vorallem Codevervollständigung könne,
> funktionsparameter anzeigen (als HINT)
> fehler sofort anzeigen
> automatisch zur implementierung einer funktion springen können
> automatisch den hilfe-text zur funktion anzeigen können
> codeblöcke ein/ausblenden
> beim debuggen unterstützen usw. usw. usw.

Da gebe ich dir recht (ausser das mit den Codeblöcken -- hat man gute 
Navigationsfunktionen, benutzt man das eigentlich gar nicht mehr). Darum 
nehme ich emacs. Ich kenne keine IDE, die das für alle Sprachen kann, 
die ich benutze. Sicher, VS, Eclipse, Netbeans usw sind sehr stark, wenn 
man deren primäre Sprachen benutzt. Ich habe so einige benutzt/benutzen 
müssen. Aber immer wieder nervt der unflexible Editor, so dass ich zu 
Emacs zurückkehre.

Dem kann ich auch beibringen, mich nicht mit Tooltips und Popup-Menüs zu 
nerven, die mir Teile des Quelltextes verdecken. Das mag ich nicht. Dank 
der Flexibilität eines komplett gescripteten Editors hatte ich die Wahl, 
das an den unteren Bildschirmrand zu verbannen. Und dank der Community 
musste ich das nicht einmal selber herausfinden, das Problem hatte schon 
einmal jemand anders gelöst. Er zeigt mir die Call-Tips auch mit 
farblichen Hervorhebungen und mit den Informationen in der Reihenfolge 
an, wie ich sie haben möchte.

Und dank der freien Programmierbarkeit lassen sich eben die 
Komfortfunktionen nachrüsten. Die Community hat für vieles Lösungen. Das 
ist der Teil, wo man Zeit braucht, um sich das so zusammenzustellen, wie 
man es selber mag. Das sagte ich bereits: Gelegenheitsprogrammierer 
brauchen diese Flexibilität nicht. Es kostet zu viel Einarbeitung, es 
kostet viel Zeit für Personalisierung. Aber wer viel programmiert, für 
den lohnt es sich. Man kann das gelernte in allen Projekten anwenden. 
Egal ob es eine HTML-Seite, ein AVR-Assemblerprogramm oder eine komplexe 
Java-Businessanwendung ist. Welche IDE kann mit ihrem Komfort quer durch 
alle Anwendungsgebiete?
Gast #3266033
Lesenswert?

Ich habe den Thread damals geöffnet und muss zugeben, dass ich mich 
lange Zeit vor dem lernen gedrückst habe. Da es aber jetzt ein Update 
gibt, möchte ich euch das gerne mitteilen.

Ich habe mit Beginn der Semesterferien angefangen Vim zu lernen und 
bereue inzwischen, dass ich das nicht schon viel früher gemacht habe.

Am Anfang war es ungewohnt - vor allem dachte ich beim durcharbeiten des 
"vimtutor" das ich Monate brauchen werde um an den Punkt zu kommen, mit 
VIM ernsthaft entwickeln zu können. Aber ich wurde eines besseren 
belehrt. Für den Vimtutor habe ich mir 2 Tage Zeit gelassen, dann noch 
rund 3 Tage in den Büchern "Hacking vim" und "Practical vim" quer 
gelesen. Und dann hat es auch keine weitere 3 Tage gedauert, bis ich mir 
eine voll funktionsfähige C++ IDE gebaut habe mit C++11 Syntax 
Highlighting, Code Completion, Classview Browser, Doxygen, Git-Anbindung 
usw. usf.

Jetzt habe ich eine eigene .vimrc , die ich beim OS Wechsel oder bei Neu 
installation nur aufrufen muss und er richtet mir alles inkl. 
Colorscheme, Font, Plugins automatisch ein. :) !

Die letzten zwei Tage habe ich angefangen dann meine Projekte weiter zu 
entwickeln und die Zeit ersparnis durch die Tastaturbindung ist 
gewaltig. Zum resizen von Fenstern im Splitview benutze ich manchmal 
noch die Maus. Das wars.

Ich kann nur sagen, das war die beste Investitoin an Lernzeit die ich 
bislang getätigt habe. Einfach Unvergleichlich
Gast #3266510
Lesenswert?

alesi schrieb:
> Tomboy schrieb:
>> Emacs oder Vim?
>
> Editor war
> http://en.wikipedia.org/wiki/Editor_war
>
> Emacs vs Vim
> http://www.diffen.com/difference/Emacs_vs_Vim
>
> vi or emacs?
> http://oreilly.com/pub/a/oreilly/ask_tim/1999/unix_editor.html
>
> Don't get me wrong: Emacs is a great operating system---it lacks
> a good editor, though.
> http://thomer.com/vi/vi.html

Schau mal zwei Post höher ;) !
#7785588
Lesenswert?

Auch wenn ich Gefahr laufe, dass die Diskussion wieder geschlossen wird. Das Thema ist einfach zu interessant.

Zu mir: Ich bin Emacs-Nutzer seit 2002. Der große Vorteil: Die Tastenkombinationen laufen automatisiert ab. Ich muss gar nicht mehr darüber nachdenken. Was mich an IDE stört: Viel zu viele Buttons, ständige Schlimmbesserungen, Instabilitäten (das war bei Eclipse sehr schlimm).

Ich habe mit dem Emacs Python, Java, C, C++,VHDL, Shell-Skripte, Haskell und mehr programmiert während des Studiums. Natürlich nutze ich auch sowas wie Eclipse... Java-Support war bei Emacs traditionall immer schlecht und das wichtigste Feature ist Autovervollständig, das Browsen durch alle Pakete. Java nutze ich beruflich. Aber ich nutze auch den Emacs beruflich. Selbst für Java-Schnippsel. Manchmal habe ich eine semistrukturierte Spezifikation, die sich sehr gut anbietet, direkt in Source-Code verwandelt zu werden. Das mache ich mit Keyboard-Macros, die ich nach neun Jahren Emacs-Anwendung für mich entdeckte. Recht spät. Heute nutze ich fast täglich Keyboard-Macros und bin enorm produktiv. Es gibt Youtube-Videos über dieses Feature, falls sich jemand ein Eindruck darüber verschaffen möchte.

Ich habe neulich den Azubis in wenigen Minuten demonstriert, wie ich den Source-Code eines Java-Enums erzeuge mithilfe einer Tabelle aus der Wikipedia, die ich per Copy'n'paste in den Emacs holte. Ich zeichnete fünf bis sechs Keyboard-Macros auf und wiederholte diese und mit wenig Aufwand entstand kompilierfähiger und semantisch korrekter Java-Code, den ich dann zurück in den Eclipse kopierte.

Der große Vorteil der IDEs war immer, dass die Kompilierung im Hintergrund läuft, dass sofort Kompilierprobleme angezeigt werden usw. Sowas kann der Emacs aber auch. Microsoft hat ja das Language Server Protokoll aus der Taufe gehoben, mit der Idee, die Trennung von Front- und Backend. Die Entwickler wollen ihren Lieblingseditor verwenden, ohne auf die Hintergrundfunktionalität der IDEs zu verzichten.

Da ich privat viel mit Python mache, bestätige ich, dass es funktioniert. Emacs mit eglot und dem python-lsp-server... Das funktioniert sehr gut. Autovervollständig ist richtig gut. Mit Flymake hat man auch one-the-fly-Syntax-Überprüfung.

Zu Vim kann ich nicht viel sagen. Benutze ich nicht gerne. Bin ja ein Emacser. Vim-Leute, die ihren Vim wirklich beherrschen, sollen aber auch eine hohe Produktivität erreichen.

Im Buch "Der pragmatische Programmierer" gibt es den Tipp: "Lernen Sie einen Editor, den aber richtig."

Ich habe mir erst vor wenigen Tagen den Emacs 31 kompiliert. Es gibt stetige Verbesserung. Die Community lebt.

Was hier gesagt wurde, dass eine Entscheidung für Emacs eine gegen Gui sei, war schon vor 20 Jahren falsch. Schon vor 20 Jahren hatte der GNU Emacs 'ne Gui und der XEmacs sowieso.

Es lohnt sich in jedem Falle, einen der beiden Editoren in der Tiefe kennen zu lernen. Die Produktivitätszuwächse sind enorm.

(Firma: 1984now) #7786111
Lesenswert?

Rudi R. schrieb:

Auch wenn ich Gefahr laufe, dass die Diskussion wieder geschlossen wird. Das Thema ist einfach zu interessant.

Nicht wirklich. Vim muss man (rein als Text-Editor!) benutzen können, weil es halt auf praktisch jeden unixoiden Zielsystem verfügbar ist. Ansonsten braucht (und benutzt) man es für nix. Weil: vom heutigen Stand der Technik aus betrachtet: maximal unkomfortabel.

Und Emacs ist halt nur vom heutigen Stand der Technik betrachtet maximal unkomfortabel.

Es lohnt sich in jedem Falle, einen der beiden Editoren in der Tiefe kennen zu lernen. Die Produktivitätszuwächse sind enorm.

Eher nicht...

Dieser Beitrag ist gesperrt und kann nicht beantwortet werden.