Compare commits
No commits in common. "c5455e866e8a5f7eab6a7263e2057aff5f1118b9" and "d7b7eecf0860c63eab9cc4013d08e2a4a83fcc5e" have entirely different histories.
c5455e866e
...
d7b7eecf08
63
README.org
63
README.org
|
@ -3,20 +3,17 @@
|
||||||
[[https://github.com/syl20bnr/spacemacs][file:https://cdn.rawgit.com/syl20bnr/spacemacs/442d025779da2f62fc86c2082703697714db6514/assets/spacemacs-badge.svg]] [[https://melpa.org/#/winum][file:https://melpa.org/packages/winum-badge.svg]] [[https://stable.melpa.org/#/winum][file:https://stable.melpa.org/packages/winum-badge.svg]]
|
[[https://github.com/syl20bnr/spacemacs][file:https://cdn.rawgit.com/syl20bnr/spacemacs/442d025779da2f62fc86c2082703697714db6514/assets/spacemacs-badge.svg]] [[https://melpa.org/#/winum][file:https://melpa.org/packages/winum-badge.svg]] [[https://stable.melpa.org/#/winum][file:https://stable.melpa.org/packages/winum-badge.svg]]
|
||||||
|
|
||||||
* Contents :TOC:noexport:
|
* Contents :TOC:noexport:
|
||||||
- [[#introduction][Introduction]]
|
- [[#introduction][Introduction]]
|
||||||
- [[#changelog][Changelog]]
|
- [[#whats-changed-since-window-numbering][What's changed since window-numbering]]
|
||||||
- [[#sep-11-2019][Sep. 11 2019]]
|
- [[#installation][Installation]]
|
||||||
- [[#nov-15-2018][Nov. 15 2018]]
|
- [[#using-melpa][Using Melpa]]
|
||||||
- [[#initial-release-whats-changed-since-window-numbering][Initial release: what's changed since window-numbering]]
|
- [[#manual-installation][Manual installation]]
|
||||||
- [[#installation][Installation]]
|
- [[#how-to-use][How to use]]
|
||||||
- [[#using-melpa][Using Melpa]]
|
- [[#configuration][Configuration]]
|
||||||
- [[#manual-installation][Manual installation]]
|
- [[#keybindings][Keybindings]]
|
||||||
- [[#how-to-use][How to use]]
|
- [[#customize-options][Customize options]]
|
||||||
- [[#configuration][Configuration]]
|
- [[#configuration-file-example][Configuration file example]]
|
||||||
- [[#keybindings][Keybindings]]
|
- [[#future-developments][Future developments]]
|
||||||
- [[#customize-options][Customize options]]
|
|
||||||
- [[#configuration-file-example][Configuration file example]]
|
|
||||||
- [[#future-developments][Future developments]]
|
|
||||||
|
|
||||||
* Introduction
|
* Introduction
|
||||||
Window numbers for Emacs: Navigate your windows and frames using numbers !
|
Window numbers for Emacs: Navigate your windows and frames using numbers !
|
||||||
|
@ -28,15 +25,7 @@ from [[https://github.com/abo-abo/ace-window][ace-window]].
|
||||||
This version brings, among other things, support for number sets across multiple
|
This version brings, among other things, support for number sets across multiple
|
||||||
frames, giving the user a smoother experience of multi-screen Emacs.
|
frames, giving the user a smoother experience of multi-screen Emacs.
|
||||||
|
|
||||||
* Changelog
|
* What's changed since window-numbering
|
||||||
** Sep. 11 2019
|
|
||||||
- Added customize variable =winum-ignored-buffers-regexp= to ignored buffers
|
|
||||||
based on regexps.
|
|
||||||
** Nov. 15 2018
|
|
||||||
- Added customize variable =winum-format=, a format string to configure how the
|
|
||||||
window number appears in the mode-line
|
|
||||||
|
|
||||||
** Initial release: what's changed since window-numbering
|
|
||||||
This package brings a lot of additions to the old window-numbering:
|
This package brings a lot of additions to the old window-numbering:
|
||||||
|
|
||||||
- Number sets across multiple frames, giving a smoother experience of
|
- Number sets across multiple frames, giving a smoother experience of
|
||||||
|
@ -235,7 +224,7 @@ Several options are available through Emacs' Customize interface under
|
||||||
((equal (buffer-name) "*Calculator*") 9)
|
((equal (buffer-name) "*Calculator*") 9)
|
||||||
((equal (buffer-name) "*Flycheck errors*") 8)))
|
((equal (buffer-name) "*Flycheck errors*") 8)))
|
||||||
|
|
||||||
(defun winum-assign-0-to-neotree ()
|
(defun winum-assign-0-to-neotree-and ()
|
||||||
(when (string-match-p (buffer-name) ".*\\*NeoTree\\*.*") 10))
|
(when (string-match-p (buffer-name) ".*\\*NeoTree\\*.*") 10))
|
||||||
|
|
||||||
(add-to-list 'winum-assign-functions #'winum-assign-9-to-calculator-8-to-flycheck-errors)
|
(add-to-list 'winum-assign-functions #'winum-assign-9-to-calculator-8-to-flycheck-errors)
|
||||||
|
@ -252,14 +241,6 @@ Several options are available through Emacs' Customize interface under
|
||||||
|
|
||||||
Default: =t=
|
Default: =t=
|
||||||
|
|
||||||
- =winum-format=
|
|
||||||
|
|
||||||
Format string defining how the window number looks like in the mode-line.
|
|
||||||
This string is passed to the =format= function along with the result of
|
|
||||||
=winum-get-number-string=.
|
|
||||||
|
|
||||||
Default: =" %s "=
|
|
||||||
|
|
||||||
- =winum-mode-line-position=
|
- =winum-mode-line-position=
|
||||||
|
|
||||||
The position in the mode-line =winum-mode= displays the number.
|
The position in the mode-line =winum-mode= displays the number.
|
||||||
|
@ -272,13 +253,6 @@ Several options are available through Emacs' Customize interface under
|
||||||
|
|
||||||
Default: '(" *which-key*")
|
Default: '(" *which-key*")
|
||||||
|
|
||||||
- =winum-ignored-buffers-regexp=
|
|
||||||
|
|
||||||
List of regexps for buffer names. Matching buffers will be ignored when
|
|
||||||
assigning numbers. See [[https://www.gnu.org/software/emacs/manual/html_node/emacs/Regexps.html][Emacs' documentation on regexps]] for syntax.
|
|
||||||
|
|
||||||
Default: '()
|
|
||||||
|
|
||||||
- face: =winum-face=
|
- face: =winum-face=
|
||||||
|
|
||||||
Face used for the number in the mode-line.
|
Face used for the number in the mode-line.
|
||||||
|
@ -310,7 +284,7 @@ available winum options.
|
||||||
((equal (buffer-name) "*Calculator*") 9)
|
((equal (buffer-name) "*Calculator*") 9)
|
||||||
((equal (buffer-name) "*Flycheck errors*") 8)))
|
((equal (buffer-name) "*Flycheck errors*") 8)))
|
||||||
|
|
||||||
(defun winum-assign-0-to-neotree ()
|
(defun winum-assign-0-to-neotree-and ()
|
||||||
(when (string-match-p (buffer-name) ".*\\*NeoTree\\*.*") 10))
|
(when (string-match-p (buffer-name) ".*\\*NeoTree\\*.*") 10))
|
||||||
|
|
||||||
(add-to-list 'winum-assign-functions #'winum-assign-9-to-calculator-8-to-flycheck-errors)
|
(add-to-list 'winum-assign-functions #'winum-assign-9-to-calculator-8-to-flycheck-errors)
|
||||||
|
@ -323,10 +297,8 @@ available winum options.
|
||||||
winum-auto-assign-0-to-minibuffer t
|
winum-auto-assign-0-to-minibuffer t
|
||||||
winum-assign-func 'my-winum-assign-func
|
winum-assign-func 'my-winum-assign-func
|
||||||
winum-auto-setup-mode-line t
|
winum-auto-setup-mode-line t
|
||||||
winum-format " %s "
|
|
||||||
winum-mode-line-position 1
|
winum-mode-line-position 1
|
||||||
winum-ignored-buffers '(" *which-key*")
|
winum-ignored-buffers '(" *which-key*"))
|
||||||
winum-ignored-buffers-regexp '(" \\*Treemacs-.*"))
|
|
||||||
|
|
||||||
(winum-mode)
|
(winum-mode)
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
@ -349,4 +321,9 @@ available winum options.
|
||||||
|
|
||||||
- Autocomplete read-from-minibuffer
|
- Autocomplete read-from-minibuffer
|
||||||
|
|
||||||
|
- Add =winum-format= customize variable
|
||||||
|
|
||||||
|
Format string for displaying the window number in the mode-line. Default to
|
||||||
|
" %n " to get a space on each side of the window number.
|
||||||
|
|
||||||
- Things that you have thought of and I haven't :smile_cat:
|
- Things that you have thought of and I haven't :smile_cat:
|
||||||
|
|
46
winum.el
46
winum.el
|
@ -17,7 +17,7 @@
|
||||||
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
|
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
;;
|
;;
|
||||||
;; Author: Thomas de Beauchêne <thomas.de.beauchene@gmail.com>
|
;; Author: Thomas de Beauchêne <thomas.de.beauchene@gmail.com>
|
||||||
;; Version: 2.2.0
|
;; Version: 2.0.0
|
||||||
;; Keywords: convenience, frames, windows, multi-screen
|
;; Keywords: convenience, frames, windows, multi-screen
|
||||||
;; URL: http://github.com/deb0ch/winum.el
|
;; URL: http://github.com/deb0ch/winum.el
|
||||||
;; Created: 2016
|
;; Created: 2016
|
||||||
|
@ -143,25 +143,11 @@ numbers in the mode-line."
|
||||||
:group 'winum
|
:group 'winum
|
||||||
:type 'integer)
|
:type 'integer)
|
||||||
|
|
||||||
(defcustom winum-format " %s "
|
|
||||||
"Format string defining how the window number looks like in the mode-line.
|
|
||||||
This string is passed to the `format' function along with the
|
|
||||||
result of `winum-get-number-string'."
|
|
||||||
:group 'winum
|
|
||||||
:type 'string)
|
|
||||||
|
|
||||||
(defcustom winum-ignored-buffers '(" *which-key*")
|
(defcustom winum-ignored-buffers '(" *which-key*")
|
||||||
"List of buffers to ignore when assigning numbers."
|
"List of buffers to ignore when assigning numbers."
|
||||||
:group 'winum
|
:group 'winum
|
||||||
:type '(repeat string))
|
:type '(repeat string))
|
||||||
|
|
||||||
(defcustom winum-ignored-buffers-regexp '()
|
|
||||||
"List of regexps for buffer names to ignore when assigning numbers.
|
|
||||||
See Info node `(emacs) Regexps' or Info node `(elisp) Regular Expressions'"
|
|
||||||
:group 'winum
|
|
||||||
:type '(repeat string)
|
|
||||||
:risky t)
|
|
||||||
|
|
||||||
(defface winum-face '()
|
(defface winum-face '()
|
||||||
"Face used for the number in the mode-line."
|
"Face used for the number in the mode-line."
|
||||||
:group 'winum)
|
:group 'winum)
|
||||||
|
@ -222,10 +208,6 @@ To get a number given a window, use the `cdr' of a value.
|
||||||
|
|
||||||
Such a structure allows for per-frame bidirectional fast access.")
|
Such a structure allows for per-frame bidirectional fast access.")
|
||||||
|
|
||||||
(defvar winum--mode-line-segment
|
|
||||||
'(:eval (format winum-format (winum-get-number-string)))
|
|
||||||
"What is pushed into `mode-line-format' when setting it up automatically.")
|
|
||||||
|
|
||||||
(defvar winum--last-used-scope winum-scope
|
(defvar winum--last-used-scope winum-scope
|
||||||
"Tracks the last used `winum-scope'.
|
"Tracks the last used `winum-scope'.
|
||||||
Needed to detect scope changes at runtime.")
|
Needed to detect scope changes at runtime.")
|
||||||
|
@ -430,26 +412,23 @@ POSITION: position in the mode-line."
|
||||||
(dotimes (i (min (or position winum-mode-line-position 1)
|
(dotimes (i (min (or position winum-mode-line-position 1)
|
||||||
(length mode-line)))
|
(length mode-line)))
|
||||||
(push (pop mode-line) res))
|
(push (pop mode-line) res))
|
||||||
(unless (equal (car mode-line) winum--mode-line-segment)
|
(unless (equal (car mode-line) '(:eval (winum-get-number-string)))
|
||||||
(push winum--mode-line-segment res))
|
(push '(:eval (winum-get-number-string)) res))
|
||||||
(while mode-line
|
(while mode-line
|
||||||
(push (pop mode-line) res))
|
(push (pop mode-line) res))
|
||||||
(let ((nres (nreverse res)))
|
(setq-default mode-line-format (nreverse res)))
|
||||||
(setq mode-line-format nres)
|
|
||||||
(setq-default mode-line-format nres)))
|
|
||||||
(force-mode-line-update t))
|
(force-mode-line-update t))
|
||||||
|
|
||||||
(defun winum--clear-mode-line ()
|
(defun winum--clear-mode-line ()
|
||||||
"Remove the window number of `winum-mode' from the mode-line."
|
"Remove the window number of `winum-mode' from the mode-line."
|
||||||
(let ((mode-line (default-value 'mode-line-format))
|
(let ((mode-line (default-value 'mode-line-format))
|
||||||
res)
|
(res))
|
||||||
(while mode-line
|
(while mode-line
|
||||||
(let ((item (pop mode-line)))
|
(let ((item (car mode-line)))
|
||||||
(unless (equal item winum--mode-line-segment)
|
(unless (equal item '(:eval (winum-get-number-string)))
|
||||||
(push item res))))
|
(push item res)))
|
||||||
(let ((nres (nreverse res)))
|
(pop mode-line))
|
||||||
(setq mode-line-format nres)
|
(setq-default mode-line-format (nreverse res)))
|
||||||
(setq-default mode-line-format nres)))
|
|
||||||
(force-mode-line-update t))
|
(force-mode-line-update t))
|
||||||
|
|
||||||
(defun winum--update ()
|
(defun winum--update ()
|
||||||
|
@ -545,10 +524,7 @@ windows, however a higher number can be reserved by the user-defined
|
||||||
(or (not (and (frame-live-p f)
|
(or (not (and (frame-live-p f)
|
||||||
(frame-visible-p f)))
|
(frame-visible-p f)))
|
||||||
(string= "initial_terminal" (terminal-name f))
|
(string= "initial_terminal" (terminal-name f))
|
||||||
(member (buffer-name (window-buffer window)) winum-ignored-buffers)
|
(member (buffer-name (window-buffer window)) winum-ignored-buffers))))
|
||||||
(cl-some
|
|
||||||
(lambda (regex) (string-match regex (buffer-name (window-buffer window))))
|
|
||||||
winum-ignored-buffers-regexp))))
|
|
||||||
|
|
||||||
(defun winum--list-windows-in-frame (&optional f)
|
(defun winum--list-windows-in-frame (&optional f)
|
||||||
"List windows in frame F using natural Emacs ordering."
|
"List windows in frame F using natural Emacs ordering."
|
||||||
|
|
Loading…
Reference in a new issue