[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Displaying the window number in the mode line?
From: |
Joakim Hove |
Subject: |
Re: Displaying the window number in the mode line? |
Date: |
Thu, 22 May 2003 13:46:58 +0200 |
User-agent: |
Gnus/5.090017 (Oort Gnus v0.17) Emacs/21.2 (gnu/linux) |
myrkraverk@users.sourceforge.net writes:
> Hi,
>
> I've made a crude hack to jump to a window with specific number, the
> functions are available at
>
> http://www.emacswiki.org/cgi-bin/wiki.pl?SwitchingWindows
>
> and have been revised a little by better elisp hackers than me :)
Looks interesting!
> This has resulted in my desire to display the window[1] number in the
> mode line. So far I've the following function to evalute the number
> of the selected window:
>
> (defun my-window-number ()
> (number-to-string
> (1- (length (memq (selected-window) (nreverse
> (window-list)))))))
>
> Then I create this list with items I want to show in the modeline:
>
> (setq window-number-string
> (list "W"
> '(:eval (my-window-number)) " "))
>
I can not really help you - but some comments:
1. The *global*-mode-string is just that - i.e. it is gloablly shared
among all windows (and even frames) - hence any code which simply
sets global-mode-string to some value will result in the same value
displayed in all windows. So (as far as I can see)
global-mode-string is not the variable to use - others can maybe
suggeste another variable to use for this?
> And add it to the global-mode-string:
>
> (add-to-list 'global-mode-string '("" window-number-string))
2. global-mode-string is a string - not a list. The following
implements (my understanding of) what you want to achieve, but with
the caveat mentioned above:
(setq global-mode-string (format "Window: %s" (my-window-number)))
The natural solution (if you can solve problem 1) above, would be
to wrap this in a function, and then add this function as a hook
called when splitting windows (I don't know if there is any such
hook).
Good Luck
Joakim
--
Joakim Hove / hove@bccs.no / (55 5) 84076