tutorial source para mac descargar code emacs elisp

source - emacs para mac



Si el marco llamado "xyz" existe, entonces cambie a ese marco (2)

¿Podría alguien darme la mano con una función que detecta si existe un cuadro llamado "xyz" y, de ser así, cambiar a ese marco? Estoy usando frame-cmds para dar a cada cuadro un nombre definido por el usuario: http://www.emacswiki.org/emacs/frame-cmds.el

Me imagino que es similar a un buffer, pero no encuentro nada en Google. Aquí está la función buffer:

(defun buffer-exists (bufname) (not (eq nil (get-buffer bufname)))) (defun lawlist-switch-to-buffer-xyz () (interactive) (if (buffer-exists "xyz") (switch-to-buffer "xyz") ))

Aquí hay una publicación semi relacionada: https://superuser.com/questions/358037/emacsclient-create-a-frame-if-a-frame-does-not-exist

EDITAR (15 de septiembre de 2014): modificó la función ido-switch-frame para hacer frame-to a let-bound variable, y eliminó el message . Se eliminaron las ediciones anteriores, ya que las funciones get-a-frame y get-frame-name escritas por Drew Adams son suficientes cuando se utilizan junto con select-frame-set-input-focus ; consulte su respuesta a continuación.

(defun ido-switch-frame () (interactive) (when (not (minibufferp)) (let* ( (frames (frame-list)) (frame-to (ido-completing-read "Select Frame: " (mapcar (lambda (frame) (frame-parameter frame ''name)) frames)))) (catch ''break (while frames (let ((frame (car frames))) (if (equal (frame-parameter frame ''name) frame-to) (throw ''break (select-frame-set-input-focus frame)) (setq frames (cdr frames)))))))))


  1. Recibí tu solicitud de "una función que detecta si existe un marco llamado" xyz ": ya lo tienes, ya que dices que estás usando frame-cmds.el , que requiere frame-fns.el --- Función get-a-frame hace precisamente eso.

  2. Icicles proporciona multi-comando icicle-select-frame , que te permite elegir fotogramas por nombre usando compleción.


Puede haber soluciones más elegantes pero esto hace el trabajo:

(defun switch-to-frame (frame-name) (interactive "sFrame 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))))))))