Commit f336ae77 authored by Juri Linkov's avatar Juri Linkov

* lisp/windmove.el (windmove-display-new-tab): New command.

(windmove-display-default-keybindings): Bind it to '?t'.
(windmove-display-in-direction): Call tab-bar-new-tab when 'dir' is 'new-tab'.
parent 1e4c6f83
Pipeline #4244 failed with stage
in 90 minutes and 1 second
......@@ -820,7 +820,8 @@ displays the buffer from the next command in that window. For example,
'S-M-right C-h i' displays the "*Info*" buffer in the right window,
creating the window if necessary. A special key can be customized to
display the buffer in the same window, for example, 'S-M-0 C-h e'
displays the "*Messages*" buffer in the same window.
displays the "*Messages*" buffer in the same window. 'S-M-t C-h C-n'
displays NEWS in a new tab.
*** Windmove also supports directional window deletion.
The new command 'windmove-delete-default-keybindings' binds default
......
......@@ -467,12 +467,17 @@ When `switch-to-buffer-obey-display-actions' is non-nil,
(minibuffer-depth (minibuffer-depth))
(action (lambda (buffer alist)
(unless (> (minibuffer-depth) minibuffer-depth)
(let ((window (if (eq dir 'same-window)
(selected-window)
(window-in-direction
dir nil nil
(and arg (prefix-numeric-value arg))
windmove-wrap-around)))
(let ((window (cond
((eq dir 'new-tab)
(let ((tab-bar-new-tab-choice t))
(tab-bar-new-tab))
(selected-window))
((eq dir 'same-window)
(selected-window))
(t (window-in-direction
dir nil nil
(and arg (prefix-numeric-value arg))
windmove-wrap-around))))
(type 'reuse))
(unless window
(setq window (split-window nil nil dir) type 'window))
......@@ -535,6 +540,12 @@ See the logic of the prefix ARG in `windmove-display-in-direction'."
(interactive "P")
(windmove-display-in-direction 'same-window arg))
;;;###autoload
(defun windmove-display-new-tab (&optional arg)
"Display the next buffer in a new tab."
(interactive "P")
(windmove-display-in-direction 'new-tab arg))
;;;###autoload
(defun windmove-display-default-keybindings (&optional modifiers)
"Set up keybindings for directional buffer display.
......@@ -549,7 +560,8 @@ Default value of MODIFIERS is `shift-meta'."
(global-set-key (vector (append modifiers '(right))) 'windmove-display-right)
(global-set-key (vector (append modifiers '(up))) 'windmove-display-up)
(global-set-key (vector (append modifiers '(down))) 'windmove-display-down)
(global-set-key (vector (append modifiers '(?0))) 'windmove-display-same-window))
(global-set-key (vector (append modifiers '(?0))) 'windmove-display-same-window)
(global-set-key (vector (append modifiers '(?t))) 'windmove-display-new-tab))
;;; Directional window deletion
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment