Konfigurationen
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Ubuntu 20.04 Focal Fossa
Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
Der Editor Emacs ist vielfältig konfigurierbar. Hier findet sich eine kleine Auswahl an elisp-Schnipseln, die den Alltag erleichtern.
Die Hauptseite [1] des Artikels findet man unter Emacs.
Start-Screen, Batterielevel, Uhrzeit, Zeilennummern¶
Die hier angegebenen Optionen werden in der Konfigurationsdatei ~/.emacs eingetragen. t
bedeutet dabei true (wahr, an), nil
ist false (falsch, aus).
1 2 3 4 5 6 7 8 | (custom-set-variables ;; … '(inhibit-startup-screen t) ;; Unterdrückt den Startbildschirm '(display-time-mode t) ;; Zeigt die Uhrzeit in der Statusleiste an '(display-battery-mode t) ;; Batteriestatus einblenden, wenn vorhanden '(display-line-numbers-type nil) ;; Zeilennummern ausblenden. Andere erlaubte Werte: t, relative, visual ;; … ) |
Zeilen verschieben¶
Mit folgender Ergänzung in der Konfigurationsdatei ~/emacs, ist es möglich, entweder die aktuelle Zeile, oder den markierten Text mit Hilfe von Alt + ↑ / Alt + ↓ hoch/runter zu verschieben.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | (defun move-text-internal (arg) (cond ((and mark-active transient-mark-mode) (if (> (point) (mark)) (exchange-point-and-mark)) (let ((column (current-column)) (text (delete-and-extract-region (point) (mark)))) (forward-line arg) (move-to-column column t) (set-mark (point)) (insert text) (exchange-point-and-mark) (setq deactivate-mark nil))) (t (let ((column (current-column))) (beginning-of-line) (when (or (> arg 0) (not (bobp))) (forward-line) (when (or (< arg 0) (not (eobp))) (transpose-lines arg)) (forward-line -1)) (move-to-column column t))))) (defun move-text-down (arg) "Move region (transient-mark-mode active) or current line arg lines down." (interactive "*p") (move-text-internal arg)) (defun move-text-up (arg) "Move region (transient-mark-mode active) or current line arg lines up." (interactive "*p") (move-text-internal (- arg))) (provide 'move-text) (global-set-key [M-up] 'move-text-up) (global-set-key [M-down] 'move-text-down) |
Die Vorlage wurde entnommen von http://www.emacswiki.org/emacs/MoveText 🇬🇧.
DBUS in Emacs¶
Emacs bietet keine native Unterstützung des DBUS an, jedoch ausreichend Methoden, um diese Funktionalität selbst einstellen zu können. Hier wird ein Minimal-Beispiel dargestellt, welches man als Gerüst für eigene Methoden nutzen kann.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 | ;;; uu-dbus.el --- description -*- lexical-binding: t; -*- ;; ;; Copyright (C) 2020 Autor ;; ;; Author: Autor <email-adresse@anbieter.tld> ;; Maintainer: Autor ;; Created: March 28, 2020 ;; Modified: March 28, 2020 ;; Version: 0.0.1 ;; Keywords: examples dbus ;; Homepage: https://website.domain ;; Package-Requires: ((emacs 26.3) (cl-lib "0.5")) ;; ;; This file is not part of GNU Emacs. ;; ;; This program is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see <https://www.gnu.org/licenses/>. ;; ;; ;;; Commentary: ;; "DBus-Beispiel für ubuntuusers.de. Es kann eine Zeichenkette gesetzt und übergeben werden." ;; ;;; Code: (require 'dbus) (defvar emacs-uu-aktueller-link "Diese Variable enthält den aktuell zu repräsentierenden Link. Kann mittels emacs-uu-setLink geändert werden." ) ;; Standard setzen (setq emacs-uu-aktueller-link "https://ubuntuusers.de") (defun emacs-uu-link () "Gibt den aktuell gespeicherten Link zurück." (list :string emacs-uu-aktueller-link ) ) (defun emacs-uu-setLink (nm) "Setzt 'emacs-uu-aktueller-link auf NM, falls abweichend." (if(string-equal nm emacs-uu-aktueller-link ) (message "Das ist bereits der Link!") (setq emacs-uu-aktueller-link nm) (message "Link gesetzt auf:%s" emacs-uu-aktueller-link))) (dbus-register-method :session "org.emacs.ubuntuusers" "/uu" "org.emacs.ubuntuusers" "getUrl" 'emacs-uu-link) (dbus-register-method :session "org.emacs.ubuntuusers" "/uu" "org.emacs.ubuntuusers" "setUrl" 'emacs-uu-setLink) (defun dbus-emacs-slash-introspect () "DBus: Pfad / durchsuchbar machen." '("<!DOCTYPE node PUBLIC '-//freedesktop//DTD D-BUS Object Introspection 1.0//EN' 'http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd'> <node> <interface name='org.freedesktop.DBus.Introspectable'> <method name='Introspect'> <arg name='xml_data' type='s' direction='out'/> </method> </interface> <node name='uu' /> </node> ")) (dbus-register-method :session "org.emacs.ubuntuusers" "/" dbus-interface-introspectable "Introspect" 'dbus-emacs-slash-introspect) (defun dbus-emacs-slash-uu-introspect () "DBus: Pfad /uu mit Interface org.emacs.ubuntuusers.+Methoden durchsuchbar machen." '("<!DOCTYPE node PUBLIC '-//freedesktop//DTD D-BUS Object Introspection 1.0//EN' 'http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd'> <node> <interface name='org.freedesktop.DBus.Introspectable'> <method name='Introspect'> <arg name='xml_data' type='s' direction='out'/> </method> </interface> <interface name='org.emacs.ubuntuusers'> <method name='getUrl'> <arg name='' direction='out' type='s' /> </method> <method name='setUrl'> <arg name='link' direction='in' type='s' /> </method> </interface> </node>")) (dbus-register-method :session "org.emacs.ubuntuusers" "/uu" dbus-interface-introspectable "Introspect" 'dbus-emacs-slash-uu-introspect) (provide 'uu-dbus) ;;; uu-dbus.el ends here |
Beispiel testen:
qdbus org.emacs.uu /UbuntuUsers org.emacs.uu.setUrl https://ubuntuusers.de qdbus org.emacs.uu /UbuntuUsers org.emacs.uu.showUrl
Links¶
intern¶
extern¶