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
(mapc f (frame-list))

例えば

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

使用したくない場合は、ラムダの本体で f を無視できます。

于 2013-08-12T17:50:50.697 に答える
1

私はあなたがしたことをすると言います。あなたの質問は、そのフレーム内のフレームに関係のないことを行う方法ですか? もしそうなら、はい、すべてのフレームを繰り返します。

または、表示されているフレーム、または表示されていてアイコン化されていないフレームのみを反復処理する場合は、代わりにそれを行います。

本当に必要なことを見逃しているように感じますが、必要性が示されているので、はい、フレームを反復してフレームを反復します。;-)

于 2013-08-12T03:38:12.877 に答える