emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master 6b91535: More tab bar related key bindings.


From: Juri Linkov
Subject: [Emacs-diffs] master 6b91535: More tab bar related key bindings.
Date: Sat, 5 Oct 2019 17:54:54 -0400 (EDT)

branch: master
commit 6b915359efc24ea1262c77b9a35725929b06b08b
Author: Juri Linkov <address@hidden>
Commit: Juri Linkov <address@hidden>

    More tab bar related key bindings.
    
    * lisp/subr.el (ctl-x-6-map, ctl-x-6-prefix): Move here from tab-bar.el
    to make it available to other modes like dired for 'C-x 6 d'.
    
    * lisp/dired.el (dired-other-tab): New command bound to 'C-x 6 d'.
    
    * lisp/tab-bar.el: Bind 'C-x 6 o' to tab-next.
    
    * doc/emacs/frames.texi (Tab Bars): Describe C-x 6 prefix key bindings.
---
 doc/emacs/frames.texi | 46 ++++++++++++++++++++++++++++++++++++++++++++++
 etc/NEWS              |  3 +++
 lisp/dired.el         |  7 +++++++
 lisp/subr.el          |  5 +++++
 lisp/tab-bar.el       |  6 +-----
 5 files changed, 62 insertions(+), 5 deletions(-)

diff --git a/doc/emacs/frames.texi b/doc/emacs/frames.texi
index 43cdb26..ba1424a 100644
--- a/doc/emacs/frames.texi
+++ b/doc/emacs/frames.texi
@@ -1255,12 +1255,58 @@ use persistent named window configurations without 
using the tab bar
 by typing the related commands: @kbd{M-x tab-new}, @kbd{M-x tab-next},
 @kbd{M-x tab-list}, @kbd{M-x tab-close}, etc.
 
+@kindex C-x 6
+  The prefix key @kbd{C-x 6} is analogous to @kbd{C-x 5}.
+Whereas each @kbd{C-x 5} command pops up a buffer in a different frame
+(@pxref{Creating Frames}), the @kbd{C-x 6} commands use a different
+tab with a different window configuration in the selected frame.
+
+  The various @kbd{C-x 6} commands differ in how they find or create the
+buffer to select:
+
+@table @kbd
+@item C-x 6 2
+@kindex C-x 6 2
+@findex tab-new
+Add a new tab (@code{tab-new}).  You can control the choice of the
+buffer displayed in a new tab by customizing the variable
+@code{tab-bar-new-tab-choice}.
+@item C-x 6 b @var{bufname} @key{RET}
+Select buffer @var{bufname} in another tab.  This runs
+@code{switch-to-buffer-other-tab}.
+@item C-x 6 f @var{filename} @key{RET}
+Visit file @var{filename} and select its buffer in another tab.  This
+runs @code{find-file-other-tab}.  @xref{Visiting}.
+@item C-x 6 d @var{directory} @key{RET}
+Select a Dired buffer for directory @var{directory} in another tab.
+This runs @code{dired-other-tab}.  @xref{Dired}.
+@end table
+
 @vindex tab-bar-new-tab-choice
   By default, a new tab starts with the current buffer that was
 current before calling the command that adds a new tab.  To start a
 new tab with other buffers, customize the variable
 @code{tab-bar-new-tab-choice}.
 
+  The following commands are used to delete and operate on tabs:
+
+@table @kbd
+@item C-x 6 0
+@kindex C-x 6 0
+@findex tab-close
+Close the selected tab (@code{tab-close}).  It has no effect if there
+is only one tab.
+
+@item C-x 6 o
+@kindex C-x 6 o
+@kindex C-TAB
+@findex tab-next
+Switch to another tab.  If you repeat this command, it cycles through
+all the tabs on the selected frame.  With a positive numeric argument
+N, it switches to the next Nth tab; with a negative argument −N, it
+switches back to the previous Nth tab.
+@end table
+
 @node Dialog Boxes
 @section Using Dialog Boxes
 @cindex dialog boxes
diff --git a/etc/NEWS b/etc/NEWS
index cadd6d9..0edbec6 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -2058,6 +2058,9 @@ tabs with a mouse.
 Tab-related commands are available even when the Tab-Bar mode is
 disabled: by default, they enable Tab-Bar mode in that case.
 
+Read the new Info node "(emacs) Tab Bars" for full description
+of all related features.
+
 *** Tab-Line mode
 The new command 'global-tab-line-mode' enables the tab-line above each
 window, which you can use to switch buffers in the window.  Selecting
diff --git a/lisp/dired.el b/lisp/dired.el
index 854bc9f..efe00d1 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -835,6 +835,13 @@ If DIRNAME is already in a Dired buffer, that buffer is 
used without refresh."
   (interactive (dired-read-dir-and-switches "in other frame "))
   (switch-to-buffer-other-frame (dired-noselect dirname switches)))
 
+;;;###autoload (define-key ctl-x-6-map "d" 'dired-other-tab)
+;;;###autoload
+(defun dired-other-tab (dirname &optional switches)
+  "\"Edit\" directory DIRNAME.  Like `dired' but makes a new tab."
+  (interactive (dired-read-dir-and-switches "in other tab "))
+  (switch-to-buffer-other-tab (dired-noselect dirname switches)))
+
 ;;;###autoload
 (defun dired-noselect (dir-or-list &optional switches)
   "Like `dired' but returns the Dired buffer as value, does not select it."
diff --git a/lisp/subr.el b/lisp/subr.el
index 985bdc6..b0a9a83 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -1238,6 +1238,11 @@ The normal global definition of the character C-x 
indirects to this keymap.")
 (defalias 'ctl-x-5-prefix ctl-x-5-map)
 (define-key ctl-x-map "5" 'ctl-x-5-prefix)
 
+(defvar ctl-x-6-map (make-sparse-keymap)
+  "Keymap for tab commands.")
+(defalias 'ctl-x-6-prefix ctl-x-6-map)
+(define-key ctl-x-map "6" 'ctl-x-6-prefix)
+
 
 ;;;; Event manipulation functions.
 
diff --git a/lisp/tab-bar.el b/lisp/tab-bar.el
index d8d9bda..27ae274 100644
--- a/lisp/tab-bar.el
+++ b/lisp/tab-bar.el
@@ -793,11 +793,6 @@ in the selected frame."
   (tab-bar-list-select))
 
 
-(defvar ctl-x-6-map (make-sparse-keymap)
-  "Keymap for tab commands.")
-(defalias 'ctl-x-6-prefix ctl-x-6-map)
-(define-key ctl-x-map "6" 'ctl-x-6-prefix)
-
 (defun switch-to-buffer-other-tab (buffer-or-name &optional norecord)
   "Switch to buffer BUFFER-OR-NAME in another tab.
 Like \\[switch-to-buffer-other-frame] (which see), but creates a new tab."
@@ -825,6 +820,7 @@ Like \\[find-file-other-frame] (which see), but creates a 
new tab."
 
 (define-key ctl-x-6-map "2" 'tab-new)
 (define-key ctl-x-6-map "0" 'tab-close)
+(define-key ctl-x-6-map "o" 'tab-next)
 (define-key ctl-x-6-map "b" 'switch-to-buffer-other-tab)
 (define-key ctl-x-6-map "f" 'find-file-other-tab)
 (define-key ctl-x-6-map "\C-f" 'find-file-other-tab)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]