annotate runtime/doc/tabpage.txt @ 682:f1b013312711

updated for version 7.0205
author vimboss
date Thu, 23 Feb 2006 21:26:58 +0000
parents 9364d114ed8d
children d7e33248b9c8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
682
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
1 *tabpage.txt* For Vim version 7.0aa. Last change: 2006 Feb 23
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|
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
17
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
18 {Vi does not have any of these commands}
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|
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
34 commands, |:windo|, |:all| and |:ball|. The commands that are aware of
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
35 other tab pages than the current one are mentioned below.
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
36
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
37 Tabs are also a nice way to edit a buffer temporarily without changing the
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
38 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
39 close the tab page.
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
40
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
41 ==============================================================================
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
42 2. Commands *tab-page-commands*
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
43
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
44 OPENING A NEW TAB PAGE:
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
45
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
46 When starting Vim "vim -p filename ..." opens each file argument in a separate
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
47 tab page (up to 10). |-p|
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
48
682
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
49 A double click with the mouse in the tab pages line opens a new, empty tab
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
50 page. It is placed left of the position of the click. The first click may
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
51 select another tab page first, causing an extra screen update.
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
52
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
53 :tabe[dit] *:tabe* *:tabedit* *:tabnew*
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
54 :tabnew Open a new tab page with an empty window, after the current
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
55 tab page.
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
56
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
57 :tabe[dit] [++opt] [+cmd] {file}
682
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
58 :tabnew [++opt] [+cmd] {file}
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
59 Open a new tab page and edit {file}, like with |:edit|.
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
60
675
51794dc170f7 updated for version 7.0202
vimboss
parents: 674
diff changeset
61 :tabf[ind] [++opt] [+cmd] {file} *:tabf* *:tabfind*
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
62 Open a new tab page and edit {file} in 'path', like with
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
63 |:find|.
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
64 {not available when the |+file_in_path| feature was disabled
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
65 at compile time}
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
66
682
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
67 :[count]tab {cmd} *:tab*
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
68 Execute {cmd} and when it opens a new window open a new tab
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
69 page instead. Doesn't work for |:diffsplit| or |:diffpatch|.
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
70 When [count] is omitted the tab page appears after the current
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
71 one. When [count] is specified the new tab page comes after
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
72 tab page [count]. Use ":0tab cmd" to get the new tab page as
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
73 the first one. Examples: >
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
74 :tab split " opens current buffer in new tab page
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
75 :tab help gt " opens tab page with help for "gt"
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
76
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
77
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
78 CLOSING A TAB PAGE:
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
79
682
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
80 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
81 only one tab page.
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
82
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
83 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
84 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
85 something else.
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
86
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
87 *:tabc* *:tabclose*
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
88 :tabc[lose][!] Close current tab page.
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
89 This command fails when:
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
90 - There is only one tab page on the screen. *E784*
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
91 - When 'hidden' is not set, [!] is not used, a buffer has
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
92 changes, and there is no other window on this buffer.
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
93 Changes to the buffer are not written and won't get lost, so
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
94 this is a "safe" command.
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
95
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
96 :tabc[lose][!] {count}
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
97 Close tab page {count}. Fails in the same way as ':tabclose"
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
98 above.
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
99
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
100 *:tabo* *:tabonly*
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
101 :tabo[nly][!] Close all other tab pages.
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
102 When the 'hidden' option is set, all buffers in closed windows
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
103 become hidden.
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
104 When 'hidden' is not set, and the 'autowrite' option is set,
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
105 modified buffers are written. Otherwise, windows that have
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
106 buffers that are modified are not removed, unless the [!] is
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
107 given, then they become hidden. But modified buffers are
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
108 never abandoned, so changes cannot get lost.
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
109
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
110
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
111 SWITCHING TO ANOTHER TAB PAGE:
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
112
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
113 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
114 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
115 next tab page. |'tabline'|
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
116
682
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
117 :tabn[ext] *:tabn* *:tabnext* *gt*
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
118 gt Go to the next tab page. Wraps around from the last to the
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
119 first one.
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
120
682
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
121 :tabn[ext] {count}
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
122 {count}gt Go to tab page {count}. The first tab page has number one.
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
123
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
124
682
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
125 :tabp[revious] *:tabp* *:tabprevious* *gT*
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
126 :tabN[ext] *:tabN* *:tabNext*
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
127 gT Go to the previous tab page. Wraps around from the first one
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
128 to the last one.
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
129
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
130 :tabp[revious] {count}
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
131 :tabN[ext] {count}
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
132 {count}gT Go {count} tab pages back. Wraps around from the first one
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
133 to the last one.
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
134
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
135
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
136 Other commands:
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
137 *:tabs*
682
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
138 :tabs List the tab pages and the windows they contain.
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
139 Shows a ">" for the current window.
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
140 Shows a "+" for modified buffers.
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
141
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
142
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
143 REORDERING TAB PAGES:
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
144
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
145 *:tabm* *:tabmove*
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
146 :tabmove N Move the current tab page to after tab page N. Use zero to
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
147 make the current tab page the first one. Without N the tab
f1b013312711 updated for version 7.0205
vimboss
parents: 681
diff changeset
148 page is made the last one.
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
149
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
150 ==============================================================================
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
151 3. Other items *tab-page-other*
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
152
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
153 Diff mode works per tab page. You can see the diffs between several files
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
154 within one tab page. Other tab pages can show differences between other
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
155 files.
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
156
675
51794dc170f7 updated for version 7.0202
vimboss
parents: 674
diff changeset
157 The TabLeave and TabEnter autocommand events can be used to do something when
51794dc170f7 updated for version 7.0202
vimboss
parents: 674
diff changeset
158 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
159 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
160 window on the same buffer and then edit another buffer. Thus ":tabnew"
51794dc170f7 updated for version 7.0202
vimboss
parents: 674
diff changeset
161 triggers:
51794dc170f7 updated for version 7.0202
vimboss
parents: 674
diff changeset
162 WinLeave leave current window
51794dc170f7 updated for version 7.0202
vimboss
parents: 674
diff changeset
163 TabLeave leave current tab page
51794dc170f7 updated for version 7.0202
vimboss
parents: 674
diff changeset
164 TabEnter enter new tab page
51794dc170f7 updated for version 7.0202
vimboss
parents: 674
diff changeset
165 WinEnter enter window in new tab page
51794dc170f7 updated for version 7.0202
vimboss
parents: 674
diff changeset
166 BufLeave leave current buffer
51794dc170f7 updated for version 7.0202
vimboss
parents: 674
diff changeset
167 BufEnter enter new empty buffer
51794dc170f7 updated for version 7.0202
vimboss
parents: 674
diff changeset
168
678
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
169 When switching to another tab page the order is:
675
51794dc170f7 updated for version 7.0202
vimboss
parents: 674
diff changeset
170 BufLeave
51794dc170f7 updated for version 7.0202
vimboss
parents: 674
diff changeset
171 WinLeave
51794dc170f7 updated for version 7.0202
vimboss
parents: 674
diff changeset
172 TabLeave
51794dc170f7 updated for version 7.0202
vimboss
parents: 674
diff changeset
173 TabEnter
51794dc170f7 updated for version 7.0202
vimboss
parents: 674
diff changeset
174 WinEnter
51794dc170f7 updated for version 7.0202
vimboss
parents: 674
diff changeset
175 BufEnter
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
176
678
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
177 ==============================================================================
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
178 4. Setting 'tabline' *setting-tabline*
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
179
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
180 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
181 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
182 always.
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
183
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
184 The highlighting of the tab pages line is set with the groups TabLine
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
185 TabLineSel and TabLineFill. |hl-TabLine| |hl-TabLineSel| |hl-TabLineFill|
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
186
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
187 The 'tabline' option allows you to define your preferred way to tab pages
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
188 labels. This isn't easy, thus an example will be given here.
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
189
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
190 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
191 'tabline' option. Additionally, the |tabpagebuflist()|, |tabpagenr()| and
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
192 |tabpagewinnr()| functions are useful.
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
193
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
194 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
195 whole option. Something like: >
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
196 :set tabline=%!MyTabLine()
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
197
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
198 Then define the MyTabLine() function to list all the tab pages labels. A
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
199 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
200 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
201
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
202 function MyTabLine()
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
203 let s = ''
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
204 for i in range(tabpagenr('$'))
681
9364d114ed8d updated for version 7.0204
vimboss
parents: 678
diff changeset
205 " select the highlighting
678
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
206 if i + 1 == tabpagenr()
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
207 let s .= '%#TabLineSel#'
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
208 else
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
209 let s .= '%#TabLine#'
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
210 endif
681
9364d114ed8d updated for version 7.0204
vimboss
parents: 678
diff changeset
211
9364d114ed8d updated for version 7.0204
vimboss
parents: 678
diff changeset
212 " set the tab page number (for mouse clicks)
9364d114ed8d updated for version 7.0204
vimboss
parents: 678
diff changeset
213 let s .= '%' . (i + 1) . 'T'
9364d114ed8d updated for version 7.0204
vimboss
parents: 678
diff changeset
214
9364d114ed8d updated for version 7.0204
vimboss
parents: 678
diff changeset
215 " the label is made by MyTabLabel()
678
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
216 let s .= ' %{MyTabLabel(' . (i + 1) . ')} '
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
217 endfor
681
9364d114ed8d updated for version 7.0204
vimboss
parents: 678
diff changeset
218
9364d114ed8d updated for version 7.0204
vimboss
parents: 678
diff changeset
219 " after the last tab fill with TabLineFill and reset tab page nr
9364d114ed8d updated for version 7.0204
vimboss
parents: 678
diff changeset
220 let s .= '%#TabLineFill#%T'
9364d114ed8d updated for version 7.0204
vimboss
parents: 678
diff changeset
221
9364d114ed8d updated for version 7.0204
vimboss
parents: 678
diff changeset
222 " right-align the label to close the current tab page
9364d114ed8d updated for version 7.0204
vimboss
parents: 678
diff changeset
223 if tabpagenr('$') > 1
9364d114ed8d updated for version 7.0204
vimboss
parents: 678
diff changeset
224 let s .= '%=%#TabLine#%999Xclose'
9364d114ed8d updated for version 7.0204
vimboss
parents: 678
diff changeset
225 endif
9364d114ed8d updated for version 7.0204
vimboss
parents: 678
diff changeset
226
678
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
227 return s
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
228 endfunction
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
229
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
230 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
231
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
232 function MyTabLabel(n)
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
233 let buflist = tabpagebuflist(a:n)
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
234 let winnr = tabpagewinnr(a:n)
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
235 return bufname(buflist[winnr - 1])
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
236 endfunction
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
237
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
238 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
239 resembles the default, but without adding a + for a modified buffer or
93a1bf1cb633 updated for version 7.0203
vimboss
parents: 675
diff changeset
240 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
241 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
242 space available.
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
243
4b8583e82cb8 updated for version 7.0201
vimboss
parents:
diff changeset
244 vim:tw=78:ts=8:ft=help:norl: