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?
Antwort
versuchen Python curses Modul, es ist eine Befehlszeile Grafik Operationsbibliothek.
Kids heute! Als ich lernte zu programmieren, hatten wir keine Flüche, wir hatten Fernschreiber! –
Damals mussten wir Leiterplatten herstellen, bevor wir überhaupt angefangen haben. P –
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. –
Schauen Sie sich auch Curses Programming in Python und this an.
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.
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
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
Segmente können in Echtzeit arbeiten, sind aber möglicherweise ein wenig ineffizient. – fread2281
Ich würde das ausgezeichnete urwid Toolkit empfehlen (http://excess.org/article/2009/03/urwid-0984-released) - es ist viel einfacher zu bedienen als gerade Flüche.
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 ...).
Nicht ganz ein Verweis auf eine Python-Bibliothek, aber The Craft of Text Editing von Craig A. Finseth könnte Sie interessieren.
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.
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
Meine ersten TTYs waren fest verdrahtet. Wahrscheinlich 110 BAUD. Ich erinnere mich, als 300 BAUD eine große Sache war. –
Eine weitere Option ohne Flüche ist Python Slang
[Newt] (http://en.wikipedia.org/wiki/Newt_(programming_library)) auf der Jargon geschrieben.
- 1. Wie mache ich einen Bildkonverter?
- 2. Wie mache ich einen Slider wie Javascript?
- 3. Wie mache ich einen "verzweigten" Conduit?
- 4. Wie mache ich einen (statischen) Initialisiererblock strictfp?
- 5. Wie mache ich einen Einsatz mit einem
- 6. Wie mache ich einen Ordner/Verzeichnis
- 7. Wie mache ich einen Clip (LIDAR-Daten)
- 8. Wie mache ich einen Text als auswählbar?
- 9. Wie mache ich einen "zurück" -Link?
- 10. Wie mache ich einen MdiClient-Hintergrund transparent?
- 11. Wie mache ich einen Datumsvergleich in Javascript?
- 12. Wie mache ich einen Piepton in Android?
- 13. Wie mache ich einen Go-Prozess?
- 14. Wie mache ich einen Link in Javascript
- 15. Wie mache ich einen runden Fortschrittsbalken?
- 16. Wie mache ich einen animierten Spritekit-Hintergrund?
- 17. Wie mache ich einen Git Push?
- 18. AngularJS: Wie mache ich einen schwankenden Fortschrittsbalken?
- 19. Wie mache ich einen Zeilenumbruch in Python?
- 20. Wie mache ich einen aktiven Schlaf?
- 21. Wie mache ich einen QVector von Widgets?
- 22. Wie mache ich einen "Screenshot" eines NSView?
- 23. Wie mache ich einen Schlaf in Javascript?
- 24. Wie mache ich einen Feld Autofokus?
- 25. Wie mache ich einen Kohlezeichnung Filter
- 26. Wie mache ich einen androiden Button?
- 27. Wie mache ich Hintergrundcode?
- 28. Wie mache ich Konfetti?
- 29. Wie mache ich einen neuen Tab wie Fehler in Eclipse
- 30. Wie mache ich einen Fortschritt Button wie folgt für Android?
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 ... –