2009-03-27 19 views
15

Ich habe mich in einigen Programmiersprachen kennengelernt, und ich würde gerne versuchen, einen Befehlszeilen-Texteditor zu erstellen - etwas, das im Terminal läuft, wie vim/emacs/nano, aber ist reiner Text (bitte nicht). Am liebsten würde ich das in Python machen. Wo soll ich anfangen? Gibt es (Python) Bibliotheken, um Kommandozeilen-Anwendungen zu machen?Wie mache ich einen Befehlszeilen-Texteditor?

+0

Wenn Sie laufende Projekte finden, lassen Sie es uns wissen. Ich würde gerne einen vim-ähnlichen Editor in Python geschrieben und mit Python als Skriptsprache ... –

Antwort

18

versuchen Python curses Modul, es ist eine Befehlszeile Grafik Operationsbibliothek.

+4

Kids heute! Als ich lernte zu programmieren, hatten wir keine Flüche, wir hatten Fernschreiber! –

+5

Damals mussten wir Leiterplatten herstellen, bevor wir überhaupt angefangen haben. P –

+6

Früher benutzten wir Zahnräder und Dampf, um 1-Fuß-Quadratpixel auf riesigen, Bonfire-Backed-Displays zu enthüllen und zu verbergen, die kilometerweit verstrichen waren und das Ganze war sinnlos, außer du hattest ein trainiertes Team von mindestens 100 Gnomen. –

1

Nun, was meinst du mit einer GUI? Wenn Sie nur etwas erstellen möchten, das auf einer Konsole verwendet werden kann, sehen Sie sich das Modul curses in der Python-Standardbibliothek an, in dem Sie eine einfache grafische Benutzeroberfläche auf einer Konsole simulieren können.

5

Flüche Typbibliotheken und Ressourcen finden Sie in den Text Benutzeroberflächen bekommen und bieten sehr schön, relativ einfach Fenster zu verwenden, Menüs, Editoren, etc.

Dann sollten Sie in Codehervorhebung Module suchen für Python.

Es ist ein lustiger Prozess, der sich mit den Einschränkungen von Textschnittstellen beschäftigt, und Sie können viel lernen, wenn Sie diesen Weg gehen. Viel Glück!

-Adam

+0

Danke - haben Sie irgendwelche guten Empfehlungen für diese Code-Highlighting-Module? Ich stocherte in der Dokumentation von pygents herum, aber das sah nicht so aus, als ob es für Syntax-Highlighting in Echtzeit erstellt worden wäre. Können pygents Syntax-Highlighting in Echtzeit ausführen oder gibt es andere Module, die ich auschecken sollte? – So8res

+0

Segmente können in Echtzeit arbeiten, sind aber möglicherweise ein wenig ineffizient. – fread2281

5

Eine weitere Option, wenn Sie eine TUI (Text User Interface) schreiben wollen, ohne nach Curses absteigen zu müssen, ist Snack, die mit Newt kommt.

2

Ein nicht sehr ernsthafte Vorschläge: ein line editor kann ohne Flüche implementiert werden.

Diese Dinge sind natürlich ziemlich primitiv, und es macht nicht viel Spaß, darin zu arbeiten. Aber sie können mit sehr wenig Code implementiert werden und würden Ihnen die Möglichkeit geben, mit verschiedenen Schemata zur Erhaltung des Dateizustands herumzualbern in Erinnerung ziemlich schnell.

Und sie würden Sie in Kontakt mit den Programmierern der frühen siebziger Jahre bringen (als sie Teletypen und die ersten Glas-Fernschreiber hatten, aber nach Lochkarten waren ein bisschen passe ...).

6

Kinder heute! Meine Güte! Als ich anfing, war Flüche nicht weit verbreitet!

Meine erste Text-Editoren bearbeiten tatsächliche mechanische Teletype- Geräte mit dem tatsächlichen Papier (keine philosophisches „TTY“ Gerät mit einem Scroll-Bildschirm!)

Diese noch schön als eine Möglichkeit, arbeitet zu bearbeiten.

Verwenden Sie das Modul cmd, um eine Reihe von Befehlen zu implementieren. Verwenden Sie die 'ex' man-Seite für Hinweise, was Sie brauchen. Lies nicht über die vi-Befehle; vermeide es, über vim zu lesen.

Sieh dir ältere Manpages für den Abschnitt "EX BEFEHLE" an. Zum Beispiel hier: http://www.manpagez.com/man/1/ex/.

Implementieren Sie die Append, hinzufügen, ändern, löschen, global, einfügen, beitreten, Liste, verschieben, drucken, beenden, ersetzen und schreiben Befehle, und Sie werden glücklich sein.

+0

Meine erste Interaktion mit einem "Computer" war über eine akustisch gekoppelte Fern-TTY. Leider war es ein Mainframe in Dads Büro, und ich durfte nichts Interessantes damit machen. – dmckee

+0

Meine ersten TTYs waren fest verdrahtet. Wahrscheinlich 110 BAUD. Ich erinnere mich, als 300 BAUD eine große Sache war. –