GNU bug report logs -
#21649
25.0.50; [PATCH] Allow M-x man to reuse an existing window
Previous Next
Reported by: Nicolas Richard <youngfrog <at> members.fsf.org>
Date: Thu, 8 Oct 2015 15:56:01 UTC
Severity: wishlist
Tags: patch
Found in version 25.0.50
Done: Nicolas Richard <youngfrog <at> members.fsf.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your bug report
#21649: 25.0.50; [PATCH] Allow M-x man to reuse an existing window
which was filed against the emacs package, has been closed.
The explanation is attached below, along with your original report.
If you require more details, please reply to 21649 <at> debbugs.gnu.org.
--
21649: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=21649
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
Thanks for your review, martin. I pushed the modified commit to master
as 2d382515bfdb44d585bda6515f8d03f9056a83ef.
I'm marking this bug as done since one can now do
(setq display-buffer-alist
(list
(cons "\\`\\*Man .*\\*\\'"
(cons
#'display-buffer-reuse-mode-window
'((inhibit-same-window . nil))))))
to get the effect mentionned in the initial report.
--
Nicolas.
[Message part 3 (message/rfc822, inline)]
[Message part 4 (text/plain, inline)]
When running M-x man RET man RET, then C-x o to select the newly created
window and then running M-x man RET sed RET, what you get is: two "man"
windows side by side. It would make sense to re-use the existing one.
How to best do that I do not know. If modifying the code is necessary,
here's an attempt at adding an option in Man-notify-method. (I'm not
attached to this implementation, and even less attached to the silly
name `manly' that I chose, btw.)
[0001-Allow-M-x-man-to-reuse-an-existing-window.patch (text/x-diff, inline)]
From 2b812b1c9f91af2cf6116f1d4e334154ae44c724 Mon Sep 17 00:00:00 2001
From: Nicolas Richard <youngfrog <at> members.fsf.org>
Date: Thu, 8 Oct 2015 10:50:07 +0200
Subject: [PATCH] Allow M-x man to reuse an existing window
* man.el (Man-notify-when-ready): add `manly' option.
(Man-notify-method): augment docstring accordingly.
---
lisp/man.el | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/lisp/man.el b/lisp/man.el
index c5dbcba..a02ee79 100644
--- a/lisp/man.el
+++ b/lisp/man.el
@@ -91,6 +91,8 @@
(require 'ansi-color)
(require 'cl-lib)
(require 'button)
+(require 'subr-x)
+(require 'seq)
(defgroup man nil
"Browse UNIX manual pages."
@@ -162,6 +164,8 @@ (defcustom Man-notify-method (if (boundp 'Man-notify) Man-notify 'friendly)
bully -- make the manpage the current buffer and only window (sf)
aggressive -- make the manpage the current buffer in the other window (sf)
friendly -- display manpage in the other window but don't make current (sf)
+manly -- like `friendly' but re-use a window displaying a man page if
+ possible (sf)
polite -- don't display manpage, but prints message and beep when ready
quiet -- like `polite', but don't beep
meek -- make no indication that the manpage is ready
@@ -1166,6 +1170,16 @@ (defun Man-notify-when-ready (man-buffer)
(and (frame-live-p saved-frame)
(select-frame saved-frame))
(display-buffer man-buffer 'not-this-window))
+ (`manly
+ (and (frame-live-p saved-frame)
+ (select-frame saved-frame))
+ (if-let ((window (seq-some-p
+ (lambda (window)
+ (with-current-buffer (window-buffer window)
+ (derived-mode-p 'Man-mode)))
+ (window-list))))
+ (set-window-buffer window man-buffer)
+ (display-buffer man-buffer)))
(`polite
(beep)
(message "Manual buffer %s is ready" (buffer-name man-buffer)))
--
2.4.6
This bug report was last modified 9 years and 75 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.