projects:emacsandforth:emacs_und_forth
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
projects:emacsandforth:emacs_und_forth [2017-08-27 15:43] – cas | projects:emacsandforth:emacs_und_forth [2018-03-04 03:11] (aktuell) – [Über Emacs] ein freches überflüssiges Leerzeichen verscheucht. yeti | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== | + | ====== Emacs und Forth ====== |
+ | |||
+ | ===== Über Emacs ===== | ||
Emacs ist ein Editor und eine Laufzeitumgebung für allerlei | Emacs ist ein Editor und eine Laufzeitumgebung für allerlei | ||
Zeile 6: | Zeile 9: | ||
Webbrowser, Kontaktdatenbank und vieles mehr). | Webbrowser, Kontaktdatenbank und vieles mehr). | ||
- | Emacs ist alt. Fast so alt wie Forth. Es wurde auf Betriebssystem | + | Emacs ist alt. Fast so alt wie Forth. Es wurde (wie Forth) |
- | entwickelt, die heute obsolete sind (wie Forth). Da Emacs erweiterbar | + | entwickelt, die heute obsolete sind. Da Emacs erweiterbar |
ist, wurde es immer angepasst und auf moderne Systeme portiert. Daher | ist, wurde es immer angepasst und auf moderne Systeme portiert. Daher | ||
benutzt Emacs viele Begriffe, die in anderen Systemen (Windows, macOS | benutzt Emacs viele Begriffe, die in anderen Systemen (Windows, macOS | ||
Zeile 14: | Zeile 17: | ||
Emacs ist (wie Forth) am Anfang nicht immer einfach zu verstehen, aber | Emacs ist (wie Forth) am Anfang nicht immer einfach zu verstehen, aber | ||
- | es lohnt sich, Emacs eine Chance zu geben. Am besten | + | es lohnt sich, Emacs eine Chance zu geben. Am besten lernt man Emacs |
- | in kleinen Happen. Bei Emacs lernt man nie aus, es gibt immer neues | + | in kleinen Happen. Bei Emacs lernt man nie aus, es gibt immer Neues |
- | und fazinierendes | + | und Fazinierendes |
- | Es gibt viele Emacs Ableger, hier geht es um das original, GNU Emacs. | + | Es gibt viele Emacs Ableger, hier geht es um das Original, GNU Emacs. |
{{ : | {{ : | ||
Zeile 49: | Zeile 52: | ||
Emacs gibt es auf diesen Systemen fast immer sehr aktuell aus dem | Emacs gibt es auf diesen Systemen fast immer sehr aktuell aus dem | ||
Repositories der Paketverwaltung des Systems. | Repositories der Paketverwaltung des Systems. | ||
+ | |||
+ | ==== MS-DOS ==== | ||
+ | |||
+ | * https:// | ||
+ | |||
+ | ====== Emacs lernen ====== | ||
+ | |||
+ | ===== Bücher ===== | ||
+ | |||
+ | * Mastering Emacs https:// | ||
+ | |||
+ | ===== Webseiten ===== | ||
+ | |||
+ | * Emacs Tutor https:// | ||
+ | * Emacs Manual https:// | ||
+ | * Planet Emacsen https:// | ||
+ | * Sacha Chua Emacs http:// | ||
+ | |||
+ | ===== Videos ===== | ||
+ | |||
+ | * Using Emacs https:// | ||
+ | ===== Referenzkarten ===== | ||
+ | |||
+ | * http:// | ||
+ | |||
+ | ====== Emacs forth-mode ====== | ||
+ | |||
+ | Emacs hat einen Programmiermodus für Forth: '' | ||
+ | |||
+ | Dieser Modus wird derzeit von Lars Brinkhoff betreut. Die Quellen befinden sich auf Github: https:// | ||
+ | |||
+ | ===== Installation ===== | ||
+ | |||
+ | Das MELPA Repositoriy muss im Emacs-Paketmanager eingetragen sein, in der Emacs-Konfigurationsdatei z.B. mit | ||
+ | |||
+ | < | ||
+ | (setq package-archives ' | ||
+ | (package-initialize) | ||
+ | </ | ||
+ | |||
+ | Emacs starten, den Forth-Mode mit "M-x package-install forth-mode" | ||
+ | |||
+ | Forth-Mode erkennt Forth-Programme an der Dateiendung. Viele gängige Forth-Dateiendungen werden unterstützt. | ||
+ | |||
+ | ====== Emacs serielles Terminal ====== | ||
+ | |||
+ | Emacs hat ein Terminalprogramm für serielle Schnittstellen eingebaut. Dieses wird mit "M-x serial-terminal" | ||
+ | |||
+ | ===== Anpassungen für Mecrisp-Forth ===== | ||
+ | |||
+ | Der folgende ELisp-Code passt das serielle Terminal im Emacs an Mecrisp-Forth an. Zur Installation den Quellcode in die Emacs-Konfigurationsdatei ('' | ||
+ | |||
+ | < | ||
+ | |||
+ | ;; mecrisp emacs term | ||
+ | (defun replace-all (string to-find to-replace) | ||
+ | (let ((index | ||
+ | (pos 0) | ||
+ | (result "" | ||
+ | (while index | ||
+ | (setq result (concat result | ||
+ | | ||
+ | | ||
+ | pos (+ index (length to-find)) | ||
+ | index (cl-search to-find string :start2 pos))) | ||
+ | (concat result (substring string pos)))) | ||
+ | |||
+ | (defun mecrisp-serial-process-filter (process output) | ||
+ | " | ||
+ | (term-emulate-terminal process | ||
+ | | ||
+ | (byte-to-string ?\n) | ||
+ | (string ?\r ?\n)))) | ||
+ | |||
+ | (defun mecrisp-serial-term (port) | ||
+ | " | ||
+ | filtering to translate LF to CR+LF." | ||
+ | (interactive (list (serial-read-name))) | ||
+ | (serial-supported-or-barf) | ||
+ | (let* ((process (make-serial-process | ||
+ | :port port | ||
+ | : | ||
+ | : | ||
+ | : | ||
+ | : | ||
+ | : | ||
+ | : | ||
+ | : | ||
+ | :name (format " | ||
+ | : | ||
+ | : | ||
+ | | ||
+ | (with-current-buffer buffer | ||
+ | (term-mode) | ||
+ | (term-line-mode) | ||
+ | (goto-char (point-max)) | ||
+ | (set-marker (process-mark process) (point))) | ||
+ | (switch-to-buffer buffer) | ||
+ | buffer)) | ||
+ | |||
+ | </ | ||
projects/emacsandforth/emacs_und_forth.1503841419.txt.gz · Zuletzt geändert: 2017-08-27 15:43 von cas