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:44] – 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.1503841442.txt.gz · Zuletzt geändert: 2017-08-27 15:44 von cas