Wie kann ich eine andere Hintergrundfarbe für das aktive Fenster in Emacs konfigurieren?Benutzerdefinierter Hintergrund für aktives Fenster
Antwort
Mit "Fenster" meinen Sie Emacs 'Definition von Fenstern, d. H. Scheiben, nicht wirklich.
Wenn Sie mit "Fenster" alle anderen Vorstellung von Fenstern meinen, die Emacs Frames nennt, dann ja. Hier ein Beispiel:
(defadvice handle-switch-frame (around switch-frame-set-background)
(set-background-color "white")
ad-do-it
(set-background-color "yellow"))
(ad-activate 'handle-switch-frame)
(defadvice delete-frame (after delete-frame-set-background)
(set-background-color "yellow"))
(ad-activate 'delete-frame)
Und wenn er es per-Fenster will, würde ich nur eine Reverse-Video-Modelllinie empfehlen. Wenn Sie mehr visuelle Hinweise benötigen, öffnen Sie weniger Fenster. – jrockway
Uh, aktive Modeline, das ist. – jrockway
Ich meine Emacs Fenster. Highlight der Moduszeile ist mir nicht genug. Ich benutze einen großen Bildschirm, viele Fenster sind offen .. und ziemlich oft habe ich begonnen, nicht das Fenster zu bearbeiten, das ich bearbeiten wollte. Ich werde versuchen, wenn Reverse-Video-Modus wird eine Verbesserung sein –
Wenn das, was Sie versuchen, den aktuellen Puffer/Rahmen zu markieren, zu erreichen, ist die Art, wie ich das tun, ist durch Highlight-Current-Line. Es zeigt Ihnen die Zeile, in der sich der Cursor befindet, aber ein Nebeneffekt ist, dass Sie auch sehen, in welchem Puffer/Frame Sie sich befinden. Sie könnten ihn so konfigurieren, dass er den gesamten Puffer hervorhebt oder in den Code schaut es.
Ja, was ich mit "nicht wirklich" meinte, war, dass Sie kein Fenster markieren können, nur einen Puffer, weil jede Änderung des Pufferinhalts jede Ansicht des Puffers beeinflusst. Für mich ist die Modelinie Farbe + Cursor gut. –
In der Tat Puffer ist besser Begriff für das Fenster. Ich möchte den aktuellen Puffer hervorheben :) –
Hier ist eine Alternative mit der modeline inaktiven Farbe passend zum Hintergrund, so dass die einzige Modeline mit Farbe das aktive Fenster ist. Ich habe einen Haken für den Minibuffer eingeben und beenden, und auch beim Wechsel von Windows. Ich verwende Fett für bestimmte Modeline-Dinge wie schreibgeschützt und den Dateinamen, damit beim Wechseln von Fenstern die eine andere Farbe nicht auffällt. Wenn ich den Minipuffer betrete, wird die aktive Fenstermodelinie inaktiv, bis ich den Minibuffer verlasse oder wenn ich von einem aktiven Minibuffer (den ich offen lasse) zu einem anderen Fenster umschalte. Ich musste auch die Modelinie-Hintergrundbox anpassen.
(set-face-attribute 'default nil :background "black" :foreground "white"
:font "Courier" :height 180)
(set-face-attribute 'mode-line nil
:height 160 ;; affects everything
:foreground "black" :background "gray70")
(set-face-attribute 'mode-line-inactive nil
:foreground "gray70" :background "black" :box '(:line-width 1 :color "black"))
(defun enter-minibuffer-setup()
(whitespace-mode t)
(set-face-attribute 'mode-line nil
:height 160 :foreground "gray70" :background "black" :box '(:line-width 1 :color "black"))
(set-face-attribute 'minibuffer-prompt nil :background "black" :foreground "cyan")
(set (make-local-variable 'face-remapping-alist)
'((default :background "black" :foreground "yellow"))))
(defun exit-minibuffer-setup()
(cond
((or save-as-variable multi-extract-variable multi-attach-variable)
(set-face-attribute 'mode-line nil :height 160 :foreground "black" :background "#eab700"))
(t (set-face-attribute 'mode-line nil :height 160 :foreground "black" :background "gray70" :box nil)))
(set-face-attribute 'minibuffer-prompt nil :background "black" :foreground "cyan"))
(add-hook 'minibuffer-setup-hook 'enter-minibuffer-setup)
(add-hook 'minibuffer-exit-hook 'exit-minibuffer-setup)
(defun lawlist-minibuffer-conditions()
(cond
((minibufferp)
(set-face-attribute 'mode-line nil
:height 160 :foreground "gray70" :background "black" :box '(:line-width 1 :color "black"))
(set-face-attribute 'minibuffer-prompt nil :background "black" :foreground "cyan"))
(t
(set-face-attribute 'mode-line nil
:height 160 :foreground "black" :background "gray70")
(set-face-attribute 'minibuffer-prompt nil :background "black" :foreground "gray70"))))
(defun lawlist-forward-window()
(interactive)
(other-window 1)
(lawlist-minibuffer-conditions))
(defun lawlist-backward-window()
(interactive)
(other-window -1)
(lawlist-minibuffer-conditions))
ALTERNATIVE ANTWORT (ähnliches Konzept): set-face-attribute
ist zu langsam für Gesichter während redisplay
ändern. Das bevorzugte Verfahren zum Anpassen von Flächen in diesem Kontext ist mit der Funktion face-remap-add-relative
; Diese Funktion ist jedoch etwas kompliziert zu verwenden, da die Gesichter hintereinander gestapelt werden und schattiert werden. Also, ich muss den folgenden Entwurf alternative Antwort (in der Zukunft) zu überarbeiten, um face-remap-add-relative
zu integrieren - in der Zwischenzeit, ich setze die face-remapping-alist
manuell (was zugegebenermaßen nicht die bevorzugte Methode nach dem Handbuch/Doc-String ist).
(defvar modeline-selected-window nil)
(let ((default-background (face-background 'default nil 'default)))
(set-face-attribute 'mode-line-inactive nil :background default-background :box nil))
(defun modeline-record-selected-window()
(setq modeline-selected-window (selected-window)))
(defun modeline-update-function()
(cond
((minibufferp)
(let ((default-background (face-background 'default nil 'default)))
(with-selected-window (minibuffer-window)
(setq-local face-remapping-alist '(
(default :foreground "blue")
(minibuffer-prompt :foreground "red"))))
(setq-default face-remapping-alist `((mode-line ,'mode-line-inactive)))))
(t
(with-selected-window (minibuffer-window)
(when (local-variable-p 'face-remapping-alist)
(kill-local-variable 'face-remapping-alist)))
(setq-default face-remapping-alist nil))))
(defun modeline-set-format()
(setq mode-line-format '(
(:eval
(if (eq modeline-selected-window (selected-window))
(propertize "SELECTED WINDOW" 'face 'font-lock-warning-face)
(propertize "NOT-SELECTED WINDOW" 'face 'font-lock-keyword-face)))))
;; next two lines make the affect immediately apparent
(setq modeline-selected-window (selected-window))
(force-mode-line-update))
(define-minor-mode modeline-mode
"This is a minor-mode for `modeline-mode`."
:init-value nil
:lighter " ML"
:keymap nil
:global t
:group nil
(cond
(modeline-mode
(add-hook 'post-command-hook 'modeline-record-selected-window)
(add-hook 'buffer-list-update-hook 'modeline-update-function)
(add-hook 'text-mode-hook 'modeline-set-format)
(when (called-interactively-p 'any)
(message "Globally turned ON `modeline-mode`.")))
(t
(remove-hook 'post-command-hook 'modeline-record-selected-window)
(remove-hook 'buffer-list-update-hook 'modeline-update-function)
(remove-hook 'text-mode-hook 'modeline-set-format)
(when (called-interactively-p 'any)
(message "Globally turned OFF `modeline-mode`.")))))
(modeline-mode 1) ;; globally turn on minor-mode
Nette Idee und inspirierender Screenshot! – katspaugh
Crosshairs Modus die beste Wahl ist, glaube ich. Es lenkt nicht nur die Aufmerksamkeit auf das aktive Fenster, sondern zeigt Ihnen auch sofort, wo der Cursor offensichtlich ist. Sie können es einfach ein-/ausschalten (ich binde es an C-+
.)
Sie können alternativ auch crosshairs-toggle-when-idle
verwenden. Es zeigt das Fadenkreuz erst, wenn eine Verzögerung vorbei ist. Es ist auch ein Schalter.
Sie können Fadenkreuz natürlich zusammen mit einem Gesicht mode-line
verwenden.
Versuchen Yoshida HIWIN-Modus (sichtbar aktive Fenster-Modus): https://github.com/yoshida-mediba/hiwin-mode
funktioniert wie ein Charme – mico
Das funktioniert perfekt in Emacs 25! –
I hiwin-mode
wurde mit wie in diesem Thema vorgeschlagen, aber es gibt eine open issue mit Shell Puffer (wenn inaktiv, der Text wird unsichtbar).
Daher ist eine andere Option, die ich bisher genieße, auto-dim-other-buffers mode.
- 1. Vordergrund Vs Aktives Fenster
- 2. Benutzerdefinierter Hintergrund/transparenter Hintergrund für UIBarButtonItem?
- 3. UIAppearance Entfernen benutzerdefinierter NavBar-Hintergrund für MFMailComposeViewController
- 4. Aktives JavaScript (jQuery) in TinyMCE iframe-Fenster
- 5. Zeichenfolge (Zeichen) an aktives Fenster senden
- 6. WP7 Datepicker Seite - benutzerdefinierter Hintergrund
- 7. Wie zeigt GuitarToolkit im Hintergrund ein dauerhaft aktives Banner?
- 8. Wie man aktives Fenster in e4 rcp Anwendung erhält?
- 9. AHK: Hotkey nur für ein bestimmtes aktives Fenster zuweisen und nicht für andere
- 10. a: aktives Problem in ie6
- 11. Benutzerdefinierter UIButton-Hintergrund nach der Orientierungsänderung
- 12. Holen Sie sich das letzte aktive Fenster: Holen Sie sich zuvor aktives Fenster
- 13. Datum Validierung Helfer für Mongoid/aktives Modell?
- 14. Fenster Hintergrund wird durch Statusleiste abgeschnitten
- 15. Mac: Schlüsselereignis zum Hintergrund senden Fenster
- 16. Transparenter Hintergrund in einem Tkinter-Fenster
- 17. Benutzerdefinierter Filter für linq
- 18. Benutzerdefinierter Benutzeragent für HttpClient?
- 19. Benutzerdefinierter Schriftarttitel für UIButton
- 20. Benutzerdefinierter Selektor für Listenhintergrund
- 21. XCode Bearbeiten Projekteinstellungen vs Bearbeiten aktives Ziel
- 22. Deaktivieren Sie das Fenster auf dem Hintergrund
- 23. C++ Win32 Fenster Hintergrund nicht neu zeichnen
- 24. Black Content-Fenster anstelle von gekachelten Hintergrund
- 25. Clear JFrame Hintergrund auf transparentem Fenster
- 26. Modal Fenster nicht angezeigt Aber Hintergrund Blendet
- 27. Aktives Modell Serializer - Customizing Antwort
- 28. AdWords-Skript - Aktives Konto festlegen
- 29. Aktives Mitglied in (getaggt) union
- 30. Bootstrap jQuery "Aktives" Selektor-Ereignis
versuchen 'hiwin-mode' wie vorgeschlagen [hier] (https://stackoverflow.com/a/2452800/1845302) –