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.
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.
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 ;; … ) |
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 🇬🇧.
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