Benutzer-Werkzeuge

Webseiten-Werkzeuge


projects:emacsandforth:emacs_und_forth

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
projects:emacsandforth:emacs_und_forth [2017-08-27 15:14]
cas angelegt
projects:emacsandforth:emacs_und_forth [2018-03-04 03:11] (aktuell)
yeti [Über Emacs] ein freches überflüssiges Leerzeichen verscheucht.
Zeile 1: Zeile 1:
-Emacs und Forth+====== Emacs und Forth ====== 
 + 
 +===== Über Emacs ===== 
 + 
 + 
 +Emacs ist ein Editor und eine Laufzeitumgebung für allerlei 
 +Anwendungen auf Basis von Text (E-Mail Client, Newsgroups, 
 +Versionsverwaltung, Tabellenkalkulation, Buch-Layout mit LaTeX, 
 +Webbrowser, Kontaktdatenbank und vieles mehr). 
 + 
 +Emacs ist alt. Fast so alt wie Forth. Es wurde (wie Forth) auf Betriebssystemen 
 +entwickelt, die heute obsolete sind. Da Emacs erweiterbar 
 +ist, wurde es immer angepasst und auf moderne Systeme portiert. Daher 
 +benutzt Emacs viele Begriffe, die in anderen Systemen (Windows, macOS 
 +X, Linux) anders heissen. Emacs (wie Forth) veraltet nicht und folgt 
 +dem Entwickler bei seiner Reise durch die Computerwelt. 
 + 
 +Emacs ist (wie Forth) am Anfang nicht immer einfach zu verstehen, aber 
 +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 
 +und Fazinierendes zu entdecken. 
 + 
 +Es gibt viele Emacs Ableger, hier geht es um das Original, GNU Emacs. 
 + 
 +{{ :projects:emacsandforth:screen_shot_2017-08-27_at_15.42.00_pm.png?400 |}} 
 + 
 +===== Emacs Links ===== 
 + 
 +  * Homepage https://www.gnu.org/software/emacs/ 
 +  * Wikipedia über Emacs https://de.wikipedia.org/wiki/Emacs 
 +  * Emacs Wiki https://www.emacswiki.org/ 
 +  * nicht Emacs (der andere Editor: vi/vim) http://www.vim.org/ 
 + 
 +===== Emacs download ===== 
 + 
 +==== Windows ==== 
 + 
 +https://www.gnu.org/software/emacs/download.html#windows 
 + 
 +==== macOS X ==== 
 + 
 +Emacs ist Teil von macOS, die dort mitgelieferte Version 22 ist aber 
 +sehr alt. Aktuell (2017) ist Version 25. Aktuelle Emacs Versionen für 
 +macOS gibt es von 
 + 
 +  * https://emacsformacosx.com/ 
 +  * http://aquamacs.org/ 
 +  * https://bitbucket.org/mituharu/emacs-mac/ 
 + 
 +==== Linux/BSD/HURD/Minix ... ==== 
 + 
 +Emacs gibt es auf diesen Systemen fast immer sehr aktuell aus dem 
 +Repositories der Paketverwaltung des Systems. 
 + 
 +==== MS-DOS ==== 
 + 
 +  * https://www.emacswiki.org/emacs/EmacsForDOS 
 + 
 +====== Emacs lernen ====== 
 + 
 +===== Bücher ===== 
 + 
 +  * Mastering Emacs https://www.masteringemacs.org/book 
 + 
 +===== Webseiten ===== 
 + 
 +  * Emacs Tutor https://tuhdo.github.io/emacs-tutor.html 
 +  * Emacs Manual https://www.emacswiki.org/emacs/EmacsManual 
 +  * Planet Emacsen https://planet.emacsen.org 
 +  * Sacha Chua Emacs http://sachachua.com/blog/category/geek/emacs/ 
 + 
 +===== Videos ===== 
 + 
 +   * Using Emacs https://www.youtube.com/playlist?list=PL9KxKa8NpFxIcNQa9js7dQQIHc81b0-Xg 
 +===== Referenzkarten ===== 
 + 
 +  * http://www.ks.uiuc.edu/Training/Tutorials/Reference/emacsrefcard.pdf 
 + 
 +====== Emacs forth-mode ====== 
 + 
 +Emacs hat einen Programmiermodus für Forth: ''%%forth-mode%%'' 
 + 
 +Dieser Modus wird derzeit von Lars Brinkhoff betreut. Die Quellen befinden sich auf Github: https://github.com/larsbrinkhoff/forth-mode 
 + 
 +===== Installation ===== 
 + 
 +Das MELPA Repositoriy muss im Emacs-Paketmanager eingetragen sein, in der Emacs-Konfigurationsdatei z.B. mit 
 + 
 +<code> 
 +(setq package-archives '(("melpa" . "http://melpa.milkbox.net/packages/"))) 
 +(package-initialize) 
 +</code> 
 + 
 +Emacs starten, den Forth-Mode mit "M-x package-install forth-mode" installieren. 
 + 
 +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" aufgerufen. Es fragt nach dem Namen der Schnittstelle und der Geschwindigkeit. Die Geschwindigkeit kann nachträglich mit der Maus in der Modus-Zeile des Buffers geändert werden. 
 + 
 +===== 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 (''%%~/.emacs%%'' oder ''%%~/.emacs.d/init.el%%'' kopieren und Emacs neu starten). 
 + 
 +<code> 
 + 
 +;; mecrisp emacs term 
 +(defun replace-all (string to-find to-replace) 
 +  (let ((index  (cl-search to-find string)) 
 +        (pos    0) 
 +        (result "")) 
 +    (while index 
 +      (setq result (concat result 
 +                           (substring string pos index) 
 +                           to-replace) 
 +            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) 
 +  "Replace LF in output string with CR+LF." 
 +  (term-emulate-terminal process 
 +                         (replace-all output 
 +                                      (byte-to-string ?\n) 
 +                                      (string ?\r ?\n)))) 
 + 
 +(defun mecrisp-serial-term (port) 
 +  "Basically duplicate SERIAL-TERM from term.el but with process 
 +  filtering to translate LF to CR+LF." 
 +  (interactive (list (serial-read-name))) 
 +  (serial-supported-or-barf) 
 +  (let* ((process (make-serial-process 
 +                   :port port 
 +                   :speed 115200 
 +                   :bytesize 8 
 +                   :parity nil 
 +                   :stopbits 1 
 +                   :flowcontrol nil 
 +                   :coding 'raw-text-unix 
 +                   :noquery t 
 +                   :name (format "mecrisp:%s" port) 
 +                   :filter 'mecrisp-serial-process-filter 
 +                   :sentinel 'term-sentinel)) 
 +         (buffer (process-buffer process))) 
 +    (with-current-buffer buffer 
 +      (term-mode) 
 +      (term-line-mode) 
 +      (goto-char (point-max)) 
 +      (set-marker (process-mark process) (point))) 
 +    (switch-to-buffer buffer) 
 +    buffer)) 
 + 
 +</code> 
projects/emacsandforth/emacs_und_forth.1503839664.txt.gz · Zuletzt geändert: 2017-08-27 15:14 von cas