diff options
| author | Juri Linkov | 2019-10-01 23:15:03 +0300 |
|---|---|---|
| committer | Juri Linkov | 2019-10-01 23:15:03 +0300 |
| commit | 2698d3dba2e9858b026ed127d4de3f86810a5ef3 (patch) | |
| tree | 8e9b8f194cfcad8af83a4174a0105bbc691f06d6 /etc | |
| parent | 25f45d710e91a7c1049f056ff27bc3e6968f5624 (diff) | |
| parent | 3f981a0a89bca47a207fb362485f07e7322bb145 (diff) | |
| download | emacs-2698d3dba2e9858b026ed127d4de3f86810a5ef3.tar.gz emacs-2698d3dba2e9858b026ed127d4de3f86810a5ef3.zip | |
Merge branch 'feature/tabs'
Diffstat (limited to 'etc')
| -rw-r--r-- | etc/NEWS | 28 | ||||
| -rw-r--r-- | etc/TODO | 14 | ||||
| -rw-r--r-- | etc/images/tabs/README | 8 | ||||
| -rw-r--r-- | etc/images/tabs/close.xpm | 16 | ||||
| -rw-r--r-- | etc/images/tabs/new.xpm | 16 |
5 files changed, 68 insertions, 14 deletions
| @@ -2030,6 +2030,34 @@ file-local variable, you may need to update the value. | |||
| 2030 | 2030 | ||
| 2031 | * New Modes and Packages in Emacs 27.1 | 2031 | * New Modes and Packages in Emacs 27.1 |
| 2032 | 2032 | ||
| 2033 | ** 'tab-bar-mode' enables the tab-bar at the top of each frame, | ||
| 2034 | to switch named persistent window configurations in it using tabs. | ||
| 2035 | New tab-based keybindings (similar to frame-based commands): | ||
| 2036 | 'C-x 6 2' creates a new tab; | ||
| 2037 | 'C-x 6 0' deletes the current tab; | ||
| 2038 | 'C-x 6 b' switches to buffer in another tab; | ||
| 2039 | 'C-x 6 f' and 'C-x 6 C-f' edit file in another tab; | ||
| 2040 | 'C-TAB' switches to the next tab; | ||
| 2041 | 'S-C-TAB' switches to the previous tab. | ||
| 2042 | |||
| 2043 | Also it's possible to switch named persistent window configurations | ||
| 2044 | without having graphical access to the tab-bar, even on a tty | ||
| 2045 | or when 'tab-bar-mode' is disabled, with these commands: | ||
| 2046 | 'tab-new' creates a new window configuration; | ||
| 2047 | 'tab-close' deletes the current window configuration; | ||
| 2048 | 'tab-select' switches to the window configuration by its name; | ||
| 2049 | 'tab-previous' switches to the previous window configuration; | ||
| 2050 | 'tab-next' switches to the next window configuration; | ||
| 2051 | 'tab-list' displays a list of named window configurations for switching. | ||
| 2052 | |||
| 2053 | ** 'global-tab-line-mode' enables the tab-line above each window to | ||
| 2054 | switch buffers in it to previous/next buffers. Selecting a previous | ||
| 2055 | window-local tab is the same as running 'C-x <left>' (previous-buffer), | ||
| 2056 | selecting a next tab switches to the tab available by 'C-x <right>' | ||
| 2057 | (next-buffer). Clicking on the plus icon adds a new buffer to the | ||
| 2058 | window-local tab-line of window buffers. Using the mouse wheel on the | ||
| 2059 | tab-line scrolls the window buffers whose names are displayed in tabs. | ||
| 2060 | |||
| 2033 | ** fileloop.el lets one setup multifile operations like search&replace. | 2061 | ** fileloop.el lets one setup multifile operations like search&replace. |
| 2034 | 2062 | ||
| 2035 | +++ | 2063 | +++ |
| @@ -324,20 +324,6 @@ consistency checks that make sure the new code computes the same results | |||
| 324 | as the old code. And once that works well, we can remove the old code | 324 | as the old code. And once that works well, we can remove the old code |
| 325 | and old fields. | 325 | and old fields. |
| 326 | 326 | ||
| 327 | ** Having tabs above a window to switch buffers in it. | ||
| 328 | |||
| 329 | ** "Perspectives" are named persistent window configurations. We have | ||
| 330 | had the window configuration mechanism in GNU Emacs since the | ||
| 331 | beginning but we have never developed a good user interface to take | ||
| 332 | advantage of them. Eclipse's user interface seems to be good. | ||
| 333 | |||
| 334 | Perspectives work well even if you do the equivalent of C-x 4 C-f | ||
| 335 | because of the distinction between view windows vs file windows. In | ||
| 336 | Emacs this is more or less the "dedicated window" feature, but we have | ||
| 337 | never really made it work for this. | ||
| 338 | |||
| 339 | Perspectives also need to interact with the tabs. | ||
| 340 | |||
| 341 | ** FFI (foreign function interface) | 327 | ** FFI (foreign function interface) |
| 342 | See eg https://lists.gnu.org/r/emacs-devel/2013-10/msg00246.html | 328 | See eg https://lists.gnu.org/r/emacs-devel/2013-10/msg00246.html |
| 343 | 329 | ||
diff --git a/etc/images/tabs/README b/etc/images/tabs/README new file mode 100644 index 00000000000..1e9f4e5b595 --- /dev/null +++ b/etc/images/tabs/README | |||
| @@ -0,0 +1,8 @@ | |||
| 1 | This directory contains icons for the Tabs user interface. | ||
| 2 | |||
| 3 | COPYRIGHT AND LICENSE INFORMATION FOR IMAGE FILES | ||
| 4 | |||
| 5 | Files: close.xpm new.xpm | ||
| 6 | Author: Juri Linkov <juri@linkov.net> | ||
| 7 | Copyright (C) 2019 Free Software Foundation, Inc. | ||
| 8 | License: GNU General Public License version 3 or later (see COPYING) | ||
diff --git a/etc/images/tabs/close.xpm b/etc/images/tabs/close.xpm new file mode 100644 index 00000000000..1c3f4d8fd7d --- /dev/null +++ b/etc/images/tabs/close.xpm | |||
| @@ -0,0 +1,16 @@ | |||
| 1 | /* XPM */ | ||
| 2 | static char * close_xpm[] = { | ||
| 3 | "9 9 4 1", | ||
| 4 | " c None", | ||
| 5 | ". c #BFBFBF", | ||
| 6 | "+ c #000000", | ||
| 7 | "@ c #808080", | ||
| 8 | " ..... ", | ||
| 9 | " ....... ", | ||
| 10 | "..+@.@+..", | ||
| 11 | "..@+@+@..", | ||
| 12 | "...@+@...", | ||
| 13 | "..@+@+@..", | ||
| 14 | "..+@.@+..", | ||
| 15 | " ....... ", | ||
| 16 | " ..... "}; | ||
diff --git a/etc/images/tabs/new.xpm b/etc/images/tabs/new.xpm new file mode 100644 index 00000000000..e10a8ef238b --- /dev/null +++ b/etc/images/tabs/new.xpm | |||
| @@ -0,0 +1,16 @@ | |||
| 1 | /* XPM */ | ||
| 2 | static char * new_xpm[] = { | ||
| 3 | "9 9 4 1", | ||
| 4 | " c None", | ||
| 5 | ". c #BFBFBF", | ||
| 6 | "+ c #808080", | ||
| 7 | "@ c #000000", | ||
| 8 | ".........", | ||
| 9 | "....+....", | ||
| 10 | "....@....", | ||
| 11 | "....@....", | ||
| 12 | ".+@@@@@+.", | ||
| 13 | "....@....", | ||
| 14 | "....@....", | ||
| 15 | "....+....", | ||
| 16 | "........."}; | ||