3 votes

Wanderlust -- Ouvrir le courrier électronique dans un nouveau tampon, au lieu d'une fenêtre séparée

Comment configurer Wanderlust pour qu'il ouvre les courriels dans un nouveau tampon, au lieu d'une fenêtre divisée ? Il y a tout simplement trop de choses qui se passent avec quatre (4) fenêtres -- la mémoire tampon du résumé du message ; la mémoire tampon du message ; le grand frère insidieux du gestionnaire d'adresses de la base de données ; et la mémoire tampon miniature. (Voir la capture d'écran ci-dessous.)

Je pense avoir localisé la partie pertinente du code dans wl-message.el mais je ne suis pas sûr de la partie à modifier. (setq wl-message-window-size '(1 . 1)) dans le init.el es no ce que je recherche, car je devrais toujours partager l'écran avec d'autres tampons.

Je passe beaucoup de temps à basculer et à fermer Windows pour obtenir une mémoire tampon de taille normale, et j'espère pouvoir éliminer les fenêtres multiples lorsque je consulte mon courrier électronique.

Remerciements . toute aide serait grandement appréciée.

;;; wl-message.el -- Message buffer handling from summary buffer.

(defun wl-message-buffer-window ()
  "Get message buffer window if any."
  (let* ((start-win (selected-window))
     (cur-win start-win))
    (catch 'found
      (while (progn
           (setq cur-win (next-window cur-win))
           (with-current-buffer (window-buffer cur-win)
         (if (or (eq major-mode 'wl-message-mode)
             (eq major-mode 'mime-view-mode))
             (throw 'found cur-win)))
           (not (eq cur-win start-win)))))))

(defun wl-message-select-buffer (buffer)
  "Select BUFFER as a message buffer."
  (let ((window (get-buffer-window buffer))
    (sum (car wl-message-window-size))
    (mes (cdr wl-message-window-size))
    whi)
    (when (and window
           (not (eq (with-current-buffer (window-buffer window)
              wl-message-buffer-cur-summary-buffer)
            (current-buffer))))
      (delete-window window)
      (run-hooks 'wl-message-window-deleted-hook)
      (setq window nil))
    (if window
    (select-window window)
      (when wl-fixed-window-configuration
    (delete-other-windows)
    (and wl-stay-folder-window
         (wl-summary-toggle-disp-folder)))
      ;; There's no buffer window. Search for message window and snatch it.
      (if (setq window (wl-message-buffer-window))
      (select-window window)
    (setq whi (1- (window-height)))
    (if mes
        (progn
          (let ((total (+ sum mes)))
        (setq sum (max window-min-height (/ (* whi sum) total)))
        (setq mes (max window-min-height (/ (* whi mes) total))))
          (if (< whi (+ sum mes))
          (enlarge-window (- (+ sum mes) whi)))))
    (split-window (get-buffer-window (current-buffer)) sum)
    (other-window 1)))
    (switch-to-buffer buffer)))

multiple_windows
(source : <a href="http://www.lawlist.com/images/multiple_windows.png" rel="nofollow noreferrer">lawlist.com </a>)

2voto

lawlist Points 4056

SOLUTION # 1 : La variable wl-message-buffer-name qui est défini au sein de wl-vars.el rend le tampon de messages inintéressant en raison de l'espace au début du nom du tampon :   *WL:Message* . Dans la mesure où Emacs cache par défaut les tampons inintéressants, une solution consiste à modifier la variable susmentionnée en supprimant l'espace au début du nom du tampon. De cette manière, le tampon est toujours visible et il suffit de basculer vers la fenêtre qui affiche le message et de cliquer sur delete-other-windows . L'avantage supplémentaire est qu'il n'est plus nécessaire de revenir à la mémoire tampon du résumé pour visualiser un courrier électronique déjà ouvert, puisqu'il existe déjà une mémoire tampon ouverte consacrée à ce courrier électronique.

(defcustom wl-message-buffer-name "*WL:Message*" ;; " *WL:Message*"
  "*Buffer name for message buffers."
  :group 'wl-pref
  :group 'wl-setting)

SOLUTION # 2 : Cette deuxième solution n'est plus la méthode préférée et sera probablement supprimée de cette réponse. L'utilitaire de recherche de mots que j'utilisais ne pouvait pas combiner le wl-vars.el pour une raison inconnue, cette deuxième solution était donc une solution de contournement.

Modifier le schéma des clés pour wl-summary-read (à l'intérieur wl-summary.el ) et la remplacer par la fonction lawlist-wl-summary-read de sorte que l'appui sur la barre d'espacement active cette fonction. wl-summary-enter-handler reste définie comme la touche d'entrée, qui ouvre les messages de la manière par défaut.

(define-key wl-summary-mode-map " "    'lawlist-wl-summary-read)

(defun lawlist-wl-summary-read nil
  "Clone the the buffer and make new buffer name unique."
(interactive)
    (wl-summary-enter-handler)
    (windmove-down)
    (let ((n 0)
        bufname)
    (while (progn
             (setq bufname (concat "email"
                                   (if (= n 0) "" (int-to-string n))
                                   "")) ;; could be an ending, like an asterick *
             (setq n (1- n)) ;; if + instead of -, then no hyphen and no space between buffer name and the number
             (get-buffer bufname)))
    (clone-indirect-buffer bufname nil)
    (switch-to-buffer bufname)
    (delete-other-windows) ))

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X