annotate runtime/doc/tabpage.txt @ 29621:f1ed6f520d09 v9.0.0151

patch 9.0.0151: a "below" aligned text property does not work with 'nowrap' Commit: https://github.com/vim/vim/commit/4d91d347e65a5621621ea1e3c97dce2c677ed71d Author: Bram Moolenaar <Bram@vim.org> Date: Sat Aug 6 13:48:20 2022 +0100 patch 9.0.0151: a "below" aligned text property does not work with 'nowrap' Problem: A "below" aligned text property does not work with 'nowrap'. Solution: Start a new screen line to display the virtual text. (closes #10851)
author Bram Moolenaar <Bram@vim.org>
date Sat, 06 Aug 2022 15:00:03 +0200
parents f8116058ca76
children 31c598083364
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
29314
f8116058ca76 release version 9.0
Bram Moolenaar <Bram@vim.org>
parents: 29290
diff changeset
1 *tabpage.txt* For Vim version 9.0. Last change: 2022 Feb 02
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
2
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
3
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
4 VIM REFERENCE MANUAL by Bram Moolenaar
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
5
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
6
675
51794dc170f7 updated for version 7.0202
vimboss
parents: 674
diff changeset
7 Editing with windows in multiple tab pages. *tab-page* *tabpage*
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
8
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
9 The commands which have been added to use multiple tab pages are explained
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
10 here. Additionally, there are explanations for commands that work differently
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
11 when used in combination with more than one tab page.
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
12
678
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
13 1. Introduction |tab-page-intro|
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
14 2. Commands |tab-page-commands|
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
15 3. Other items |tab-page-other|
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
16 4. Setting 'tabline' |setting-tabline|
686
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
17 5. Setting 'guitablabel' |setting-guitablabel|
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
18
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
19 {not able to use multiple tab pages when the |+windows| feature was disabled
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
20 at compile time}
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
21
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
22 ==============================================================================
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
23 1. Introduction *tab-page-intro*
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
24
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
25 A tab page holds one or more windows. You can easily switch between tab
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
26 pages, so that you have several collections of windows to work on different
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
27 things.
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
28
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
29 Usually you will see a list of labels at the top of the Vim window, one for
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
30 each tab page. With the mouse you can click on the label to jump to that tab
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
31 page. There are other ways to move between tab pages, see below.
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
32
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
33 Most commands work only in the current tab page. That includes the |CTRL-W|
698
e402b0af6083 updated for version 7.0211
vimboss
parents: 690
diff changeset
34 commands, |:windo|, |:all| and |:ball| (when not using the |:tab| modifier).
e402b0af6083 updated for version 7.0211
vimboss
parents: 690
diff changeset
35 The commands that are aware of other tab pages than the current one are
e402b0af6083 updated for version 7.0211
vimboss
parents: 690
diff changeset
36 mentioned below.
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
37
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
38 Tabs are also a nice way to edit a buffer temporarily without changing the
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
39 current window layout. Open a new tab page, do whatever you want to do and
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
40 close the tab page.
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
41
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
42 ==============================================================================
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
43 2. Commands *tab-page-commands*
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
44
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
45 OPENING A NEW TAB PAGE:
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
46
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
47 When starting Vim "vim -p filename ..." opens each file argument in a separate
2326
6e563e1c8033 Make it possible to drag a tab page label to another position. (Paul B. Mahol)
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
48 tab page (up to 'tabpagemax'). See |-p|
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
49
706
ef3b59af4207 updated for version 7.0213
vimboss
parents: 698
diff changeset
50 A double click with the mouse in the non-GUI tab pages line opens a new, empty
ef3b59af4207 updated for version 7.0213
vimboss
parents: 698
diff changeset
51 tab page. It is placed left of the position of the click. The first click
ef3b59af4207 updated for version 7.0213
vimboss
parents: 698
diff changeset
52 may select another tab page first, causing an extra screen update.
ef3b59af4207 updated for version 7.0213
vimboss
parents: 698
diff changeset
53
844
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 843
diff changeset
54 This also works in a few GUI versions, esp. Win32 and Motif. But only when
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 843
diff changeset
55 clicking right of the labels.
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 843
diff changeset
56
706
ef3b59af4207 updated for version 7.0213
vimboss
parents: 698
diff changeset
57 In the GUI tab pages line you can use the right mouse button to open menu.
ef3b59af4207 updated for version 7.0213
vimboss
parents: 698
diff changeset
58 |tabline-menu|.
682
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
59
10301
07d2b5a3b7cc commit https://github.com/vim/vim/commit/46fceaaa8d1447a9588736d86eb4908214187b08
Christian Brabandt <cb@256bit.org>
parents: 10198
diff changeset
60 For the related autocommands see |tabnew-autocmd|.
07d2b5a3b7cc commit https://github.com/vim/vim/commit/46fceaaa8d1447a9588736d86eb4908214187b08
Christian Brabandt <cb@256bit.org>
parents: 10198
diff changeset
61
2444
3fbd9bce03f1 Support syntax and filetype completion for user commands. (Christian Brabandt)
Bram Moolenaar <bram@vim.org>
parents: 2413
diff changeset
62 :[count]tabe[dit] *:tabe* *:tabedit* *:tabnew*
3fbd9bce03f1 Support syntax and filetype completion for user commands. (Christian Brabandt)
Bram Moolenaar <bram@vim.org>
parents: 2413
diff changeset
63 :[count]tabnew
3fbd9bce03f1 Support syntax and filetype completion for user commands. (Christian Brabandt)
Bram Moolenaar <bram@vim.org>
parents: 2413
diff changeset
64 Open a new tab page with an empty window, after the current
6398
5a76e36f07b1 updated for version 7.4.530
Bram Moolenaar <bram@vim.org>
parents: 5294
diff changeset
65 tab page. If [count] is given the new tab page appears after
5a76e36f07b1 updated for version 7.4.530
Bram Moolenaar <bram@vim.org>
parents: 5294
diff changeset
66 the tab page [count] otherwise the new tab page will appear
5a76e36f07b1 updated for version 7.4.530
Bram Moolenaar <bram@vim.org>
parents: 5294
diff changeset
67 after the current one. >
5a76e36f07b1 updated for version 7.4.530
Bram Moolenaar <bram@vim.org>
parents: 5294
diff changeset
68 :tabnew " opens tabpage after the current one
5a76e36f07b1 updated for version 7.4.530
Bram Moolenaar <bram@vim.org>
parents: 5294
diff changeset
69 :.tabnew " as above
5a76e36f07b1 updated for version 7.4.530
Bram Moolenaar <bram@vim.org>
parents: 5294
diff changeset
70 :+tabnew " opens tabpage after the next tab page
5a76e36f07b1 updated for version 7.4.530
Bram Moolenaar <bram@vim.org>
parents: 5294
diff changeset
71 " note: it is one further than :tabnew
5a76e36f07b1 updated for version 7.4.530
Bram Moolenaar <bram@vim.org>
parents: 5294
diff changeset
72 :-tabnew " opens tabpage before the current one
5a76e36f07b1 updated for version 7.4.530
Bram Moolenaar <bram@vim.org>
parents: 5294
diff changeset
73 :0tabnew " opens tabpage before the first one
5a76e36f07b1 updated for version 7.4.530
Bram Moolenaar <bram@vim.org>
parents: 5294
diff changeset
74 :$tabnew " opens tabpage after the last one
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
75
2444
3fbd9bce03f1 Support syntax and filetype completion for user commands. (Christian Brabandt)
Bram Moolenaar <bram@vim.org>
parents: 2413
diff changeset
76 :[count]tabe[dit] [++opt] [+cmd] {file}
3fbd9bce03f1 Support syntax and filetype completion for user commands. (Christian Brabandt)
Bram Moolenaar <bram@vim.org>
parents: 2413
diff changeset
77 :[count]tabnew [++opt] [+cmd] {file}
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
78 Open a new tab page and edit {file}, like with |:edit|.
6398
5a76e36f07b1 updated for version 7.4.530
Bram Moolenaar <bram@vim.org>
parents: 5294
diff changeset
79 For [count] see |:tabnew| above.
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
80
2444
3fbd9bce03f1 Support syntax and filetype completion for user commands. (Christian Brabandt)
Bram Moolenaar <bram@vim.org>
parents: 2413
diff changeset
81 :[count]tabf[ind] [++opt] [+cmd] {file} *:tabf* *:tabfind*
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
82 Open a new tab page and edit {file} in 'path', like with
6398
5a76e36f07b1 updated for version 7.4.530
Bram Moolenaar <bram@vim.org>
parents: 5294
diff changeset
83 |:find|. For [count] see |:tabnew| above.
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
84 {not available when the |+file_in_path| feature was disabled
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
85 at compile time}
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
86
682
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
87 :[count]tab {cmd} *:tab*
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
88 Execute {cmd} and when it opens a new window open a new tab
1118
2b8ff9e3c520 updated for version 7.1a
vimboss
parents: 874
diff changeset
89 page instead. Doesn't work for |:diffsplit|, |:diffpatch|,
2b8ff9e3c520 updated for version 7.1a
vimboss
parents: 874
diff changeset
90 |:execute| and |:normal|.
9927
e1a8b2601fe0 commit https://github.com/vim/vim/commit/9b7f8ce9eb3cb704f8cc14ab659bf86b1d6dc13c
Christian Brabandt <cb@256bit.org>
parents: 7092
diff changeset
91 If [count] is given the new tab page appears after the tab
e1a8b2601fe0 commit https://github.com/vim/vim/commit/9b7f8ce9eb3cb704f8cc14ab659bf86b1d6dc13c
Christian Brabandt <cb@256bit.org>
parents: 7092
diff changeset
92 page [count] otherwise the new tab page will appear after the
e1a8b2601fe0 commit https://github.com/vim/vim/commit/9b7f8ce9eb3cb704f8cc14ab659bf86b1d6dc13c
Christian Brabandt <cb@256bit.org>
parents: 7092
diff changeset
93 current one.
2444
3fbd9bce03f1 Support syntax and filetype completion for user commands. (Christian Brabandt)
Bram Moolenaar <bram@vim.org>
parents: 2413
diff changeset
94 Examples: >
9927
e1a8b2601fe0 commit https://github.com/vim/vim/commit/9b7f8ce9eb3cb704f8cc14ab659bf86b1d6dc13c
Christian Brabandt <cb@256bit.org>
parents: 7092
diff changeset
95 :tab split " opens current buffer in new tab page
e1a8b2601fe0 commit https://github.com/vim/vim/commit/9b7f8ce9eb3cb704f8cc14ab659bf86b1d6dc13c
Christian Brabandt <cb@256bit.org>
parents: 7092
diff changeset
96 :tab help gt " opens tab page with help for "gt"
e1a8b2601fe0 commit https://github.com/vim/vim/commit/9b7f8ce9eb3cb704f8cc14ab659bf86b1d6dc13c
Christian Brabandt <cb@256bit.org>
parents: 7092
diff changeset
97 :.tab help gt " as above
e1a8b2601fe0 commit https://github.com/vim/vim/commit/9b7f8ce9eb3cb704f8cc14ab659bf86b1d6dc13c
Christian Brabandt <cb@256bit.org>
parents: 7092
diff changeset
98 :+tab help " opens tab page with help after the next
e1a8b2601fe0 commit https://github.com/vim/vim/commit/9b7f8ce9eb3cb704f8cc14ab659bf86b1d6dc13c
Christian Brabandt <cb@256bit.org>
parents: 7092
diff changeset
99 " tab page
e1a8b2601fe0 commit https://github.com/vim/vim/commit/9b7f8ce9eb3cb704f8cc14ab659bf86b1d6dc13c
Christian Brabandt <cb@256bit.org>
parents: 7092
diff changeset
100 :-tab help " opens tab page with help before the
e1a8b2601fe0 commit https://github.com/vim/vim/commit/9b7f8ce9eb3cb704f8cc14ab659bf86b1d6dc13c
Christian Brabandt <cb@256bit.org>
parents: 7092
diff changeset
101 " current one
e1a8b2601fe0 commit https://github.com/vim/vim/commit/9b7f8ce9eb3cb704f8cc14ab659bf86b1d6dc13c
Christian Brabandt <cb@256bit.org>
parents: 7092
diff changeset
102 :0tab help " opens tab page with help before the
e1a8b2601fe0 commit https://github.com/vim/vim/commit/9b7f8ce9eb3cb704f8cc14ab659bf86b1d6dc13c
Christian Brabandt <cb@256bit.org>
parents: 7092
diff changeset
103 " first one
e1a8b2601fe0 commit https://github.com/vim/vim/commit/9b7f8ce9eb3cb704f8cc14ab659bf86b1d6dc13c
Christian Brabandt <cb@256bit.org>
parents: 7092
diff changeset
104 :$tab help " opens tab page with help after the last
e1a8b2601fe0 commit https://github.com/vim/vim/commit/9b7f8ce9eb3cb704f8cc14ab659bf86b1d6dc13c
Christian Brabandt <cb@256bit.org>
parents: 7092
diff changeset
105 " one
682
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
106
820
57c7403f6599 updated for version 7.0c11
vimboss
parents: 819
diff changeset
107 CTRL-W gf Open a new tab page and edit the file name under the cursor.
57c7403f6599 updated for version 7.0c11
vimboss
parents: 819
diff changeset
108 See |CTRL-W_gf|.
57c7403f6599 updated for version 7.0c11
vimboss
parents: 819
diff changeset
109
839
1f3b1021f002 updated for version 7.0e05
vimboss
parents: 834
diff changeset
110 CTRL-W gF Open a new tab page and edit the file name under the cursor
1f3b1021f002 updated for version 7.0e05
vimboss
parents: 834
diff changeset
111 and jump to the line number following the file name.
1f3b1021f002 updated for version 7.0e05
vimboss
parents: 834
diff changeset
112 See |CTRL-W_gF|.
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
113
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
114 CLOSING A TAB PAGE:
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
115
682
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
116 Closing the last window of a tab page closes the tab page too, unless there is
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
117 only one tab page.
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
118
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
119 Using the mouse: If the tab page line is displayed you can click in the "X" at
682
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
120 the top right to close the current tab page. A custom |'tabline'| may show
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
121 something else.
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
122
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
123 *:tabc* *:tabclose*
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
124 :tabc[lose][!] Close current tab page.
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
125 This command fails when:
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
126 - There is only one tab page on the screen. *E784*
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
127 - When 'hidden' is not set, [!] is not used, a buffer has
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
128 changes, and there is no other window on this buffer.
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
129 Changes to the buffer are not written and won't get lost, so
6398
5a76e36f07b1 updated for version 7.4.530
Bram Moolenaar <bram@vim.org>
parents: 5294
diff changeset
130 this is a "safe" command. >
5a76e36f07b1 updated for version 7.4.530
Bram Moolenaar <bram@vim.org>
parents: 5294
diff changeset
131 :tabclose " close the current tab page
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
132
6398
5a76e36f07b1 updated for version 7.4.530
Bram Moolenaar <bram@vim.org>
parents: 5294
diff changeset
133 :{count}tabc[lose][!]
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
134 :tabc[lose][!] {count}
3750
536aa8b0c934 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3662
diff changeset
135 Close tab page {count}. Fails in the same way as `:tabclose`
6398
5a76e36f07b1 updated for version 7.4.530
Bram Moolenaar <bram@vim.org>
parents: 5294
diff changeset
136 above. >
5a76e36f07b1 updated for version 7.4.530
Bram Moolenaar <bram@vim.org>
parents: 5294
diff changeset
137 :-tabclose " close the previous tab page
5a76e36f07b1 updated for version 7.4.530
Bram Moolenaar <bram@vim.org>
parents: 5294
diff changeset
138 :+tabclose " close the next tab page
5a76e36f07b1 updated for version 7.4.530
Bram Moolenaar <bram@vim.org>
parents: 5294
diff changeset
139 :1tabclose " close the first tab page
5a76e36f07b1 updated for version 7.4.530
Bram Moolenaar <bram@vim.org>
parents: 5294
diff changeset
140 :$tabclose " close the last tab page
29290
dc4de65a7fb7 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 27903
diff changeset
141 :tabclose -2 " close the 2nd previous tab page
10895
c391bfbdb452 Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10301
diff changeset
142 :tabclose + " close the next tab page
c391bfbdb452 Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10301
diff changeset
143 :tabclose 3 " close the third tab page
c391bfbdb452 Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10301
diff changeset
144 :tabclose $ " close the last tab page
21727
860cad58f557 patch 8.2.1413: previous tab page not usable from an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 21703
diff changeset
145 :tabclose # " close the last accessed tab page
27537
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 22723
diff changeset
146
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 22723
diff changeset
147 When a tab is closed the next tab page will become the current one.
063952f68595 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 22723
diff changeset
148
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
149 *:tabo* *:tabonly*
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
150 :tabo[nly][!] Close all other tab pages.
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
151 When the 'hidden' option is set, all buffers in closed windows
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
152 become hidden.
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
153 When 'hidden' is not set, and the 'autowrite' option is set,
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
154 modified buffers are written. Otherwise, windows that have
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
155 buffers that are modified are not removed, unless the [!] is
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
156 given, then they become hidden. But modified buffers are
6398
5a76e36f07b1 updated for version 7.4.530
Bram Moolenaar <bram@vim.org>
parents: 5294
diff changeset
157 never abandoned, so changes cannot get lost. >
5a76e36f07b1 updated for version 7.4.530
Bram Moolenaar <bram@vim.org>
parents: 5294
diff changeset
158 :tabonly " close all tab pages except the current
9927
e1a8b2601fe0 commit https://github.com/vim/vim/commit/9b7f8ce9eb3cb704f8cc14ab659bf86b1d6dc13c
Christian Brabandt <cb@256bit.org>
parents: 7092
diff changeset
159 " one
6398
5a76e36f07b1 updated for version 7.4.530
Bram Moolenaar <bram@vim.org>
parents: 5294
diff changeset
160
5a76e36f07b1 updated for version 7.4.530
Bram Moolenaar <bram@vim.org>
parents: 5294
diff changeset
161 :{count}tabo[nly][!]
10895
c391bfbdb452 Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10301
diff changeset
162 :tabo[nly][!] {count}
c391bfbdb452 Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10301
diff changeset
163 Close all tab pages except {count} one. >
9927
e1a8b2601fe0 commit https://github.com/vim/vim/commit/9b7f8ce9eb3cb704f8cc14ab659bf86b1d6dc13c
Christian Brabandt <cb@256bit.org>
parents: 7092
diff changeset
164 :.tabonly " as above
6398
5a76e36f07b1 updated for version 7.4.530
Bram Moolenaar <bram@vim.org>
parents: 5294
diff changeset
165 :-tabonly " close all tab pages except the previous
5a76e36f07b1 updated for version 7.4.530
Bram Moolenaar <bram@vim.org>
parents: 5294
diff changeset
166 " one
5a76e36f07b1 updated for version 7.4.530
Bram Moolenaar <bram@vim.org>
parents: 5294
diff changeset
167 :+tabonly " close all tab pages except the next one
5a76e36f07b1 updated for version 7.4.530
Bram Moolenaar <bram@vim.org>
parents: 5294
diff changeset
168 :1tabonly " close all tab pages except the first one
5a76e36f07b1 updated for version 7.4.530
Bram Moolenaar <bram@vim.org>
parents: 5294
diff changeset
169 :$tabonly " close all tab pages except the last one
10895
c391bfbdb452 Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10301
diff changeset
170 :tabonly - " close all tab pages except the previous
c391bfbdb452 Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10301
diff changeset
171 " one
c391bfbdb452 Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10301
diff changeset
172 :tabonly +2 " close all tab pages except the two next
c391bfbdb452 Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10301
diff changeset
173 " one
c391bfbdb452 Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10301
diff changeset
174 :tabonly 1 " close all tab pages except the first one
c391bfbdb452 Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10301
diff changeset
175 :tabonly $ " close all tab pages except the last one
21727
860cad58f557 patch 8.2.1413: previous tab page not usable from an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 21703
diff changeset
176 :tabonly # " close all tab pages except the last
860cad58f557 patch 8.2.1413: previous tab page not usable from an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 21703
diff changeset
177 " accessed one
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
178
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
179
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
180 SWITCHING TO ANOTHER TAB PAGE:
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
181
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
182 Using the mouse: If the tab page line is displayed you can click in a tab page
682
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
183 label to switch to that tab page. Click where there is no label to go to the
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
184 next tab page. |'tabline'|
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
185
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 810
diff changeset
186 :tabn[ext] *:tabn* *:tabnext* *gt*
1118
2b8ff9e3c520 updated for version 7.1a
vimboss
parents: 874
diff changeset
187 <C-PageDown> *CTRL-<PageDown>* *<C-PageDown>*
2b8ff9e3c520 updated for version 7.1a
vimboss
parents: 874
diff changeset
188 gt *i_CTRL-<PageDown>* *i_<C-PageDown>*
828
01583c79d5f4 updated for version 7.0d03
vimboss
parents: 825
diff changeset
189 Go to the next tab page. Wraps around from the last to the
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
190 first one.
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
191
10895
c391bfbdb452 Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10301
diff changeset
192 :{count}tabn[ext]
1118
2b8ff9e3c520 updated for version 7.1a
vimboss
parents: 874
diff changeset
193 :tabn[ext] {count}
10895
c391bfbdb452 Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10301
diff changeset
194 Go to tab page {count}. The first tab page has number one. >
c391bfbdb452 Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10301
diff changeset
195 :-tabnext " go to the previous tab page
c391bfbdb452 Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10301
diff changeset
196 :+tabnext " go to the next tab page
c391bfbdb452 Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10301
diff changeset
197 :+2tabnext " go to the two next tab page
c391bfbdb452 Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10301
diff changeset
198 :1tabnext " go to the first tab page
c391bfbdb452 Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10301
diff changeset
199 :$tabnext " go to the last tab page
22723
5b7ea82bc18f Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 21825
diff changeset
200 :tabnext $ " as above
21727
860cad58f557 patch 8.2.1413: previous tab page not usable from an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 21703
diff changeset
201 :tabnext # " go to the last accessed tab page
10895
c391bfbdb452 Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10301
diff changeset
202 :tabnext - " go to the previous tab page
c391bfbdb452 Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10301
diff changeset
203 :tabnext -1 " as above
c391bfbdb452 Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10301
diff changeset
204 :tabnext + " go to the next tab page
c391bfbdb452 Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10301
diff changeset
205 :tabnext +1 " as above
c391bfbdb452 Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10301
diff changeset
206
1118
2b8ff9e3c520 updated for version 7.1a
vimboss
parents: 874
diff changeset
207 {count}<C-PageDown>
2b8ff9e3c520 updated for version 7.1a
vimboss
parents: 874
diff changeset
208 {count}gt Go to tab page {count}. The first tab page has number one.
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
209
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
210
1118
2b8ff9e3c520 updated for version 7.1a
vimboss
parents: 874
diff changeset
211 :tabp[revious] *:tabp* *:tabprevious* *gT* *:tabN*
2b8ff9e3c520 updated for version 7.1a
vimboss
parents: 874
diff changeset
212 :tabN[ext] *:tabNext* *CTRL-<PageUp>*
2b8ff9e3c520 updated for version 7.1a
vimboss
parents: 874
diff changeset
213 <C-PageUp> *<C-PageUp>* *i_CTRL-<PageUp>* *i_<C-PageUp>*
682
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
214 gT Go to the previous tab page. Wraps around from the first one
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
215 to the last one.
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
216
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
217 :tabp[revious] {count}
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
218 :tabN[ext] {count}
1118
2b8ff9e3c520 updated for version 7.1a
vimboss
parents: 874
diff changeset
219 {count}<C-PageUp>
682
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
220 {count}gT Go {count} tab pages back. Wraps around from the first one
14006
665fe1f419b0 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 13963
diff changeset
221 to the last one. Note that the use of {count} is different
665fe1f419b0 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 13963
diff changeset
222 from |:tabnext|, where it is used as the tab page number.
682
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
223
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 682
diff changeset
224 :tabr[ewind] *:tabfir* *:tabfirst* *:tabr* *:tabrewind*
686
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
225 :tabfir[st] Go to the first tab page.
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 682
diff changeset
226
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 682
diff changeset
227 *:tabl* *:tablast*
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 682
diff changeset
228 :tabl[ast] Go to the last tab page.
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 682
diff changeset
229
22723
5b7ea82bc18f Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 21825
diff changeset
230 *g<Tab>* *CTRL-W_g<Tab>* *<C-Tab>*
21703
22583b9d4efd patch 8.2.1401: cannot jump to the last used tabpage
Bram Moolenaar <Bram@vim.org>
parents: 19404
diff changeset
231 g<Tab> Go to the last accessed tab page.
682
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
232
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
233 Other commands:
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
234 *:tabs*
682
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
235 :tabs List the tab pages and the windows they contain.
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
236 Shows a ">" for the current window.
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
237 Shows a "+" for modified buffers.
10186
a5ef9968638c commit https://github.com/vim/vim/commit/7e1479b86c590a66b63a274c079b7f18907d45a4
Christian Brabandt <cb@256bit.org>
parents: 9927
diff changeset
238 For example:
a5ef9968638c commit https://github.com/vim/vim/commit/7e1479b86c590a66b63a274c079b7f18907d45a4
Christian Brabandt <cb@256bit.org>
parents: 9927
diff changeset
239 Tab page 1 ~
a5ef9968638c commit https://github.com/vim/vim/commit/7e1479b86c590a66b63a274c079b7f18907d45a4
Christian Brabandt <cb@256bit.org>
parents: 9927
diff changeset
240 + tabpage.txt ~
a5ef9968638c commit https://github.com/vim/vim/commit/7e1479b86c590a66b63a274c079b7f18907d45a4
Christian Brabandt <cb@256bit.org>
parents: 9927
diff changeset
241 ex_docmd.c ~
a5ef9968638c commit https://github.com/vim/vim/commit/7e1479b86c590a66b63a274c079b7f18907d45a4
Christian Brabandt <cb@256bit.org>
parents: 9927
diff changeset
242 Tab page 2 ~
a5ef9968638c commit https://github.com/vim/vim/commit/7e1479b86c590a66b63a274c079b7f18907d45a4
Christian Brabandt <cb@256bit.org>
parents: 9927
diff changeset
243 > main.c ~
682
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
244
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
245
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
246 REORDERING TAB PAGES:
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
247
843
9f279ebda751 updated for version 7.0f01
vimboss
parents: 842
diff changeset
248 :tabm[ove] [N] *:tabm* *:tabmove*
3662
e5b925ae56e3 updated for version 7.3.591
Bram Moolenaar <bram@vim.org>
parents: 2577
diff changeset
249 :[N]tabm[ove]
843
9f279ebda751 updated for version 7.0f01
vimboss
parents: 842
diff changeset
250 Move the current tab page to after tab page N. Use zero to
14519
5c5908e81e93 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 14421
diff changeset
251 make the current tab page the first one. N is counted before
5c5908e81e93 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 14421
diff changeset
252 the move, thus if the second tab is the current one,
14637
0ecb909e3249 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 14519
diff changeset
253 `:tabmove 1` and `:tabmove 2` have no effect.
14519
5c5908e81e93 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 14421
diff changeset
254 Without N the tab page is made the last one. >
6775
c0bc9b60fb8a patch 7.4.709
Bram Moolenaar <bram@vim.org>
parents: 6474
diff changeset
255 :.tabmove " do nothing
6398
5a76e36f07b1 updated for version 7.4.530
Bram Moolenaar <bram@vim.org>
parents: 5294
diff changeset
256 :-tabmove " move the tab page to the left
6775
c0bc9b60fb8a patch 7.4.709
Bram Moolenaar <bram@vim.org>
parents: 6474
diff changeset
257 :+tabmove " move the tab page to the right
6474
a88d4dc02bf4 updated for version 7.4.566
Bram Moolenaar <bram@vim.org>
parents: 6421
diff changeset
258 :0tabmove " move the tab page to the beginning of the tab
6398
5a76e36f07b1 updated for version 7.4.530
Bram Moolenaar <bram@vim.org>
parents: 5294
diff changeset
259 " list
6775
c0bc9b60fb8a patch 7.4.709
Bram Moolenaar <bram@vim.org>
parents: 6474
diff changeset
260 :tabmove 0 " as above
c0bc9b60fb8a patch 7.4.709
Bram Moolenaar <bram@vim.org>
parents: 6474
diff changeset
261 :tabmove " move the tab page to the last
c0bc9b60fb8a patch 7.4.709
Bram Moolenaar <bram@vim.org>
parents: 6474
diff changeset
262 :$tabmove " as above
c0bc9b60fb8a patch 7.4.709
Bram Moolenaar <bram@vim.org>
parents: 6474
diff changeset
263 :tabmove $ " as above
22723
5b7ea82bc18f Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 21825
diff changeset
264 :tabmove # " move the tab page after the last accessed
21727
860cad58f557 patch 8.2.1413: previous tab page not usable from an Ex command
Bram Moolenaar <Bram@vim.org>
parents: 21703
diff changeset
265 " tab page
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
266
3662
e5b925ae56e3 updated for version 7.3.591
Bram Moolenaar <bram@vim.org>
parents: 2577
diff changeset
267 :tabm[ove] +[N]
e5b925ae56e3 updated for version 7.3.591
Bram Moolenaar <bram@vim.org>
parents: 2577
diff changeset
268 :tabm[ove] -[N]
e5b925ae56e3 updated for version 7.3.591
Bram Moolenaar <bram@vim.org>
parents: 2577
diff changeset
269 Move the current tab page N places to the right (with +) or to
6775
c0bc9b60fb8a patch 7.4.709
Bram Moolenaar <bram@vim.org>
parents: 6474
diff changeset
270 the left (with -). >
c0bc9b60fb8a patch 7.4.709
Bram Moolenaar <bram@vim.org>
parents: 6474
diff changeset
271 :tabmove - " move the tab page to the left
c0bc9b60fb8a patch 7.4.709
Bram Moolenaar <bram@vim.org>
parents: 6474
diff changeset
272 :tabmove -1 " as above
c0bc9b60fb8a patch 7.4.709
Bram Moolenaar <bram@vim.org>
parents: 6474
diff changeset
273 :tabmove + " move the tab page to the right
c0bc9b60fb8a patch 7.4.709
Bram Moolenaar <bram@vim.org>
parents: 6474
diff changeset
274 :tabmove +1 " as above
c0bc9b60fb8a patch 7.4.709
Bram Moolenaar <bram@vim.org>
parents: 6474
diff changeset
275
3662
e5b925ae56e3 updated for version 7.3.591
Bram Moolenaar <bram@vim.org>
parents: 2577
diff changeset
276
e5b925ae56e3 updated for version 7.3.591
Bram Moolenaar <bram@vim.org>
parents: 2577
diff changeset
277 Note that although it is possible to move a tab behind the N-th one by using
6775
c0bc9b60fb8a patch 7.4.709
Bram Moolenaar <bram@vim.org>
parents: 6474
diff changeset
278 :Ntabmove. And move it by N places by using :+Ntabmove. For clarification what
c0bc9b60fb8a patch 7.4.709
Bram Moolenaar <bram@vim.org>
parents: 6474
diff changeset
279 +N means in this context see |[range]|.
3662
e5b925ae56e3 updated for version 7.3.591
Bram Moolenaar <bram@vim.org>
parents: 2577
diff changeset
280
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 682
diff changeset
281
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 682
diff changeset
282 LOOPING OVER TAB PAGES:
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 682
diff changeset
283
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 682
diff changeset
284 *:tabd* *:tabdo*
6474
a88d4dc02bf4 updated for version 7.4.566
Bram Moolenaar <bram@vim.org>
parents: 6421
diff changeset
285 :[range]tabd[o] {cmd}
a88d4dc02bf4 updated for version 7.4.566
Bram Moolenaar <bram@vim.org>
parents: 6421
diff changeset
286 Execute {cmd} in each tab page or if [range] is given only in
a88d4dc02bf4 updated for version 7.4.566
Bram Moolenaar <bram@vim.org>
parents: 6421
diff changeset
287 tab pages which tab page number is in the [range]. It works
a88d4dc02bf4 updated for version 7.4.566
Bram Moolenaar <bram@vim.org>
parents: 6421
diff changeset
288 like doing this: >
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 682
diff changeset
289 :tabfirst
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 682
diff changeset
290 :{cmd}
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 682
diff changeset
291 :tabnext
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 682
diff changeset
292 :{cmd}
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 682
diff changeset
293 etc.
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 682
diff changeset
294 < This only operates in the current window of each tab page.
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 682
diff changeset
295 When an error is detected on one tab page, further tab pages
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 682
diff changeset
296 will not be visited.
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 682
diff changeset
297 The last tab page (or where an error occurred) becomes the
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 682
diff changeset
298 current tab page.
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 682
diff changeset
299 {cmd} can contain '|' to concatenate several commands.
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 682
diff changeset
300 {cmd} must not open or close tab pages or reorder them.
7092
64e30831fa42 commit https://github.com/vim/vim/commit/aa23b379421aa214e6543b06c974594a25799b09
Christian Brabandt <cb@256bit.org>
parents: 6775
diff changeset
301 Also see |:windo|, |:argdo|, |:bufdo|, |:cdo|, |:ldo|, |:cfdo|
64e30831fa42 commit https://github.com/vim/vim/commit/aa23b379421aa214e6543b06c974594a25799b09
Christian Brabandt <cb@256bit.org>
parents: 6775
diff changeset
302 and |:lfdo|
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 682
diff changeset
303
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
304 ==============================================================================
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
305 3. Other items *tab-page-other*
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
306
706
ef3b59af4207 updated for version 7.0213
vimboss
parents: 698
diff changeset
307 *tabline-menu*
ef3b59af4207 updated for version 7.0213
vimboss
parents: 698
diff changeset
308 The GUI tab pages line has a popup menu. It is accessed with a right click.
ef3b59af4207 updated for version 7.0213
vimboss
parents: 698
diff changeset
309 The entries are:
ef3b59af4207 updated for version 7.0213
vimboss
parents: 698
diff changeset
310 Close Close the tab page under the mouse pointer. The
ef3b59af4207 updated for version 7.0213
vimboss
parents: 698
diff changeset
311 current one if there is no label under the mouse
ef3b59af4207 updated for version 7.0213
vimboss
parents: 698
diff changeset
312 pointer.
ef3b59af4207 updated for version 7.0213
vimboss
parents: 698
diff changeset
313 New Tab Open a tab page, editing an empty buffer. It appears
ef3b59af4207 updated for version 7.0213
vimboss
parents: 698
diff changeset
314 to the left of the mouse pointer.
1118
2b8ff9e3c520 updated for version 7.1a
vimboss
parents: 874
diff changeset
315 Open Tab... Like "New Tab" and additionally use a file selector to
706
ef3b59af4207 updated for version 7.0213
vimboss
parents: 698
diff changeset
316 select a file to edit.
ef3b59af4207 updated for version 7.0213
vimboss
parents: 698
diff changeset
317
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
318 Diff mode works per tab page. You can see the diffs between several files
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
319 within one tab page. Other tab pages can show differences between other
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
320 files.
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
321
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 810
diff changeset
322 Variables local to a tab page start with "t:". |tabpage-variable|
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 810
diff changeset
323
824
8dd456c1e283 updated for version 7.0c13
vimboss
parents: 820
diff changeset
324 Currently there is only one option local to a tab page: 'cmdheight'.
8dd456c1e283 updated for version 7.0c13
vimboss
parents: 820
diff changeset
325
10301
07d2b5a3b7cc commit https://github.com/vim/vim/commit/46fceaaa8d1447a9588736d86eb4908214187b08
Christian Brabandt <cb@256bit.org>
parents: 10198
diff changeset
326 *tabnew-autocmd*
675
51794dc170f7 updated for version 7.0202
vimboss
parents: 674
diff changeset
327 The TabLeave and TabEnter autocommand events can be used to do something when
51794dc170f7 updated for version 7.0202
vimboss
parents: 674
diff changeset
328 switching from one tab page to another. The exact order depends on what you
51794dc170f7 updated for version 7.0202
vimboss
parents: 674
diff changeset
329 are doing. When creating a new tab page this works as if you create a new
51794dc170f7 updated for version 7.0202
vimboss
parents: 674
diff changeset
330 window on the same buffer and then edit another buffer. Thus ":tabnew"
51794dc170f7 updated for version 7.0202
vimboss
parents: 674
diff changeset
331 triggers:
51794dc170f7 updated for version 7.0202
vimboss
parents: 674
diff changeset
332 WinLeave leave current window
51794dc170f7 updated for version 7.0202
vimboss
parents: 674
diff changeset
333 TabLeave leave current tab page
6474
a88d4dc02bf4 updated for version 7.4.566
Bram Moolenaar <bram@vim.org>
parents: 6421
diff changeset
334 WinEnter enter window in new tab page
675
51794dc170f7 updated for version 7.0202
vimboss
parents: 674
diff changeset
335 TabEnter enter new tab page
51794dc170f7 updated for version 7.0202
vimboss
parents: 674
diff changeset
336 BufLeave leave current buffer
51794dc170f7 updated for version 7.0202
vimboss
parents: 674
diff changeset
337 BufEnter enter new empty buffer
51794dc170f7 updated for version 7.0202
vimboss
parents: 674
diff changeset
338
678
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
339 When switching to another tab page the order is:
675
51794dc170f7 updated for version 7.0202
vimboss
parents: 674
diff changeset
340 BufLeave
51794dc170f7 updated for version 7.0202
vimboss
parents: 674
diff changeset
341 WinLeave
51794dc170f7 updated for version 7.0202
vimboss
parents: 674
diff changeset
342 TabLeave
51794dc170f7 updated for version 7.0202
vimboss
parents: 674
diff changeset
343 TabEnter
51794dc170f7 updated for version 7.0202
vimboss
parents: 674
diff changeset
344 WinEnter
51794dc170f7 updated for version 7.0202
vimboss
parents: 674
diff changeset
345 BufEnter
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
346
678
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
347 ==============================================================================
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
348 4. Setting 'tabline' *setting-tabline*
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
349
686
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
350 The 'tabline' option specifies what the line with tab pages labels looks like.
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
351 It is only used when there is no GUI tab line.
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
352
678
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
353 You can use the 'showtabline' option to specify when you want the line with
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
354 tab page labels to appear: never, when there is more than one tab page or
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
355 always.
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
356
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
357 The highlighting of the tab pages line is set with the groups TabLine
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
358 TabLineSel and TabLineFill. |hl-TabLine| |hl-TabLineSel| |hl-TabLineFill|
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
359
1118
2b8ff9e3c520 updated for version 7.1a
vimboss
parents: 874
diff changeset
360 A "+" will be shown for a tab page that has a modified window. The number of
2b8ff9e3c520 updated for version 7.1a
vimboss
parents: 874
diff changeset
361 windows in a tabpage is also shown. Thus "3+" means three windows and one of
2b8ff9e3c520 updated for version 7.1a
vimboss
parents: 874
diff changeset
362 them has a modified buffer.
2b8ff9e3c520 updated for version 7.1a
vimboss
parents: 874
diff changeset
363
678
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
364 The 'tabline' option allows you to define your preferred way to tab pages
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
365 labels. This isn't easy, thus an example will be given here.
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
366
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
367 For basics see the 'statusline' option. The same items can be used in the
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
368 'tabline' option. Additionally, the |tabpagebuflist()|, |tabpagenr()| and
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
369 |tabpagewinnr()| functions are useful.
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
370
1118
2b8ff9e3c520 updated for version 7.1a
vimboss
parents: 874
diff changeset
371 Since the number of tab labels will vary, you need to use an expression for
2b8ff9e3c520 updated for version 7.1a
vimboss
parents: 874
diff changeset
372 the whole option. Something like: >
678
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
373 :set tabline=%!MyTabLine()
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
374
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
375 Then define the MyTabLine() function to list all the tab pages labels. A
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
376 convenient method is to split it in two parts: First go over all the tab
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
377 pages and define labels for them. Then get the label for each tab page. >
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
378
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
379 function MyTabLine()
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
380 let s = ''
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
381 for i in range(tabpagenr('$'))
681
9364d114ed8d updated for version 7.0204
vimboss
parents: 678
diff changeset
382 " select the highlighting
678
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
383 if i + 1 == tabpagenr()
27903
d19b7aee1925 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27537
diff changeset
384 let s ..= '%#TabLineSel#'
678
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
385 else
27903
d19b7aee1925 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27537
diff changeset
386 let s ..= '%#TabLine#'
678
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
387 endif
681
9364d114ed8d updated for version 7.0204
vimboss
parents: 678
diff changeset
388
9364d114ed8d updated for version 7.0204
vimboss
parents: 678
diff changeset
389 " set the tab page number (for mouse clicks)
27903
d19b7aee1925 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27537
diff changeset
390 let s ..= '%' .. (i + 1) .. 'T'
681
9364d114ed8d updated for version 7.0204
vimboss
parents: 678
diff changeset
391
9364d114ed8d updated for version 7.0204
vimboss
parents: 678
diff changeset
392 " the label is made by MyTabLabel()
27903
d19b7aee1925 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27537
diff changeset
393 let s ..= ' %{MyTabLabel(' .. (i + 1) .. ')} '
678
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
394 endfor
681
9364d114ed8d updated for version 7.0204
vimboss
parents: 678
diff changeset
395
9364d114ed8d updated for version 7.0204
vimboss
parents: 678
diff changeset
396 " after the last tab fill with TabLineFill and reset tab page nr
27903
d19b7aee1925 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27537
diff changeset
397 let s ..= '%#TabLineFill#%T'
681
9364d114ed8d updated for version 7.0204
vimboss
parents: 678
diff changeset
398
9364d114ed8d updated for version 7.0204
vimboss
parents: 678
diff changeset
399 " right-align the label to close the current tab page
9364d114ed8d updated for version 7.0204
vimboss
parents: 678
diff changeset
400 if tabpagenr('$') > 1
27903
d19b7aee1925 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27537
diff changeset
401 let s ..= '%=%#TabLine#%999Xclose'
681
9364d114ed8d updated for version 7.0204
vimboss
parents: 678
diff changeset
402 endif
9364d114ed8d updated for version 7.0204
vimboss
parents: 678
diff changeset
403
678
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
404 return s
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
405 endfunction
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
406
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
407 Now the MyTabLabel() function is called for each tab page to get its label. >
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
408
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
409 function MyTabLabel(n)
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
410 let buflist = tabpagebuflist(a:n)
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
411 let winnr = tabpagewinnr(a:n)
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
412 return bufname(buflist[winnr - 1])
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
413 endfunction
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
414
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
415 This is just a simplistic example that results in a tab pages line that
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
416 resembles the default, but without adding a + for a modified buffer or
1118
2b8ff9e3c520 updated for version 7.1a
vimboss
parents: 874
diff changeset
417 truncating the names. You will want to reduce the width of labels in a
678
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
418 clever way when there is not enough room. Check the 'columns' option for the
681
9364d114ed8d updated for version 7.0204
vimboss
parents: 678
diff changeset
419 space available.
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
420
686
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
421 ==============================================================================
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
422 5. Setting 'guitablabel' *setting-guitablabel*
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
423
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
424 When the GUI tab pages line is displayed, 'guitablabel' can be used to
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
425 specify the label to display for each tab page. Unlike 'tabline', which
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
426 specifies the whole tab pages line at once, 'guitablabel' is used for each
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
427 label separately.
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
428
839
1f3b1021f002 updated for version 7.0e05
vimboss
parents: 834
diff changeset
429 'guitabtooltip' is very similar and is used for the tooltip of the same label.
1f3b1021f002 updated for version 7.0e05
vimboss
parents: 834
diff changeset
430 This only appears when the mouse pointer hovers over the label, thus it
1f3b1021f002 updated for version 7.0e05
vimboss
parents: 834
diff changeset
431 usually is longer. Only supported on some systems though.
1f3b1021f002 updated for version 7.0e05
vimboss
parents: 834
diff changeset
432
686
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
433 See the 'statusline' option for the format of the value.
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
434
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
435 The "%N" item can be used for the current tab page number. The |v:lnum|
839
1f3b1021f002 updated for version 7.0e05
vimboss
parents: 834
diff changeset
436 variable is also set to this number when the option is evaluated.
690
0e922220d322 updated for version 7.0208
vimboss
parents: 686
diff changeset
437 The items that use a file name refer to the current window of the tab page.
686
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
438
839
1f3b1021f002 updated for version 7.0e05
vimboss
parents: 834
diff changeset
439 Note that syntax highlighting is not used for the option. The %T and %X
690
0e922220d322 updated for version 7.0208
vimboss
parents: 686
diff changeset
440 items are also ignored.
686
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
441
690
0e922220d322 updated for version 7.0208
vimboss
parents: 686
diff changeset
442 A simple example that puts the tab page number and the buffer name in the
0e922220d322 updated for version 7.0208
vimboss
parents: 686
diff changeset
443 label: >
686
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
444 :set guitablabel=%N\ %f
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
445
839
1f3b1021f002 updated for version 7.0e05
vimboss
parents: 834
diff changeset
446 An example that resembles the default 'guitablabel': Show the number of
1118
2b8ff9e3c520 updated for version 7.1a
vimboss
parents: 874
diff changeset
447 windows in the tab page and a '+' if there is a modified buffer: >
686
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
448
690
0e922220d322 updated for version 7.0208
vimboss
parents: 686
diff changeset
449 function GuiTabLabel()
686
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
450 let label = ''
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
451 let bufnrlist = tabpagebuflist(v:lnum)
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
452
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
453 " Add '+' if one of the buffers in the tab page is modified
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
454 for bufnr in bufnrlist
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
455 if getbufvar(bufnr, "&modified")
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
456 let label = '+'
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
457 break
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
458 endif
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
459 endfor
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
460
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
461 " Append the number of windows in the tab page if more than one
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
462 let wincount = tabpagewinnr(v:lnum, '$')
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
463 if wincount > 1
27903
d19b7aee1925 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27537
diff changeset
464 let label ..= wincount
686
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
465 endif
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
466 if label != ''
27903
d19b7aee1925 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27537
diff changeset
467 let label ..= ' '
686
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
468 endif
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
469
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
470 " Append the buffer name
27903
d19b7aee1925 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 27537
diff changeset
471 return label .. bufname(bufnrlist[tabpagewinnr(v:lnum) - 1])
686
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
472 endfunction
690
0e922220d322 updated for version 7.0208
vimboss
parents: 686
diff changeset
473
686
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
474 set guitablabel=%{GuiTabLabel()}
690
0e922220d322 updated for version 7.0208
vimboss
parents: 686
diff changeset
475
0e922220d322 updated for version 7.0208
vimboss
parents: 686
diff changeset
476 Note that the function must be defined before setting the option, otherwise
0e922220d322 updated for version 7.0208
vimboss
parents: 686
diff changeset
477 you get an error message for the function not being known.
0e922220d322 updated for version 7.0208
vimboss
parents: 686
diff changeset
478
857
b933657f7c9d updated for version 7.0g01
vimboss
parents: 856
diff changeset
479 If you want to fall back to the default label, return an empty string.
b933657f7c9d updated for version 7.0g01
vimboss
parents: 856
diff changeset
480
b933657f7c9d updated for version 7.0g01
vimboss
parents: 856
diff changeset
481 If you want to show something specific for a tab page, you might want to use a
b933657f7c9d updated for version 7.0g01
vimboss
parents: 856
diff changeset
482 tab page local variable. |t:var|
b933657f7c9d updated for version 7.0g01
vimboss
parents: 856
diff changeset
483
686
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
484
14421
2f7e67dd088c Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 14006
diff changeset
485 vim:tw=78:ts=8:noet:ft=help:norl: