Emacs

Konfigurationsbeispiel fuer Emacs:

Screenshot

1280×1024

Emacs mit GNUS

/home/~/.emacs

Anzeige

;;;;;;;;;;;
;;; Anzeige
;;;;;;;;;;;


; Zeilenposition
; Durch diese Zeile wird die Zeilenprosition in der unteren Statusleiste
; angezeigt.
  (setq line-number-mode t)

; Spaltenposition
; Durch diese Zeile wird die Spaltenprosition in der unteren
; Statusleiste angezeigt.
  (setq column-number-mode t)

; Hervorhebung
; Zusammengehoerenden Klammerpaaren werden hervorgehoben.
; Nummer 1 bedeutet yes und nummer 0 bedeutet no.
; Sollte nicht im Betrieb geaendert werden.
  (show-paren-mode 1)

; Anzeigen von Uhrzeit und Datum in der unteren Statusleiste.
  (setq display-time-24hr-format t)
  (setq display-time-day-and-date t)
  (display-time)

; Keine Startup Message Meldung mehr beim starten von Emacs.
  (setq inhibit-startup-message t)

; Anti Aliasing
 (setq allow-anti-aliasing t
       fill-column 72)

; Laufleiste ein oder aus ausschalten
  (scroll-bar-mode -1)

; Schaltet blinkenden Cursor ein/aus.
  (blink-cursor-mode nil)

; Setzt Frame Titel und Buffer Name.
  (setq frame-title-format '("good luck " ("%f %m %b %a %D
  %I:%M:%S%p")))

; Setzt Icon Titel und Buffer Name.
  (setq icon-title-format '"Gnu Emacs")

; Im Konsolenmodus "emacs -nw" keine obere Menueleiste
  (unless window-system
  (menu-bar-mode 0))

; Schaltet unter Emacs X die ToolBar Leiste ab. 
  (tool-bar-mode 0)

; Schaltet unter Emacs X die MenuBar Leiste ab.
  (menu-bar-mode 0)

Effekte

;;;;;;;;;;;
;;; Effekte
;;;;;;;;;;;

; Sound
; Schaltet den Pip-Ton ab.
  (defun jbn-no-beep())
  (setq ring-bell-function 'jbn-no-beep)

Rechtschreibpruefung

;;;;;;;;;;;;;;;;;;;;;;;;
;;; Rechtschreibpruefung
;;;;;;;;;;;;;;;;;;;;;;;;

; Rechtschreibpruefung kann unter Emacs in allen Modi verwendet werden.
; Hier wird fuer die Rechtschreibpruefung das Programm ''ispell/aspell''
; verwendet welches bei jeder Distribution
; mit dabei sein sollte. Anstelle von ispell kann auch aspell verwendet
; werden.
; (setq-default ispell-program-name "ispell")
   (setq-default ispell-program-name "aspell"
   flyspell-default-dictionary "de_DE-neu"
   flyspell-persistent-highlight nil
   ispell-local-dictionary "de_DE-neu")

; Ispell wird automatisch fuer den Buffer geladen.
; (autoload 'ispell-buffer "ispell")
  (autoload 'ispell-buffer "aspell")

; Ispell kann manuell mit der Tasenkombination C-c C-v also STRG-c
; STRG-v gestartet werden.
  (global-set-key "\C-c\C-v" 'ispell-buffer)

; Ispell wird im ''Text Modus'' waerend dem eigentlichen schreiben
; verwendet und muss nicht manuell
; gestartet werden.
  (add-hook 'text-mode-hook 'flyspell-mode)

; Ispell kann auch manuell in jedem Mode aufgerufen werden durch die
; Eingabe von M-x ispell also ALT-x ispell

; P.S. Die Datei für Ispell welche neu hinzugefuegte Wörter beinhaltet
; ist in ~/.ispell zu finden.

Text Mode

;;;;;;;;;;;;;
;;; Text-Mode
;;;;;;;;;;;;;

; TEXT Mode mit Zeilenumbruch bei dem 72 Zeichen.
; Es wird also nach spaetestens dem 72 Zeichen umbrochen.
  (add-hook 'text-mode-hook
  (lambda ()
  (setq fill-column 72)

; Der Zeilenumbruch.
; Wird automatisch waerend dem schreiben durchgefuehrt. Manuell mit M-q
; also ALT-q
  (turn-on-auto-fill)))

; README Dateien werden im Text-Mode geoeffnet.
  (setq auto-mode-alist (cons '("\\README" .
  text-mode) auto-mode-alist))

; TXT Dateien werden im Text-Mode geoeffnet:
  (setq auto-mode-alist (cons '("\\.txt$" .
  text-mode)auto-mode-alist))

LaTeX Mode

;;;;;;;;;;;;;;;
;;; LaTeX-Mode
;;;;;;;;;;;;;;;

; TEX Dateien werden im LaTeX-Mode geoeffnet.
  (setq auto-mode-alist (cons '("\\.tex$" .
  latex-mode)auto-mode-alist))

; LaTeX-Mode mit ''nicht Automatischem'' Zeilenumbruch.
; Manuell mit M-q also ALT-q möglich.
  (add-hook 'latex-mode-hook
  (lambda ()

; Umbruch bei 72 Zeichen
  (setq fill-column 72)

; Schaltet Automatischen Umbruch ab.
  (turn-off-auto-fill)))

; Programm zum Kompilieren der LaTeX u. TeX Dateien.
  (setq-default latex-run-command 'latex)

HTML Mode

;;;;;;;;;;;;;;
;;; HTML-Mode
;;;;;;;;;;;;;;

; HTML Dateien werden im HTML-Mode geoeffnet.
  (setq auto-mode-alist (cons '("\\.html$" .
  html-mode)auto-mode-alist))

; HTM Dateien werden im HTML-Mode geoeffnet.
  (setq auto-mode-alist (cons '("\\.htm$" .
  html-mode)auto-mode-alist))

; HTML-Mode  mit ''nicht Automatischem'' Zeilenumbruch.
; Manuell mit M-q also ALT-q möglich.
  (add-hook 'html-mode-hook
  (lambda ()

; Umbruch bei 72 Zeichen
  (setq fill-column 72)

; Schaltet Automatischen Umbruch ab.
  (turn-off-auto-fill)))

Emacs & Mutt

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Emacs im MUTT Mail-Client
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; Wird der Mail-Client ''Mutt'' verwendet mit dem Editor Emacs, so wird
; mit Hilfe dieser Zeile der Editor Emacs
; beim schreiben einer neuen Mail im Text-Mode gestartet welcher zudem
; bei 72 Zeichen umbricht und mit der
; Rechtschreibprüfung Ispell arbeitet. (Falls installiert und
; entsprechend konfiguriert. Siehe Konfigurationsbeispiele!)
  (setq auto-mode-alist (cons '("\\mutt" .
  text-mode) auto-mode-alist))

; P.S. In der .muttrc waere als Editor "emacs -nw" einzutragen.

Backup Datei

;;;;;;;;;;;;;;;;
;;; Backup-Datei
;;;;;;;;;;;;;;;;

; Backups generell erstellen.
  (setq-default make-backup-files t)

; Copy-File anstelle von Ren-File.
  (setq-default backup-by-copying t)

; Wie viele alte Backup Versionen sollen beibehalten werden.
; Default ist hier 2.
  (setq-default kept-new-versions 10)

; Automatisches speichern einer Datei.
  (setq-default auto-save-default t)

; Automatisches speichern alle paar Sekunden oder Minuten
; Hier den Wert in Sekunden angeben.
  (setq-default auto-save-timeout 300)

Kalender

;;;;;;;;;;;;
;;; Kalender
;;;;;;;;;;;;

; Pfad zur Kalenderdatei in welcher die Daten gespeichert werden.
; Die .diary Datei im Homeverzeichniss.
  (setq diary-file "~/.diary")

; Kalender Benachrichtigung bei Ereignissen
  (display-time)
  (add-hook 'diary-hook' appt-make-list)
  (diary 0)

; Europaeisches Kalender Aussehen verwenden.
  (setq european-calendar-style t)

; Anzeige der Zeit beim Kalendermodus in der Statusleiste.
  (setq calendar-time-display-form
  '(24-hours ":" minutes (if time-zone " (") time-zone (if time-zone
  ")")))

; Anzeigen von Datum beim Kalendermodus in der Statusleiste.
  (setq calendar-date-display-form
  '((if dayname (concat dayname ", ")) day " " monthname " " year))

; Unterstreicht im Kalendermodus den heutigen Tag.
  (add-hook 'today-visible-calendar-hook 'calendar-mark-today)

; Eine Woche beginnt in der Kalenderansicht mit Montag als ersten Tag
; anstelle von Sontag.
  (setq calendar-week-start-day 1)

; Fuer deutsche Monatsnamen im Kalender.
; (setq calendar-month-name-array ["Januar" "Februar" "März" "April"
; "Mai"
; "Juni" "Juli" "August" "September" "Oktober" "November" "Dezember"])

; Eintraege im Kalender markieren, kann auch manuell mit der Taste M
; gemacht werden.
; Hier wird automatisch nach dem Start alles Markiert wo Eintraege
; vorhanden sind.
  (setq mark-diary-entries-in-calendar t)

News Reader

;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; NewsReader Konfiguration
;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; Den NNTP News Server eintragen, hier im Beispiel einer von Arcor.
  (setq gnus-select-method ' (nntp "NEWSSERVER"))

; Userdaten und Zugangsinformationen zum NNTP Server werden in einer
; seperaten Datei
; namens .authinfo im Homeverzeichniss gespeichert.
  (setq nntp-authinfo-file "~/.authinfo")

; Allgemeine Einstellungen: eMailadresse und Name der verwendet werden
; soll.
      user-mail-address "EMAILADRESSE"
      user-full-name "VORNAME NACHNAME"

; Zuerst Message-ID vom Server generieren.
  (setq message-syntax-checks '((message-id . disabled)))

; Zeitanzeige und Darstellung v. Datum, Auflistung etc.
  (add-hook 'gnus-select-group-hook 'gnus-group-set-timestamp)
  (setq gnus-group-line-format
  "%M%S%5y: %(%~(pad-right 60)g%) Last read on: %uT\n")
  (require 'gnus-spec)
  (defun gnus-user-format-function-T (dummy)
  (let ((time (gnus-group-timestamp gnus-tmp-group)))
  (format-time-string "%d.%m.%Y %T" time)))
  (add-hook 'gnus-select-group-hook 'gnus-group-set-timestamp)

; Gruppen sollen hierarchisch sortiert werden (topic-mode).
  (add-hook 'gnus-group-mode-hook 'gnus-topic-mode)

; Formatierung der group-line: GNUS.
  (add-hook 'gnus-select-group-hook 'gnus-group-set-timestamp)

; Die group-line.
  (setq gnus-group-line-format
  "%M\%S\%p\%P\%5y: %(%-40,40G%) %ud\n")

; Format - Darstellung der Zeitausgabe.
  (defun gnus-user-format-function-d (headers)
  (let ((time (gnus-group-timestamp gnus-tmp-group)))
  (if time (format-time-string "%b %d  %H:%M" time)
  "")))

; Summary-Line Anzeige.
; Fuer die Ansicht im Summary Fenster.
;
; Beispiel (1)
  (setq gnus-user-date-format-alist
  '(((gnus-seconds-today) . "%b %d  %k:%M")
  ((+ 86400 (gnus-seconds-today)) . "%b %d  %k:%M")
  ((+ 604800 (gnus-seconds-today)) . "%b %d  %k:%M")
  ((gnus-seconds-month) . "%b %d  %k:%M")
  ((gnus-seconds-year) . "%b %d  %k:%M")
  (t . "%b %d  %k:%M"))

  gnus-summary-line-format
  (concat
  "%*%U%R%z"
  "%[%4L%] %*"
  "%(%-24,24f %)"
  "%1{ %B%s%}\n"))

;
; Beispiel (2)
; (setq
; gnus-group-line-format " %M%S%5y: + %(%g%)\n"
; gnus-summary-line-format  "%d %U %R %z %I %(%[%4L: %-18,18n%]%)
; %s %e\n")
; (setq gnus-thread-sort-functions
; '(gnus-thread-sort-by-number
; gnus-thread-sort-by-date
; gnus-thread-sort-by-total-score))
;

; Der erste Thread einer Gruppe soll nicht automatisch expandiert
; werden.
  (setq gnus-auto-select-first 'unseen-or-unread)
  (add-hook 'gnus-summary-prepared-hook 'gnus-summary-hide-all-threads)

; Fenster - Frame Teilen
; Damit die ganze Sache etwas uebersichtlicher ist, koennen wir
; bestimmte Fenster anordnen etc.
;
; Beispiel (1) Oben Summary unten Article Rechts Tree
;
; (progn
; (setq gnus-build-sparse-threads 'some
; gnus-use-trees t
; gnus-generate-tree-function 'gnus-generate-horizontal-tree
; gnus-tree-minimize-window nil)
; (gnus-add-configuration
; '(article
; (vertical 1.0
; (horizontal 0.25
; (summary 0.75 point)
; (tree 1.0))
; (article 1.0)))))
;
; Beispiel (2) Oben Summary unten Article links Group
;
; (gnus-add-configuration '(article (horizontal 1.0 (vertical 25 (group
; 1.0) ) (vertical 1.0 (summary 0.15 point) (article 1.0) ))))
; (gnus-add-configuration '(summary (horizontal 1.0 (vertical 25 (group
; 1.0) ) (vertical 1.0 (summary 1.0 point) ))))
;
; Beispiel (3) Summary unten Article oben
;
; (gnus-add-configuration
; '(article
; (horizontal 1.0
; (vertical 1.0
; (article 1.0)
; (summary 0.26 point)))))
;
; Beispiel (4) Tree unter Summary und ganz unten Article.
;
; (setq gnus-use-trees t
; gnus-generate-tree-function 'gnus-generate-horizontal-tree
; gnus-tree-line-format "%(%[%6,6n%]%)")

