4

我想在 Emacs 中有一个命令,使其像我想要的那样不透明/透明(请参阅指出在 Emacs 中可以实现透明的绝妙问题,以及链接到那里的EmacsWiki页面,其中包含我在下面使用的代码)。

EmacsWiki 代码设置“Cc t”来打开和关闭之前设置的透明度:

;;(set-frame-parameter (selected-frame) 'alpha '(<active> [<inactive>]))  
(set-frame-parameter (selected-frame) 'alpha '(85 50))  
(add-to-list 'default-frame-alist '(alpha 85 50))

enter code here(eval-when-compile (require 'cl))  
(defun toggle-transparency ()  
(interactive)  
(if (/= 
    (cadr (find 'alpha (frame-parameters nil) :key #'car)) 
    100)  
   (set-frame-parameter nil 'alpha '(100 100))
 (set-frame-parameter nil 'alpha '(85 60))))  
 (global-set-key (kbd "C-c t") 'toggle-transparency)

当我在 Emacs 中时,我想做的是能够选择 % 透明度。

如果可能的话,我想要一个命令,例如我为活动框架键入“Cc t N”(其中 N 是 % 不透明度),然后为非活动窗口键入“Mc t N”。

如果不能那样做,那么可能是一个命令,如果我键入“Cc t”,它会询问我提供活动窗口不透明性的数字(对于使用“Mc t”的非活动窗口也是如此) .

在此先感谢您的时间 :)

如果您不感兴趣,以下只是一些对回答问题并不重要的评论:

我真的很想要这个,因为当我告诉我的主管我正在学习 Emacs 时,他说 TexShop 好多了,而且我使用的是 80 年代的软件。我告诉他 Emacs 的奇妙之处,他说 TexShop 拥有一切,甚至更多。除了透明度之外,我匹配了他向我展示的所有内容(尽管他无法匹配来自 preview-latex 的 Emacs 中的预览)。我偶然发现了透明的东西,现在我想向他展示 Emacs 规则!

我想这对你们中的一些人来说是小菜一碟,即使如果我花足够的时间尝试学习 lisp 或阅读,我也可以完成它,但我不是程序员,我只使用 Emacs 和 mac一个星期。我已经迷路了!所以提前感谢您的时间和帮助 - 我最终会学习 lisp !

编辑:我的主管使用 TextMate,而不是 TeXShop。现在更有意义了吗?

4

1 回答 1

6
(defun set-frame-alpha (arg &optional active)
  (interactive "nEnter alpha value (1-100): \np")
  (let* ((elt (assoc 'alpha default-frame-alist))
         (old (frame-parameter nil 'alpha))
         (new (cond ((atom old)     `(,arg ,arg))
                    ((eql 1 active) `(,arg ,(cadr old)))
                    (t              `(,(car old) ,arg)))))
    (if elt (setcdr elt new) (push `(alpha ,@new) default-frame-alist))
    (set-frame-parameter nil 'alpha new)))
(global-set-key (kbd "C-c t") 'set-frame-alpha)

用于C-c t活动框架和C-u C-c t非活动框架。

编辑:

使效果在会话中持续存在的一种方法是通过自定义界面启用desktop-save-mode并添加default-frame-alistdesktop-globals-to-saveM-x customize-group RET desktop

于 2010-05-29T18:35:29.830 回答