1

请问,访问存在的每个框架并执行与框架本身不一定相关的功能的最佳方法是什么?

(dolist (unrelated-function (frame-list)

  (setq unrelated-function (sound))

  (if (frame-parameter (selected-frame) 'name)

    unrelated-function))) 

我只看到了依赖于框架的示例,例如修改参数等。


编辑:这是一个更新的工作示例:

(defun dolist-test ()
(interactive)
  (dolist (frame (frame-list))
    (switch-to-frame (frame-parameter frame 'name))
    ;; insert additional functions -- e.g., update the frame  
    (message "Frame Visited:  %s"  (frame-parameter frame 'name)) ))

(defun switch-to-frame (frame-name)
  (let ((frames (frame-list)))
    (catch 'break
      (while frames
        (let ((frame (car frames)))
          (if (equal (frame-parameter frame 'name) frame-name)
              (throw 'break (select-frame-set-input-focus frame))
            (setq frames (cdr frames))))))))
4

2 回答 2

1

我会说做你所做的。您的问题是如何在该框架中做与该框架无关的事情?如果是这样,那么是的,遍历所有帧。

或者,如果您只想迭代可见帧或可见帧而不是图标化帧,那么请改为这样做。

我觉得我错过了你真正需要做的事情,但是根据需要,是的,迭代帧以迭代帧。;-)

于 2013-08-12T03:38:12.877 回答
1
(mapc f (frame-list))

例如

(mapc (lambda (f) (message "%d" (frame-width f))) (frame-list))

如果您不想使用它,可以忽略 lambda 主体中的 f。

于 2013-08-12T17:50:50.697 回答