; Topics anzeigen.
  (add-hook 'gnus-group-mode-hook 'gnus-topic-mode)

; Keine leeren Topics.
  (setq gnus-topic-display-empty-topics nil)

; Topic Anzeige mit Anzahl der ungelesenen Artikel.
  (setq gnus-topic-line-format "%i[ %(%{%n%}%) -- %A ]%v\n")

; Topics sortieren nach wirklichem Namen, d.h. mit Server-Prefix.
  (setq gnus-group-sort-function 'gnus-group-sort-by-real-name)

; Threads aus- und einklappen mit Cursortasten 
  (defun my-gnus-summary-show-thread ()
  "Show thread without changing cursor positon."
  (interactive)
  (gnus-summary-show-thread)
  (beginning-of-line)
  (forward-char 1))

  (setq gnus-thread-hide-subtree t)
  (define-key gnus-summary-mode-map [(right)] 'my-gnus-summary-show-thread)
  (define-key gnus-summary-mode-map [(left)]  'gnus-summary-hide-thread)


; Beim Markieren keine ungelesene Nachrichten anspringen.
  (setq gnus-summary-goto-unread nil)

; Animierte Anzeige beim Erstellen vom Summary (ab Gnus 5.10)
  (setq gnus-summary-display-while-building t)

; C-a setzt den Cursor an den Anfang der Zeile, nicht an den Anfang
; des Header-Inhalts (ab Gnus 5.10)
  (setq message-beginning-of-line nil)

; Signatur nicht mitzitieren.
  (setq message-cite-function 'message-cite-original-without-signature)

; Auf ausgewaehlte Nachricht im Summary Buffer Antworten.
 (define-key gnus-summary-mode-map [(f2)] 'gnus-article-followup-with-original)


; Farbeinstellungen fuer GNUS Summary Buffer.
; Die obersten Headerzeilen wurden auf default - schwarz gesetzt und die
; Auszeichnungen von Fett und Kursive wurden entfernt.
; Der Courser ist anstelle von Schwarz nun Rot.

(custom-set-faces
  ;; custom-set-faces was added by Custom.
  ;; If you edit it by hand, you could mess it up, so be careful.
  ;; Your init file should contain only one such instance.
  ;; If there is more than one, they won't work right.
 '(cursor ((t (:background "red"))))
 '(erc-prompt-face ((t (:foreground "Blue" :weight bold))))
 '(gnus-header-content ((t (:foreground "default" :slant normal))))
 '(gnus-header-from ((((class color) (background light)) (:foreground "default"))))
 '(gnus-header-name ((((class color) (background light)) (:foreground "default"))))
 '(gnus-header-newsgroups ((t (:foreground "MidnightBlue" :slant normal))))
 '(gnus-header-subject ((((class color) (background light)) (:foreground "default"))))
 '(gnus-signature ((t (:slant italic))))
 '(message-header-cc ((((class color) (background light)) (:foreground "default"))))
 '(message-header-name ((((class color) (background light)) (:foreground "default"))))
 '(message-header-newsgroups ((t (:foreground "default"))))
 '(message-header-other ((((class color) (background light)) (:foreground "default"))))
 '(message-header-subject ((t (:foreground "default" :weight normal))))
 '(message-header-to ((t (:foreground "default" :weight normal))))
 '(widget-button ((t (:weight normal)))))

GNUS Grundeinstellung

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; GNUS Mail Grundeinstellungen
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; Die eigene eMail Adress angeben.
  (setq user-mail-address "EMAILADRESSE")
; Seinen Vor.- und Nachnamen angeben.
  (setq user-full-name "VORNAME NACHNAME")
; Hier wird der Sender im Mailheader geloescht.
  (setq message-syntax-checks ' ((sender . disabled)))
; Zuerst werden alle Headerinformationen erzeugt.
  (setq message-generate-headers-first t)

; Mails aus anderen Emacs-Pakete (wie BBDB) immer
; mit GNUS schreiben.
  (require 'gnus-msg)
  (setq mail-user-agent 'gnus-user-agent)

GNUS POP

;;;;;;;;;;;;;;;;;;;;;;;;;
;;; GNUS Mail Empfang POP
;;;;;;;;;;;;;;;;;;;;;;;;;

; Den Mailserver eintragen.
  (setenv "MAILHOST" "MEINEN MAILSERVER")

; Das Passwort wird beim Verbindungsaufbau abgefragt.
  (setq rmail-primary-inbox-list ' ("po:EMAILADRESSE")
  rmail-pop-password-required t)

GNUS SMTP

;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; GNUS Mail Versand SMTP
;;;;;;;;;;;;;;;;;;;;;;;;;;

  (setq message-send-mail-function 'smtpmail-send-it
  send-mail-function 'smtpmail-send-it

; Den SMTP Server eintragen
  smtpmail-smtp-server "POSTAUSGANGSSERVER"
  smtpmail-local-domain nil
  smtpmail-debug-info t)

; Signatur
; Beim antworten soll die Signatur nicht zitiert werden.
  (setq
  message-from-style 'angles
  message-cite-function 'message-cite-original-without-signature
  )

; Meine Signatur
 (setq message-signature (quote "Gruss, MEIN NAME"))

ERC - IRC

;;;;;;;;;;;;;
;;; ERC - IRC
;;;;;;;;;;;;;

; Basis Einstellungen fuer ERC - IRC
 (setq erc-server "irc.freenode.net"
  erc-port 6667
  erc-nick "NICKNAME"
  erc-user-full-name "VORNAME NACHNAME"
  erc-email-userid "EMAILADRESSE"
  erc-current-nick-highlight-type 'nick
  erc-timestamp-only-if-changed-flag nil

; Format fuer die Zeitanzeige im IRC, hier die Stunden:Minuten.
  erc-timestamp-format "%H:%M " )

; Passwort
  (setq erc-password "PASSWORT")

; Auto /join beim Start von ''M-x erc''
; (setq erc-autojoin-channels-alist '(("freenode.net" "#linux-club.de" "#lc-wikiteam") "#linux-club.mod"))

; Auto /join beim Start von ''M-x erc''
 (setq erc-autojoin-channels-alist '(("freenode.net" "#linux-club.mod" "#linux-club.de" "#lc-wikiteam" ) ))

; Es kann dann in Emacs mit ''M-x erc'' den ERC gestartet werden. Jeder Kanal bekommt einen
; eigenen Buffer durch die man mit ''M-x buffer-menu'' eine Uebersicht erhaelt. Ansonsten
; gelten die ganz normalen IRC Befehle.

; Prompt / Eingabezeile.
  (setq erc-prompt ">")

; Keine PW Bestaetigung am Prompt beim Server Login.
  (setq erc-prompt-for-password nil)

; Buttonize URLs, Spitznamen und anderer Text.
  (erc-button-mode 1)

; Wandelt Smileys in huebsche Ikons um.
  (erc-smiley-mode 1)

; Spelling Mode, Spell-Checker, Ispell, Rechtschreibung ueberpruefen.
  (erc-spelling-mode 1)

Fonts

;;;;;;;;;;;;;;;
;;; Emacs Fonts
;;;;;;;;;;;;;;;

; Setzt die Font Groesse von Emacs unter X.

(if window-system
(progn
(set-face-font 'default
"-misc-fixed-medium-r-normal--12-*-*-*-*-*-iso10646-1")))

Instant Messaging

Wer mit Emacs Instant Messaging betreiben moechte, kann dies mit dem IRC Mode ERC machen. Auf ERC bin ich bereits weiter oben eingegangen, fuer das Instant Messaging wird ein ICR GateWay verwendet, daher kann Instant Messaging mit dem ERC erfolgen. Um nicht extra einen IRC GateWay einzurichten, verwenden wir einfach ein paar frei verfuegbare aus dem Netz. IRC to Instant Messaging GateWays die mit Hilfe des BitlBee Projekt moeglich. BitlBee kann AIM, ICQ, Yahoo! Messenger, Jabber und MSN. Uns wird somit ueber einen IRC Client wie eben ERC ein Multimessaging in die bekanntesten Protokolle geboten. damit unter Emacs im ERC Mode BitlBee verwendet werden kann, muss ein entsprechender Eintrag wie beim herkoemmlichen ERC fuer den BitlBee Server vorgenommen werden. Eine Liste mit freien BitlBee Servern ist auf deren Webseite zu finden, hier gebe ich schnell eine Beispielkonfiguration fuer die ~/.emacs.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; ICQ, AIM, MSN, Yahoo, Jabber
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(defun erc-icq ()
  "Connect to ICQ."
  (interactive)
  (when (y-or-n-p "Plaudern? ")
    (erc-select :server "bitlbee.extreme-players.de" :port 6667
                :nick "Dein_Nickname" :full-name "Max_Mustermann"
		:password "Mein_Passwort")
                :timestamp-format "%H:%M "

Der Mode mit welchem wir unseren ERC-GateWay starten koennen wird mit ALT+X und erc-icq gestartet. Der Name erc-icq kann in der Emacskonfiguration beliebig geaendert werden. Damit das Instant Messaging ueber diesen BiltBee Server funktioniert, muessen auf diesem ein Benutzerkonto angelegt werden damit alle Einstellungen unter diesem gespeichert werden koennen. Zudem sind alle Messengerkonten der Protokolle anzulegen. Auch Buddylisten sind moeglich und koennen angelegt werden.

erc-icq.jpg

Ein guter Beitrag wie man sich auf einem BitlBee Server anmeldet sowie seine Konten einrichtet ist in Linux-Foren zufinden.

Anonym

Wer gerne Anonymes Instant Messaging betreiben moechte, kann die Verbindung zum BitlBee Server ueber das Tor network leiten. Zu starten ueber die Shell waere dies mit Hilfe von Torify.

torify emacs -nw -f erc-icq
  • Info: Die Optione emacs -nw startet diesen im Textmodus welcher fuer meinen Window Manager eher passt.

Man sollte jedoch bedenken das hier eine verschluesselte Verbindung besteht und der Exit Knoten aus Tor eventuell Daten mitlesen kann. Zudem sollte das eigentliche Instant Messagingkonto ebenfalls anonym angelegt worden sein. D.h. mit z.B. Tor die ICQ Seite besuchen und einen neuen ICQ Benutzer anlegen. Mit diesen dann ueber Tor und BitlBee verwenden. Der grosse Vorteil welchen man hat liegt auf der Hand. Es koennen alle von BitlBee unterstuetzen Instant Messaging Protokolle mit nur einer einzigen Anonymen Verbindung die zum BitlBee Server ueber Tor verwendet werden.

Links

Genaueres und ausfuehrlichere Informationen habe ich in das Linux-Club Wiki geschrieben.

 
emacs.txt · Zuletzt geändert: 2010/01/06 16:49 von onkelchentobi
 
Falls nicht anders bezeichnet ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki