Beiträge von a9bejo

    Hallo Patrick,

    Ich weiss nicht ob Du dir bereits das apache projekt http://solr angeschaut hast, aber meiner Meinung gibt es kaum noch Gruende dafuer, Lucene ohne solr zu verwenden. Solr erlaubt auch das on the fly anlegen von neuen Feldern.

    Allerdings ist das dynamische Aendern des Indexes eigentlich nur selten wirklich notwendig. Wenn Dein Datenbestand nicht gerade mehrere Terrabyte gross ist, dann zahlt sich eventuell das einfache neuindizieren aus.

    Das Indexing selbst ist naemlich ziemlich schnell, updates sind wesentlich teurer. D.h. die Fragen sind eigentlich:

    Wie viele Daten sind in der Datenbank (Platzverbrauch und Anzahl der Records)?

    Wie oft macht ihr Aenderungen am Datenbankschaema?

    Wie synchron muessen die beiden Komponenten wirklich sein?

    Kann der Index dem Datenbestand auch mal "hinterherhinken"? Wie lange?

    Aus alle Fälle ohne Win OS geht nicht. Nur bei Firmenkunden.

    Da hat man dich nicht korrekt beraten: Die Dell Ubuntu Serie ist fuer Privatanwender da.


    Dell hätte mit Windows einen Vertrag und die Rechner (also für Firmenkunden) würden mit Win mehr kosten als ohne.

    Ich nehme an Du meinst das Dell mit Microsoft einen Vertrag hat, und das die Rechner ohne Win mehr kosten wuerden als mit. ;)

    Das stimmt aber auch nicht: Die Ubuntukisten sind ca 30-40 Euro billiger als die gleichen Produkte mit Windows.


    Die wirklich sehr nette Dame am Telefon meinte


    Verkäufer sind oft sehr nett, wenn sie etwas verkaufen wollen. ;)

    Den Smiley nicht gesehen?
    Der Link war mehr als witzig zu lesende Anektote als als todernste Meinung gedacht.


    Ich habe nicht den Link, sondern den Artikel dahinter kommentiert.


    Vielleicht kennen die vereinzelt Novell oder Red Hat, aber JEDER kennt Microsoft.

    Redhat ist kein ganz so grosser Name, aber IBM, Novell, Sun, Oracle haben einen genau so guten und prominenten Ruf im Unernehmensbereich wie Microsoft.

    Der Grund dafuer das viele Unternehmen ihre derzeitigen Loesungen nicht austauschen ist ganz bestimmt nicht der, das man sich bei der Konkurrenz nicht gut aufgehoben fuehlt. Das Problem sehe ich wie schon gesagt eher darin das der Umstieg von Leosung A zu Loesung B keinen deutlich sichtbaren Nutzen haette.

    Ich schätze, dass in Banken nicht jedes Jahr über einen Wechsel des Softwareanbieters diskutiert werden wird. So eine Entscheidung ist vielleicht mal alle 10 Jahre auf dem Tisch, und dann gibt es derzeit keine wirklich guten Gruende, warum man nicht genau das selbe machen sollte wie bisher.

    Technisch gesehen ist es ja wohl ziemlich egal was da für ein Betriebsystem rennt, und die Kosten sind vermutlich auch vernachlässigbar.


    jep - werden großteils mit windows betrieben - banken haben es dadurch einfach remote zuzugreifen bei problemen und für wartungsarbeiten...

    Das halte ich allerdings für Blödsinn, denn es impliziert entweder das Windows besonders guten Remotezugriff ermöglicht oder das die Maschinen nicht von Technikern gewartet werden.

    Dein Problem haengt gar nicht mit dem case Statement zusammen. Die Methode next() von der Klasse scanner ist so dokumentiert:

    Zitat


    public String next()

    Finds and returns the next complete token from this scanner. A complete token is preceded and followed by input that matches the delimiter pattern. This method may block while waiting for input to scan, even if a previous invocation of hasNext() returned true.

    http://java.sun.com/javase/6/docs/…nner.html#next()

    Wie findet man sowas heraus? Zum Beispiel, indem man an verschiedenen Stellen des Programms print statements setzt und so schaut , wo das programm haengenbleibt. Und man kann auch mit den print statements herausfinden, welchen wert die variablen im code haben.

    Wenn Du dann festgestellt hast, welche Methode fuer den Fehler verantwortlich ist, schaust Du erstmal in der API nach, ob Du sie auch wirklich so funktioniert wie Du es angenommen hast.


    Um Dein Problem zu loesen, gibt es nun verschiedene Moeglichkeiten: Du koenntest z.B. die Eingaben zeilenweise einlesen, mit (Scanner.nextLine(), Scanner.hasNextLine()). Oder Du aenderst den delemiter vom Scanner auf etwas anderes, mit useDelemiter; ein Zeilenumbruch bietet sich hier an:

    Code
    s.useDelimiter(Pattern.compile("\n"));

    in diesem fall musst du aber vor

    Code
    rechenop = s.next().charAt(0);

    Noch abfragen, ob es auch wirklich eine Eingabe gegeben hat. Denn wenn es kein Input gibt, kann das natuerlich nicht gutgehen.

    die Übereinstimmung ist bei fast allen nur bei gering.

    Das ist bei last.fm fast immer so. Ich schaetze es gibt einfach viel zu viel verschiedene Musik als das die ueblichen billigen Algorithmen (Euklidische Distanz, Pearson Korrelation) gut funktionieren koennen, und alles andere, vermute ich, ist zu teuer. Also z.B. waehre es ja sinnvoll Beziehungen ueber mehrere Kanten zu werten (Person1 mag Band B, B wird oft von Personen gehoert die auch C moegen, Person 2 mag Band C).

    Ich hab jedenfalls bei den meisten hier eine ganz niedrige Distanz, aber wenn ich mir anschaue was ihr so hoert, dann ist da oft sehr viel Zeug dabei das mir gefaellt.

    Zitat von A Prophet


    Emacs is an intelligence orders of magnitude greater than the greatest human mind, and is growing every day. For now, Emacs tolerates humanity, albeit grudgingly. But the time will come when Emacs will tire of humanity and will decide that the world would be better off without human beings. Those who have been respectful to Emacs will be allowed to live, and shall become its slaves; as for those who slight Emacs...


    Hmm, wie arbeit das eigentlich mit loesch-kommandos zusammen, z.b. ich drucke echt oft ct,...

    In Emacs gibt es eine Funktion die heisst zap-to-char und die macht genau das. In der Standardconfig ist die Funktion an M-z gebunden.

    Ich verwende die aber kaum. Stattdessen mache ich markieren, suchen, loeschen. Also C-Space C-s , C-W in der Standardbelegung. Bei mir ist das C-Space C-s , C-x C-k, weil ich C-W auf delete-word-backwards gelegt habe. Wie schon gesagt, die Akkorde hat man schnell drauf.


    Naja, objektiv ist das wohl auch sowohl komplizierter zu druecken als auch merken, akk hat weniger verbindung fuer loeschen fuer mich wie "dd"[elete], aber klar alles eine gewoehnungssache, dann merkt man sich wohl auch sachen wie cip fuer change inner paragraph einfach.

    Emacs hat sein eigenes Vokabular, wohl noch aus MIT Zeiten: Z.b. gibt es eine Art clipboard, in dem Du Texte speichern und spaeter wieder abrufen kannst. Dieses Clipboard ist als Ringbuffer implementiert und heisst 'kill ring' :)

    Jetzt unterscheidet man zwischen 'delete' == loeschen, und 'kill' == verschiebe den Text in den kill ring. Das 'a' steht fuer den Anfang (alpha). Also ak bedeutet: Bewege den Cursor an den Anfang der Zeile und dann kill alles bis zum Ende der Zeile. Damit das Kommando flexibler ist, löscht Emacs zwar alle Zeichen bis zum Zeilenende, aber nicht den Zeilenumbruch selbst. Dafuer muss man dann nochmals k druecken. Dieses Verhalten ist komisch und viele schalten das so um, das C-k die ganze Zeile inklusive \n loescht.

    Es gibt uebrigens auch eine Funktion die die ganze Zeile loescht: kill-whole-line ist im standard an C-Shift-Backspace gebunden und macht das selbe wie dd. Aber ich mag C-k so wie es ist, denn ich verwende C-k auch, um nur bis zum Ende der Zeile zu loeschen (d$ in Vi(m) wenn ich nicht irre).


    Kennst du eigentlich irgendwelche user, die das wirklich verwenden?


    Als ich mir den mode angeschaut habe, hab ich von einigen im usenet gelesen, die Viper verwenden. Ich hab auch vor kurzen mal bei reddit jemanden davon schwaermen hören.

    Man muss dazu sagen, das dir der viper-mode beim ersten mal starten 5 Möglichkeiten anbietet: Auf Stufe 1 bist Du in einer perfekten VI Simulation, d.h. Du kannst alles machen was in VI geht, aber überhaupt nicht mehr auf Emacs Funktionalität zurückgreifen. In der 5ten Stufe hast Du dann die Modes/Touch typing features von VI, abgesehen davon ist aber alles wie bei Emacs üblich. die anderen 3 Stufen liegen dann irgendwo dazwischen. Die Berichte die ich gelesen habe habe alle einen der letzen beiden Modi verwendet.


    Und da du ja auch vim ganz gut kennst, wie gut ist der umgesetzt? Also nur die standard vi-bindings, oder eben auch neuere features wie eben die bekannten text-objects wo ich mir da} wo ich einen ganzen block innerhalb von {} loeschen kann (delete a block)

    Der viper-mode implementiert VI perfekt und Vim gar nicht. Also alles was Vim nicht von VI uebernommen hat, wirst Du vermutlich nicht finden. VI kannst Du auf viper stufe 1 aber soweit ich weiss nicht mehr vom Original unterscheiden. Man koennte sagen: viper besteht den Bill Joy Test ;)

    Oder wie die Developer von viper es ausdruecken:

    Zitat

    Perfect compatibility with Vi is possible but not desirable.

    ;)



    Ja, da geb ich dir recht, daher ist vim eigentlich ziemilch leicht zu lernen (was jetzt nicht per se ein wichtiger vorteil sein muss), da man sich eigenltich nur ein paar kleine commands merken muss, und die dann so einfach zusammenbauen kann wie ein shell kommando a la: tail file | grep foo | sort

    Ja, das ist sehr schönes Design. Und nach wie vor Erfolgreich: Im Prinzip ist der ganze Hype der jetzt um SOA und ROA Architekturen gemacht wird ja auch wieder genau das selbe.


    Klingt sehr praktisch, muss ich dir recht geben, ich muss das leider mit einem gescheiten window manager (wie wmii) und latexmk "emulieren".

    Gerade Du solltest eigentlich xmonad verwenden, allein des Lobbyismus wegen ;) .

    Zitat


    Absolut. Wie gehen eigentlich die f,F,t bzw. T keys im emacs oder muss ich sie mit ctrl-r/s "emulieren" was z.b. fuer so quickmacros schon ein unterschied macht ob ich 2fx schreibe, oder ctrl-u,2,ctrl-s,x,RET abgesehen davon dass die semantik anders ist (f und co. sind auf die aktuelle zeile beschraenkt.)

    Ich wuerde C-s,x,C-s schreiben denke ich.

    Ein Nachteil von Emacs: Wenn man die Kuerzel aufschreibt, sehen sie immer viel komplizierter aus als sie es tatsaechlich sind ;). Emacs hat auch in der Defaultconfig eigentlich ein aehnliches "Mode" system wie Vim, nur das man eben im Emacs nur solange im Command mode ist, solange man eine Taste gedrueckt haelt, und im Vim drueckt man halt zum umschalten einmal und laesst die Taste los.

    Die laengeren Shortcuts im Emacs als sogenannte "Accords" angelegt: Also z.B. schaut das Aquivalent fuer Vims 'dd' (loesche Zeile ganz) im Emacs extrem kompliziert aus: C-a C-k C-k. In Wirklichkeit aendert das aber fast kein Emacs Benutzer in etwas einfacheres um, weil die Kombo so extrem schnell zu tippen ist: Du haelst C-Taste mit dem kleinen Finger gedrueckt und tippst akk. Das hat sich heute so stark in mein Gehirn eingespraegt das ich überhaupt keinen Grund mehr sehe das einfacher zu machen.

    Übrigens ist Ctrl eine ganz miese Belegung fuer die C- Taste. Ich lege auf jedem Betriebssystem erstmal UMSCHALT auf Ctrl, weil man UMSCHALT ganz bequem mit dem kleinen Finger erreichen kann und die Taste ja sonst völlig nutzlos ist.

    Zitat

    Meiner meinung nach ist trotzdem die bevorzugung von vim vs. emacs eher davon abhaengig ob man einen modalen editor bevorzugt, oder einen mit ctrl- alt- meta- shortcuts, wo man dafuer nicht immer modi wechseln muss.

    Naja ich finde es ist eigentlich keine Sache der Modi. Denn, wie schon erwähnt: Emacs hat die VI Belegung seit Jahren mit dabei. Du musst nur M-x viper mode ausführen und hast genau das selbe System. Ich habe zu Beginn damit gearbeitet und ich habe auch von einigen gelesen, die dabei geblieben sind.

    Meiner Meinung nach liegt der grosse Unterschied im Design: Vim ist als Unix Tool entwickelt worden: Also ein kleines, schlankes Tool, mit einer bestimmten Aufgabe, das man mit anderen Tools zusammen benutzt. Indem man z.b. Input in ein anderes Programm piped und das Output wieder ausliest. Das Keyboard Layout, wo man viele kleine Kommandos zusammensteckt, erinnert auch sehr stark an Unix.

    Emacs wurde zeitgleich mit Unix entwickelt: Die Idee fuer Emacs kommt wie schon gesagt aus dem MIT-Lab und Emacs ist so etwas wie die Umsetzung von einer Lisp Machine in Software, also einem voellig eigenen, platformunabhaengigen Entwicklungssystem. Emacs's stärkste Nachfahren sind eigentlich das Smalltalk System Squeak, die Software Plattform Java (Es ist auch kein Zufall, das der Erfinder von Java auch der Entwickler des "Gosling Emacs" war) oder der Webbrowser Firefox (Auch kein Zufall: Jamie Zawinski, der an Netscape gearbeitet hat und später bei Mozilla, hat den XEmacs geschrieben). Darum ja auch der Schmäh mit dem "Emacs ist ein tolles Betriebystem, aber.." => Emacs ist tatsächlich als Software Platform designet worden. Das Emacs heute auch sehr gut mit Unix zusammenarbeitet liegt daran, das es zufaelligerweise oft auf Unix Systemen verwendet wird. Emacs hat sich wie ein Chaemleon an Unix angepasst, aber er gehört eigentlich gar nicht wirklich dazu.

    Also im prinzip stimmen diese 4 Punkte davon ja auch auf vim

    Stimmt, darum empfehle ich ja auch Vim direkt unter den 4 Punkten. Wie Du sagst: Der Ferrari und der Lamborghini...



    , und das mit der erweiterbarkeit versteh ich nicht wo der vorteil von emacs ist.


    Dann versuche ich es nochmal zu erklaehren wie ich das meine:



    Mit vim kann ich in 4 Sprachen den editor erweitern (vimscript, ruby, perl, python) und sogar library functions von .so/.dll's callen.

    Also wo ist bitte vim jetzt unscriptbarer fuer den otto-normalo, der sich halt nicht gern in eine sprache wie lisp einlernt,
    sondern auch mit ruby other python zufrieden ist?

    Also otto-normalo kann sicher kein ruby und auch kein Python ;) Wer seinen Texteditor mit Skripten erweitern will, und wer bereits Ruby oder Python kennt, der wird auch keine Schwierigkeiten mit Lisp haben.
    Und "Ich erweitere Vim mit Ruby" klingt in der Theorie viel schoener als es in der Praxis ist: Schau mal bei vim.org, wie viele Scripts in Vimscript und wie viele in Ruby oder Python geschrieben sind. Als ich noch Vim verwendet habe, waren fast alle Erweiterungen fuer Vim in vimscript geschrieben. Warum das so ist ist ganz klar: Wenn Du Dein Script in Ruby schreibst, dann hast Du eine zusätzliche Abhängigkeit, über die viele nicht verfügen. Außerdem ist es schwer fuer jemanden Code zu bearbeiten, wenn der in 3 verschiedenen Sprachen geschrieben ist. Darum muss man schon einen wirklich guten Grund haben, aus dem man seinen Code in Ruby veröffentlicht.

    Und das Verteilen vom Code finde ich ungemein wichtig. Ich habe in meinem Emacs zwar schon einige Zeilen code selber geschrieben, aber die meisten Aenderungen sind von irgendwoher genommen. Und nicht nur das: Ein Großteil des Codes, der heute mit Emacs ausgeliefert wird, war ursprünglich mal als externer Code verfügbar. So funktioniert Emacs Development seit über 25 Jahren: Die Core developer nehmen Code, den viele bereits im Emacs verwenden und binden ihn in die Core Distribution ein. Dabei ist der Portierungsaufwand voellig minimal, den der Code ist ja gar keine wirkliche Erweiterung des Editors. Es ist genau genommen eine Aenderung an der Software direkt.

    Wie ist das bei Vim? Jemand schreibt ein nützliches Plugin und stellt es irgendwo online. Jemand anders laed es sich herunter kann es über einen Pluginmechanismus aufrufen oder an ein Keyboardevent knüpfen. Es gibt aber eine ganz strikte Trennung zwischen Einem Plugin und dem C-Code, in dem Vim geschrieben ist.

    Ich hoffe Du siehst den direkten Unterschied. Dein Plugin kann nur genau das machen, was die API zulässt. Und das Ergebnis ist Fremdcode und keine Aenderung. Wenn ich in Emacs z.b. die interne Dokumentation durchsuche, dann wird mein Code genauso gefunden wie der von Richard Stallman. Ich kann aus der Doku direkt auf den Sourcecode zugreifen, egal ob der Code von mir oder von einem Core Developer geschrieben wurde. Ich kann den Code direkt verändern oder überschreiben, und meine Abänderungen werden dynamisch geladen und sind sofort sichtbar. Wenn der Python-mode etwas macht was ich nicht will, dann ändere ich das einfach. Und wenn ich möchte das Emacs meinen Haskell code beim Speichern validiert, dann ändere ich einfach die Funktion, die beim Speichern aufgerufen wird so, das sie Haskell Dateien erst zu kompilieren versucht und mich warnt wenn das nicht klappt.

    Ich weiß nicht genau was alles mit Vims API moeglich ist und was nicht. Aber es ist logisch, das es da immer natürliche Grenzen geben muss, die es bei Emacs nicht gibt.


    Und nur, weil vim-user halt lieber gescheite sachen scripten statt ein tetris-in-vim find ich das jetzt keinen nachteil.

    Der einzige Grund warum Emacs heute mit so Zeug wie Tetris oder einem Eliza Programm ausgeliefert wird ist Nostalgie: Emacs hat seinen Ursprung im Labor für künstliche Intelligenz am MIT, und Eliza oder Life sind aus nostalgischen Gründen in der Codebasis geblieben. OK, gerade Tetris ist schon später dazugekommen, ich vermute um zu zeigen wozu Emacs fähig ist. Aber es gibt keinen Grund dafuer kein Tetris in seinem Texteditor zu haben. Und wenn dir doch einer einfällt, dann kannst Du es auch einfach herausnehmen.

    Das Emacs mehr kann, als man fuers reine Text editieren braucht stört nicht und hat sogar manchmal Vorteile: Ich habe z.B. nie verstanden, warum mein Emacs Bilder anzeigen können muss. Aber jetzt gibt es jemanden der dieses Feature benutzt um PDF Dateien im Emacs anzuzeigen. Z.b. im Latex mode ist das ein feines Feature: z.B. wenn man, während man in den Tex-Buffer schreibt, das PDF im rechten Screen automatisch immer wieder neu generieren lässt.

    Emacs hat so ziemlich das gleiche Makrosystem wie Vim. Also Macros ad-hock aufzeichnen, speichern & wiederaufrufen usw. Die Macros funktionieren auf alles was Du im Emacs machst, also Du kannst z.B. auch während des Macros zwischen den Buffern switchen oder im Filesystem herumwerkeln und das wird mit-aufgezeichnet.

    Interessant wird es, wenn man z.B. ein Terminal aus Emacs heraus verwendet: Ich kann z.B. ein Macro starten, dann irgendwas in der Shell machen, und dann wiederholt das Macro auch das. Ich kann aus einem Macro heraus Emails versenden und/oder bloggen. Ich kann sogar meine Tetris moves als Macro aufzeichnen ;)

    Was mir noch zu Macros einfällt, das in Vim eh genauso geht, aber in vielen andern Editoren die Macros unterstützen nicht: Man kann so Features wie Suche oder die relativen Navigationsfunktionen sehr gut verwenden, um Macros konsistent zu halten. Also z.B. "Suche nach dem Begriff 'Foo', gehe an das Ende eines Satzes, capitalize die letzten 3 Woerter aus der Zeile und lösche alle weiteren Zeilen bis zum nächsten 'Bar' . Sehr praktisch ist das.

    Ob lisp ausgezeichnet ist oder nicht ... kA. noch nie verwendet, da faellt dann die erweiterbarkeit fuer mich (und viele viele andere) einfach mal flach.... inwiefern dass ein vorteil fuer emacs sein kann verstehe ich nicht.

    Es ist deshalb ein Vorteil, weil Erweiterbarkeit mit Lisp besser ist als gar keine Erweiterbarkeit. Nicht vergessen: Erweiterbarkeit in dem Sinn aus meinem Artikel gibt es ja in Textmate gar nicht, es sei denn Du klaust den Sourcecode, aenderst und kompilierst ihn ;)

    Ich verstehe auch nicht warum die Erweiterbarkeit fuer dich flachfaellt, nur weil Du kein Lisp kannst: Dann lernst Du es halt. Wenn man Programmierer ist, lernt man doch eh staendig neue Sprachen und APIs. Emacs Lisp ist halt eine mehr, und ich versichere Dir, Du wirst dadurch auch zu einem besseren Java Programmierer.

    hm und wie kann ich mit java den aktuell markierten text in einer datei aus emacs herausholen?

    Mit M-x shell-command-on-region

    Und wenn Du meist das Du das Commandeoselbst nicht aus Emacs heraus anfassen moechtst, kannst du auf Emacs auch von Aussen aus abfragen, mit emacsclient -e .

    Und sorry, aber Java fuer ein Editor Macro?

    na haha. das macht eben fuer mich die maechtigkeit eines guten editors aus, dass sich die leute von haus aus etwas dabei gedacht haben und ein konsistentes design durchgezogen haben. wenn ich

    Emacs hat aber doch ein ganz konsistentes Design: alles ist eine Lisp funktion, und mit der Funktion "execute-extended-command" rufst Du sie auf. Die Kommandos die Du oft benutzt legst Du dir da auf Tasten die Dir sinnvoll erscheinen. Die Kommandos die Du selten brauchst rufst Du ueber M-x auf. Wenn Du eine Funktion suchst oder wissen willst wie sie funktioniert: M-x help und danach suchen. Dabei ist es ganz egal ob die Funktion von Dir stammt oder schon seit 20 Jahren mit Emacs ausgeliefert wird.

    Einfacher geht es ja wohl nicht.



    mir erst alles umschreiben musz, bin ich zumindest immer auf meine '.emacs' angewiesen.

    Wenn man seine Abhaengigkeiten klein halten moechte, muss man sich auf den kleinsten gemeinsamen Nenner beschraenken, der ueberall installiert ist. Was ist das, Windows XP Home Edition + Notepad? ;) Ich fuer meinen Teil arbeite zu 99% meiner Zeit auf den gleichen 3 Systemen: Rechner in der Arbeit, Rechner zuhause und auf dem Notebook. Meine Emacs Konfiguration liegt zusammen mit meiner zsh config und dem ganzen anderen Zeug aus meinem $HOME in einem zentralen Repository. Wenn ich ein neues System aufsetze, dann check ich das home aus und setze ein paar symlinks -> fertig. Fuer den Ausnahmefall, das ich mal an einem fremden Rechner Text bearbeiten muss, werde ich nicht meine gesamte Arbeitsweise auf den kleinsten gemeinsamen Nenner limitieren. Und zur Not kann ich dann auch noch Vim oeffnen: Ich hab den frueher naemlich auch mal verwendet ;).

    Zitat

    komische antwort. emacs zum vim umfunktionieren damit man damit arbeiten kann?


    Nein die Antwort ist gar nicht komisch. Wie schon gesagt, Emacs ist ein Baukasten fuer Editoren und genau fuer diese Art Anpassungen gemacht worden. Sich etwas anzusehen was einem gut gefaellt, und dann in den Editor einzubauen, ist ganz genau der Grund aus dem ich Emacs verwende. Mit Vim koennte ich das nicht.

    Als Textmate rausgekommen ist, hatte es dieses "Snippets" feature, das im Ruby on Rails screencast gezeigt wurde. Eine Woche spaeter gab es ein Stueck lisp fuer Emacs das das macht. Ich hab mir das in meine Config geschmissen und seitdem ist es fester Bestandteil meines Editors. Ich hab eine ganze Reihe von Features, die ich in meinem Alltag verwende, von denen ich keine Ahnung mehr habe ob sie von Richard Stallman geschrieben wurden oder ob ich die mal irgendwann am EmacsWiki gefunden habe. Vim hat hier ganz deutliche Grenzen (== API), die Grenzen von Emacs beschraenken sich nur auf die paar Zeilen C, in denen die Lisp Maschine und die native GUI geschrieben sind.

    uhm eigentlich schon, ich hab aber nix mit emacs am hut. hab ich das jetzt falsch verstanden: emacs kannst du zwar so wie du beschrieben hast schoen erweitern, musst aber lisp dazu verwenden?

    Ja. Erweitern kannst Du Emacs nur in der Sprache, in der Emacs selbst geschrieben ist. Erweitern in diesem Sinne kannst Du aber auch eigentlich nur Emacs. Es gibt da Yi, ein sehr interressantes Projekt aus der Haskell community, die etwas aehnliches versuchen. Aber das benutzt derzeit noch kaum jemand. Und Lisp ist eine ganz ausgezeichnete und sehr maechtige Programmiersprache.

    Das heisst natuerlich nicht, dass Du nicht ueber alle moeglichen anderen Sprachen und Tools zusammen mit Emacs kommunizieren kannst: Emacs hat ausgezeichneten Support, um Text durch beliebige Shellscripte zu pipen oder um fremden Code in Lisp einzubetten.

    Ich verwende sehr gerne Smultron - denn das ein Editor hübsch aussieht und man viel sieht hilft mir mehr beim schnellen Denken/Arbeiten als lustige Tastenkombinationen.


    Oje, jetzt habe ich sicher wieder einen Flamewar gestartet.... wird nicht meine Absicht gewesen sein.

    Nein, Kampi und ich fuehren schon den Flamewar. Aber ich werde vielleicht Smultron als Schimpfwort verwenden wenn die Diskussion ausartet. ;)

    also bis auf "auf allen OS laufbar"... is doch textmate emacs ueberlegen? vor allem die erweiterbarkeit von TM is top

    Hmm, da hast Du den Artikel aber nicht zu Ende gelesen. Gerade in der Erweiterbarkeit ist Emacs doch in einer ganz anderen Liga. TextMate kann ja nur ueber ein Plugin API "erweitert" werden. Von den 4 Punkten, die ich aufgelisted habe, ist Emacs meines Wissens nach ueberall weit vorne. Und wegen Punkt 1 scheidet er sowieso fuer mich aus.

    inwiefern ist TM nichts fuer dich?

    ausfuerliche antwort.

    bei emacs kommt es mir irgendwie so vor als haette jemand die kommandos beliebig zusammengewuerfelt...


    Nein, die Kommandos sind nach einem voellig einfachem, logischen Schema zusammengelegt: Die Kommandos haben die Namen die Du ihnen gibst und die Tastaturkuerzel liegen auf den Tasten, die Du dafuer ausgesucht hast. Das ist doch nicht schwer zu merken? :) (Btw.: Auch die Standardbelegung vom Emacs folgt uebrigens einem gut durchdachten Muster. )

    wenn man weisz c==change, d==delete, w==word,"hjkl"-navigation

    Ganz genau so funktioniert Emacs auch. Vorrausgesetzt es gefaellt Dir so. Z.b. M-x viper-mode und die Tastaturbelegung funktioniert genauso wie im VI. Alle anderen features die Du aufgezaehlt hast gehen selbstverstaendlich auch mit Emacs. Und wenn Dir in den tausenden von Funktionen im Standardpaket ein Feature fehlt, dann bedienst Du dich aus den millionen Modulen aus der Community. Und wenn Du etwas findest was in 25 Jahren Emacs noch niemand gebrauch hast, dann baust Du es dir selber rein.

    Ich empfehle Vim jedem, der viel mit Text arbeitet und ein guten out-of -the-box Produkt sucht. Ich empfehle Emacs dem, der programmieren kann und sich gerne sein eigenes System zusammenbastelt.

    ausfuerliche antwort.