Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
Wie schreibe ich einen Editor in C?

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - C
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
bk
Gast





BeitragVerfasst am: 05. März 2002 17:39   Titel: Wie schreibe ich einen Editor in C?

Ich möchte als Übung und rein interessenshalber einen sehr einfachen Editor in C schreiben. Das erste Hindernis, auf das ich gestoßen bin, ist, dass ich keine einzelnen Zeichen einlesen kann, ohne dass ich Enter drücken muss. Gibt es etwas anderes außer getchar(), bei dem es auch ohne Enter funktioniert?
Für sonstige Tipps rund ums Editor schreiben wäre ich sehr dankbar. Gibt es schon irgendwelche Bibliotheken, die mir das Editor schreiben erleichtern könnten? Der Editor soll übrigens nur für die Konsole sein und keine grafischen Elemente haben.
Gibt es vielleicht schon einen sehr einfachen Editor, der ähnlich wie vi ist und dessen Quelltext verfügbar ist. Mit sehr einfach meine ich wirklich sehr einfach und es sollten nur ein paar Tausend Zeilen sein, am besten weniger als 2000, damit die Sache für einen Anfänger wie mich überschaubar bleibt.
Vielen Dank im Voraus.
 

Descartes
Gast





BeitragVerfasst am: 05. März 2002 19:39   Titel: Re: Wie schreibe ich einen Editor in C?

Hmm ein kleiner Editor ?
Wie wäre es mit...

e3
http://www.sax.de/~adlibit/

GNU ed
ftp://ftp.gnu.org/gnu/ed/
 

bakunin



Anmeldungsdatum: 16.08.1999
Beiträge: 597
Wohnort: Lorsch (Südhessen)

BeitragVerfasst am: 05. März 2002 19:42   Titel: Re: Wie schreibe ich einen Editor in C?

Hi!

Für Programme, jene die speziellen Eigenschaften von Terminals ansteuern, gibt es die Curses-Bibliothek bzw. unter den GNU-Systemen die Curses-Implementierung "ncurses". Als kleinen Editor würde ich spontan GNU nano empfehlen (www.nano-editor.org), allerdings am Besten eine ältere Version, da die aktuellen etwas größer sein dürften.

Cheers,
GNU/Wolfgang
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen

bk
Gast





BeitragVerfasst am: 06. März 2002 21:07   Titel: Re: Wie schreibe ich einen Editor in C?

Danke für die Tipps!
Verwendet vim auch ncurses oder gibt es auch noch etwas anderes?
Ist es auch möglich, das ganze mit ganz normalem Ansi C zu realisieren?
 

bakunin



Anmeldungsdatum: 16.08.1999
Beiträge: 597
Wohnort: Lorsch (Südhessen)

BeitragVerfasst am: 07. März 2002 13:31   Titel: Re: Wie schreibe ich einen Editor in C?

Hi!

> Verwendet vim auch ncurses oder gibt es auch noch etwas anderes?

Vim verwendet ncurses oder eine andere Curses-Implementierung. Oder Gtk+. Oder Xt(?). Oder die Bibliothek vom AmigaOS, von MacOS, von Windows oder sonstwas. Was vim bei dir verwendet, verrät dir das Programm ldd.

> Ist es auch möglich, das ganze mit ganz normalem Ansi C zu realisieren?

Du meinst ohne weitere Bibliotheken? Ja, das ist wohl prinzipiell möglich, wenn man direkt Terminal-Kontrollsequenzen ausgibt. Dann ist man aber entweder auf einen bestimmten Terminal-Typ festgelegt oder musst Curses neuerfinden. Beides ist blödsinnig.

Cheers,
GNU/Wolfgang
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen

vyper



Anmeldungsdatum: 27.02.2002
Beiträge: 19

BeitragVerfasst am: 07. März 2002 14:11   Titel: Re: Wie schreibe ich einen Editor in C?

Eine Alternative zu ncurses ist s-lang. Diese Bibliothek wird standardmässig vom Midnight Commander und zwingend von slrn verwendet (leider).

Im Allgemeinen würde ich aber dennoch ncurses empfhlen.

ANSI C definiert nur die Ein- und Ausgabe von Bytes in Streams, von denen einer stdout ist (eben die Konsole). Dinge wie Cursorpositionierung, Farben, etc. werden davon nicht unterstützt. Dazu benötigt man zusätzliche Libraries.
 
Benutzer-Profile anzeigen Private Nachricht senden

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - C Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy