annotate runtime/doc/tabpage.txt @ 857:b933657f7c9d

updated for version 7.0g01
author vimboss
date Tue, 02 May 2006 22:08:30 +0000
parents 8cd729851562
children 4bac29d27e2f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
857
b933657f7c9d updated for version 7.0g01
vimboss
parents: 856
diff changeset
1 *tabpage.txt* For Vim version 7.0g. Last change: 2006 May 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 {Vi does not have any of these commands}
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
20 {not able to use multiple tab pages when the |+windows| feature was disabled
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
21 at compile time}
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
22
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
23 ==============================================================================
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
24 1. Introduction *tab-page-intro*
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
25
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
26 A tab page holds one or more windows. You can easily switch between tab
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
27 pages, so that you have several collections of windows to work on different
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
28 things.
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
29
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
30 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
31 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
32 page. There are other ways to move between tab pages, see below.
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
33
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
34 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
35 commands, |:windo|, |:all| and |:ball| (when not using the |:tab| modifier).
e402b0af6083 updated for version 7.0211
vimboss
parents: 690
diff changeset
36 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
37 mentioned below.
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
38
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
39 Tabs are also a nice way to edit a buffer temporarily without changing the
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
40 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
41 close the tab page.
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
42
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
43 ==============================================================================
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
44 2. Commands *tab-page-commands*
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
45
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
46 OPENING A NEW TAB PAGE:
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
47
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
48 When starting Vim "vim -p filename ..." opens each file argument in a separate
698
e402b0af6083 updated for version 7.0211
vimboss
parents: 690
diff changeset
49 tab page (up to 'tabpagemax'). |-p|
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
50
706
ef3b59af4207 updated for version 7.0213
vimboss
parents: 698
diff changeset
51 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
52 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
53 may select another tab page first, causing an extra screen update.
ef3b59af4207 updated for version 7.0213
vimboss
parents: 698
diff changeset
54
844
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 843
diff changeset
55 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
56 clicking right of the labels.
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 843
diff changeset
57
706
ef3b59af4207 updated for version 7.0213
vimboss
parents: 698
diff changeset
58 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
59 |tabline-menu|.
682
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
60
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
61 :tabe[dit] *:tabe* *:tabedit* *:tabnew*
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
62 :tabnew Open a new tab page with an empty window, after the current
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
63 tab page.
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
64
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
65 :tabe[dit] [++opt] [+cmd] {file}
682
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
66 :tabnew [++opt] [+cmd] {file}
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
67 Open a new tab page and edit {file}, like with |:edit|.
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
68
675
51794dc170f7 updated for version 7.0202
vimboss
parents: 674
diff changeset
69 :tabf[ind] [++opt] [+cmd] {file} *:tabf* *:tabfind*
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
70 Open a new tab page and edit {file} in 'path', like with
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
71 |:find|.
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
72 {not available when the |+file_in_path| feature was disabled
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
73 at compile time}
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
74
682
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
75 :[count]tab {cmd} *:tab*
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
76 Execute {cmd} and when it opens a new window open a new tab
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
77 page instead. Doesn't work for |:diffsplit| or |:diffpatch|.
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
78 When [count] is omitted the tab page appears after the current
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
79 one. When [count] is specified the new tab page comes after
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
80 tab page [count]. Use ":0tab cmd" to get the new tab page as
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
81 the first one. Examples: >
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
82 :tab split " opens current buffer in new tab page
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
83 :tab help gt " opens tab page with help for "gt"
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
84
820
57c7403f6599 updated for version 7.0c11
vimboss
parents: 819
diff changeset
85 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
86 See |CTRL-W_gf|.
57c7403f6599 updated for version 7.0c11
vimboss
parents: 819
diff changeset
87
839
1f3b1021f002 updated for version 7.0e05
vimboss
parents: 834
diff changeset
88 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
89 and jump to the line number following the file name.
1f3b1021f002 updated for version 7.0e05
vimboss
parents: 834
diff changeset
90 See |CTRL-W_gF|.
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
91
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
92 CLOSING A TAB PAGE:
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
93
682
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
94 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
95 only one tab page.
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
96
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
97 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
98 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
99 something else.
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
100
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
101 *:tabc* *:tabclose*
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
102 :tabc[lose][!] Close current tab page.
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
103 This command fails when:
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
104 - There is only one tab page on the screen. *E784*
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
105 - When 'hidden' is not set, [!] is not used, a buffer has
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
106 changes, and there is no other window on this buffer.
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
107 Changes to the buffer are not written and won't get lost, so
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
108 this is a "safe" command.
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
109
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
110 :tabc[lose][!] {count}
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
111 Close tab page {count}. Fails in the same way as ':tabclose"
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
112 above.
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
113
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
114 *:tabo* *:tabonly*
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
115 :tabo[nly][!] Close all other tab pages.
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
116 When the 'hidden' option is set, all buffers in closed windows
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
117 become hidden.
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
118 When 'hidden' is not set, and the 'autowrite' option is set,
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
119 modified buffers are written. Otherwise, windows that have
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
120 buffers that are modified are not removed, unless the [!] is
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
121 given, then they become hidden. But modified buffers are
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
122 never abandoned, so changes cannot get lost.
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
123
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
124
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
125 SWITCHING TO ANOTHER TAB PAGE:
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
126
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
127 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
128 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
129 next tab page. |'tabline'|
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
130
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 810
diff changeset
131 :tabn[ext] *:tabn* *:tabnext* *gt*
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 810
diff changeset
132 gt *CTRL-<PageDown>* *<C-PageDown>*
828
01583c79d5f4 updated for version 7.0d03
vimboss
parents: 825
diff changeset
133 <C-PageDown> *i_CTRL-<PageDown>* *i_<C-PageDown>*
01583c79d5f4 updated for version 7.0d03
vimboss
parents: 825
diff changeset
134 Go to the next tab page. Wraps around from the last to the
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
135 first one.
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
136
828
01583c79d5f4 updated for version 7.0d03
vimboss
parents: 825
diff changeset
137 :tabn[ext] {count} *CTRL-<PageUp>* *<C-PageUp>*
01583c79d5f4 updated for version 7.0d03
vimboss
parents: 825
diff changeset
138 {count}gt *i_CTRL-<PageUp>* *i_<C-PageUp>*
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 810
diff changeset
139 <C-PageUp> Go to tab page {count}. The first tab page has number one.
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
140
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
141
682
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
142 :tabp[revious] *:tabp* *:tabprevious* *gT*
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
143 :tabN[ext] *:tabN* *:tabNext*
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
144 gT Go to the previous tab page. Wraps around from the first one
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
145 to the last one.
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
146
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
147 :tabp[revious] {count}
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
148 :tabN[ext] {count}
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
149 {count}gT Go {count} tab pages back. Wraps around from the first one
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
150 to the last one.
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
151
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 682
diff changeset
152 :tabr[ewind] *:tabfir* *:tabfirst* *:tabr* *:tabrewind*
686
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
153 :tabfir[st] Go to the first tab page.
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 682
diff changeset
154
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 682
diff changeset
155 *:tabl* *:tablast*
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 682
diff changeset
156 :tabl[ast] Go to the last tab page.
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 682
diff changeset
157
682
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
158
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
159 Other commands:
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
160 *:tabs*
682
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
161 :tabs List the tab pages and the windows they contain.
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
162 Shows a ">" for the current window.
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
163 Shows a "+" for modified buffers.
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
164
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
165
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
166 REORDERING TAB PAGES:
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
167
843
9f279ebda751 updated for version 7.0f01
vimboss
parents: 842
diff changeset
168 :tabm[ove] [N] *:tabm* *:tabmove*
9f279ebda751 updated for version 7.0f01
vimboss
parents: 842
diff changeset
169 Move the current tab page to after tab page N. Use zero to
682
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
170 make the current tab page the first one. Without N the tab
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
171 page is made the last one.
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
172
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 682
diff changeset
173
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 682
diff changeset
174 LOOPING OVER TAB PAGES:
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 682
diff changeset
175
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 682
diff changeset
176 *:tabd* *:tabdo*
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 682
diff changeset
177 :tabd[o] {cmd} Execute {cmd} in each tab page.
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 682
diff changeset
178 It works like doing this: >
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 682
diff changeset
179 :tabfirst
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 682
diff changeset
180 :{cmd}
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 682
diff changeset
181 :tabnext
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 682
diff changeset
182 :{cmd}
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 682
diff changeset
183 etc.
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 682
diff changeset
184 < This only operates in the current window of each tab page.
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 682
diff changeset
185 When an error is detected on one tab page, further tab pages
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 682
diff changeset
186 will not be visited.
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 682
diff changeset
187 The last tab page (or where an error occurred) becomes the
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 682
diff changeset
188 current tab page.
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 682
diff changeset
189 {cmd} can contain '|' to concatenate several commands.
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 682
diff changeset
190 {cmd} must not open or close tab pages or reorder them.
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 682
diff changeset
191 {not in Vi} {not available when compiled without the
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 682
diff changeset
192 |+listcmds| feature}
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 682
diff changeset
193 Also see |:windo|, |:argdo| and |:bufdo|.
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 682
diff changeset
194
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
195 ==============================================================================
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
196 3. Other items *tab-page-other*
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
197
706
ef3b59af4207 updated for version 7.0213
vimboss
parents: 698
diff changeset
198 *tabline-menu*
ef3b59af4207 updated for version 7.0213
vimboss
parents: 698
diff changeset
199 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
200 The entries are:
ef3b59af4207 updated for version 7.0213
vimboss
parents: 698
diff changeset
201 Close Close the tab page under the mouse pointer. The
ef3b59af4207 updated for version 7.0213
vimboss
parents: 698
diff changeset
202 current one if there is no label under the mouse
ef3b59af4207 updated for version 7.0213
vimboss
parents: 698
diff changeset
203 pointer.
ef3b59af4207 updated for version 7.0213
vimboss
parents: 698
diff changeset
204 New Tab Open a tab page, editing an empty buffer. It appears
ef3b59af4207 updated for version 7.0213
vimboss
parents: 698
diff changeset
205 to the left of the mouse pointer.
ef3b59af4207 updated for version 7.0213
vimboss
parents: 698
diff changeset
206 Open Tab... Like "New Tab" and additionaly use a file selector to
ef3b59af4207 updated for version 7.0213
vimboss
parents: 698
diff changeset
207 select a file to edit.
ef3b59af4207 updated for version 7.0213
vimboss
parents: 698
diff changeset
208
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
209 Diff mode works per tab page. You can see the diffs between several files
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
210 within one tab page. Other tab pages can show differences between other
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
211 files.
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
212
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 810
diff changeset
213 Variables local to a tab page start with "t:". |tabpage-variable|
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 810
diff changeset
214
824
8dd456c1e283 updated for version 7.0c13
vimboss
parents: 820
diff changeset
215 Currently there is only one option local to a tab page: 'cmdheight'.
8dd456c1e283 updated for version 7.0c13
vimboss
parents: 820
diff changeset
216
675
51794dc170f7 updated for version 7.0202
vimboss
parents: 674
diff changeset
217 The TabLeave and TabEnter autocommand events can be used to do something when
51794dc170f7 updated for version 7.0202
vimboss
parents: 674
diff changeset
218 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
219 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
220 window on the same buffer and then edit another buffer. Thus ":tabnew"
51794dc170f7 updated for version 7.0202
vimboss
parents: 674
diff changeset
221 triggers:
51794dc170f7 updated for version 7.0202
vimboss
parents: 674
diff changeset
222 WinLeave leave current window
51794dc170f7 updated for version 7.0202
vimboss
parents: 674
diff changeset
223 TabLeave leave current tab page
51794dc170f7 updated for version 7.0202
vimboss
parents: 674
diff changeset
224 TabEnter enter new tab page
51794dc170f7 updated for version 7.0202
vimboss
parents: 674
diff changeset
225 WinEnter enter window in new tab page
51794dc170f7 updated for version 7.0202
vimboss
parents: 674
diff changeset
226 BufLeave leave current buffer
51794dc170f7 updated for version 7.0202
vimboss
parents: 674
diff changeset
227 BufEnter enter new empty buffer
51794dc170f7 updated for version 7.0202
vimboss
parents: 674
diff changeset
228
678
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
229 When switching to another tab page the order is:
675
51794dc170f7 updated for version 7.0202
vimboss
parents: 674
diff changeset
230 BufLeave
51794dc170f7 updated for version 7.0202
vimboss
parents: 674
diff changeset
231 WinLeave
51794dc170f7 updated for version 7.0202
vimboss
parents: 674
diff changeset
232 TabLeave
51794dc170f7 updated for version 7.0202
vimboss
parents: 674
diff changeset
233 TabEnter
51794dc170f7 updated for version 7.0202
vimboss
parents: 674
diff changeset
234 WinEnter
51794dc170f7 updated for version 7.0202
vimboss
parents: 674
diff changeset
235 BufEnter
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
236
678
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
237 ==============================================================================
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
238 4. Setting 'tabline' *setting-tabline*
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
239
686
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
240 The 'tabline' option specifies what the line with tab pages labels looks like.
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
241 It is only used when there is no GUI tab line.
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
242
678
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
243 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
244 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
245 always.
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
246
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
247 The highlighting of the tab pages line is set with the groups TabLine
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
248 TabLineSel and TabLineFill. |hl-TabLine| |hl-TabLineSel| |hl-TabLineFill|
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
249
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
250 The 'tabline' option allows you to define your preferred way to tab pages
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
251 labels. This isn't easy, thus an example will be given here.
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
252
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
253 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
254 'tabline' option. Additionally, the |tabpagebuflist()|, |tabpagenr()| and
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
255 |tabpagewinnr()| functions are useful.
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
256
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
257 Since the number of tab labels will vary, you need to use an expresion for the
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
258 whole option. Something like: >
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
259 :set tabline=%!MyTabLine()
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
260
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
261 Then define the MyTabLine() function to list all the tab pages labels. A
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
262 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
263 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
264
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
265 function MyTabLine()
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
266 let s = ''
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
267 for i in range(tabpagenr('$'))
681
9364d114ed8d updated for version 7.0204
vimboss
parents: 678
diff changeset
268 " select the highlighting
678
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
269 if i + 1 == tabpagenr()
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
270 let s .= '%#TabLineSel#'
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
271 else
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
272 let s .= '%#TabLine#'
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
273 endif
681
9364d114ed8d updated for version 7.0204
vimboss
parents: 678
diff changeset
274
9364d114ed8d updated for version 7.0204
vimboss
parents: 678
diff changeset
275 " set the tab page number (for mouse clicks)
9364d114ed8d updated for version 7.0204
vimboss
parents: 678
diff changeset
276 let s .= '%' . (i + 1) . 'T'
9364d114ed8d updated for version 7.0204
vimboss
parents: 678
diff changeset
277
9364d114ed8d updated for version 7.0204
vimboss
parents: 678
diff changeset
278 " the label is made by MyTabLabel()
678
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
279 let s .= ' %{MyTabLabel(' . (i + 1) . ')} '
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
280 endfor
681
9364d114ed8d updated for version 7.0204
vimboss
parents: 678
diff changeset
281
9364d114ed8d updated for version 7.0204
vimboss
parents: 678
diff changeset
282 " after the last tab fill with TabLineFill and reset tab page nr
9364d114ed8d updated for version 7.0204
vimboss
parents: 678
diff changeset
283 let s .= '%#TabLineFill#%T'
9364d114ed8d updated for version 7.0204
vimboss
parents: 678
diff changeset
284
9364d114ed8d updated for version 7.0204
vimboss
parents: 678
diff changeset
285 " right-align the label to close the current tab page
9364d114ed8d updated for version 7.0204
vimboss
parents: 678
diff changeset
286 if tabpagenr('$') > 1
9364d114ed8d updated for version 7.0204
vimboss
parents: 678
diff changeset
287 let s .= '%=%#TabLine#%999Xclose'
9364d114ed8d updated for version 7.0204
vimboss
parents: 678
diff changeset
288 endif
9364d114ed8d updated for version 7.0204
vimboss
parents: 678
diff changeset
289
678
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
290 return s
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
291 endfunction
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
292
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
293 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
294
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
295 function MyTabLabel(n)
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
296 let buflist = tabpagebuflist(a:n)
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
297 let winnr = tabpagewinnr(a:n)
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
298 return bufname(buflist[winnr - 1])
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
299 endfunction
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
300
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
301 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
302 resembles the default, but without adding a + for a modified buffer or
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
303 trunctating the names. You will want to reduce the width of labels in a
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
304 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
305 space available.
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
306
686
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
307 ==============================================================================
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
308 5. Setting 'guitablabel' *setting-guitablabel*
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
309
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
310 When the GUI tab pages line is displayed, 'guitablabel' can be used to
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
311 specify the label to display for each tab page. Unlike 'tabline', which
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
312 specifies the whole tab pages line at once, 'guitablabel' is used for each
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
313 label separately.
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
314
839
1f3b1021f002 updated for version 7.0e05
vimboss
parents: 834
diff changeset
315 '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
316 This only appears when the mouse pointer hovers over the label, thus it
1f3b1021f002 updated for version 7.0e05
vimboss
parents: 834
diff changeset
317 usually is longer. Only supported on some systems though.
1f3b1021f002 updated for version 7.0e05
vimboss
parents: 834
diff changeset
318
686
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
319 See the 'statusline' option for the format of the value.
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
320
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
321 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
322 variable is also set to this number when the option is evaluated.
690
0e922220d322 updated for version 7.0208
vimboss
parents: 686
diff changeset
323 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
324
839
1f3b1021f002 updated for version 7.0e05
vimboss
parents: 834
diff changeset
325 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
326 items are also ignored.
686
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
327
690
0e922220d322 updated for version 7.0208
vimboss
parents: 686
diff changeset
328 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
329 label: >
686
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
330 :set guitablabel=%N\ %f
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
331
839
1f3b1021f002 updated for version 7.0e05
vimboss
parents: 834
diff changeset
332 An example that resembles the default 'guitablabel': Show the number of
1f3b1021f002 updated for version 7.0e05
vimboss
parents: 834
diff changeset
333 windows in the tab page and a '+' if there is a modifed buffer: >
686
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
334
690
0e922220d322 updated for version 7.0208
vimboss
parents: 686
diff changeset
335 function GuiTabLabel()
686
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
336 let label = ''
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
337 let bufnrlist = tabpagebuflist(v:lnum)
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
338
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
339 " Add '+' if one of the buffers in the tab page is modified
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
340 for bufnr in bufnrlist
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
341 if getbufvar(bufnr, "&modified")
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
342 let label = '+'
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
343 break
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
344 endif
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
345 endfor
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
346
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
347 " Append the number of windows in the tab page if more than one
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
348 let wincount = tabpagewinnr(v:lnum, '$')
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
349 if wincount > 1
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
350 let label .= wincount
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
351 endif
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
352 if label != ''
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
353 let label .= ' '
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
354 endif
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
355
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
356 " Append the buffer name
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
357 return label . bufname(bufnrlist[tabpagewinnr(v:lnum) - 1])
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
358 endfunction
690
0e922220d322 updated for version 7.0208
vimboss
parents: 686
diff changeset
359
686
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
360 set guitablabel=%{GuiTabLabel()}
690
0e922220d322 updated for version 7.0208
vimboss
parents: 686
diff changeset
361
0e922220d322 updated for version 7.0208
vimboss
parents: 686
diff changeset
362 Note that the function must be defined before setting the option, otherwise
0e922220d322 updated for version 7.0208
vimboss
parents: 686
diff changeset
363 you get an error message for the function not being known.
0e922220d322 updated for version 7.0208
vimboss
parents: 686
diff changeset
364
857
b933657f7c9d updated for version 7.0g01
vimboss
parents: 856
diff changeset
365 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
366
b933657f7c9d updated for version 7.0g01
vimboss
parents: 856
diff changeset
367 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
368 tab page local variable. |t:var|
b933657f7c9d updated for version 7.0g01
vimboss
parents: 856
diff changeset
369
686
473847b050f8 updated for version 7.0207
vimboss
parents: 685
diff changeset
370
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
371 vim:tw=78:ts=8:ft=help:norl: