]> git.eshelyaron.com Git - emacs.git/commitdiff
New command 'tab-duplicate' like in web browsers
authorJuri Linkov <juri@linkov.net>
Wed, 17 Feb 2021 17:56:45 +0000 (19:56 +0200)
committerJuri Linkov <juri@linkov.net>
Wed, 17 Feb 2021 17:56:45 +0000 (19:56 +0200)
etc/NEWS
lisp/tab-bar.el

index 3bef7399fa8bb656d9a264190370bfec866a5145..5c7acfdefaab90da2bb566199de9c3094e542f70 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -471,6 +471,9 @@ value of 'tab-bar-show'.
 It can be used to enable/disable the tab bar individually on each frame
 independently from the value of 'tab-bar-mode' and 'tab-bar-show'.
 
+---
+*** New command 'tab-duplicate'.
+
 ---
 *** New user option 'tab-bar-tab-name-format-function'.
 
index f0210e1a42b6467a3543bd98d3ba33c539475798..dba79fbd81cd1bb00406fb2d70e455584c1929e3 100644 (file)
@@ -897,6 +897,14 @@ If ARG is zero, create a new tab in place of the current tab."
         (tab-bar-new-tab-to (1+ to-index)))
     (tab-bar-new-tab-to)))
 
+(defun tab-bar-duplicate-tab (&optional arg)
+  "Duplicate the current tab to ARG positions to the right.
+If a negative ARG, duplicate the tab to ARG positions to the left.
+If ARG is zero, duplicate the tab in place of the current tab."
+  (interactive "P")
+  (let ((tab-bar-new-tab-choice nil))
+    (tab-bar-new-tab arg)))
+
 \f
 (defvar tab-bar-closed-tabs nil
   "A list of closed tabs to be able to undo their closing.")
@@ -1243,6 +1251,7 @@ and can restore them."
 
 (defalias 'tab-new         'tab-bar-new-tab)
 (defalias 'tab-new-to      'tab-bar-new-tab-to)
+(defalias 'tab-duplicate   'tab-bar-duplicate-tab)
 (defalias 'tab-close       'tab-bar-close-tab)
 (defalias 'tab-close-other 'tab-bar-close-other-tabs)
 (defalias 'tab-undo        'tab-bar-undo-close-tab)