· 8 years ago · Jun 18, 2018, 12:32 PM
1## /usr/share/vim/vim71/doc/windows.txt [plain_text]
2*windows.txt* For Vim version 7.1. Last change: 2007 Mar 17
3
4
5 VIM REFERENCE MANUAL by Bram Moolenaar
6
7
8Editing with multiple windows and buffers. *windows* *buffers*
9
10The commands which have been added to use multiple windows and buffers are
11explained here. Additionally, there are explanations for commands that work
12differently when used in combination with more than one window.
13
14The basics are explained in chapter 7 and 8 of the user manual |usr_07.txt|
15|usr_08.txt|.
16
171. Introduction |windows-intro|
182. Starting Vim |windows-starting|
193. Opening and closing a window |opening-window|
204. Moving cursor to other windows |window-move-cursor|
215. Moving windows around |window-moving|
226. Window resizing |window-resize|
237. Argument and buffer list commands |buffer-list|
248. Do a command in all buffers or windows |list-repeat|
259. Tag or file name under the cursor |window-tag|
2610. The preview window |preview-window|
2711. Using hidden buffers |buffer-hidden|
2812. Special kinds of buffers |special-buffers|
29
30{Vi does not have any of these commands}
31{not able to use multiple windows when the |+windows| feature was disabled at
32compile time}
33{not able to use vertically split windows when the |+vertsplit| feature was
34disabled at compile time}
35
36==============================================================================
371. Introduction *windows-intro* *window*
38
39A window is a viewport onto a buffer. You can use multiple windows on one
40buffer, or several windows on different buffers.
41
42A buffer is a file loaded into memory for editing. The original file remains
43unchanged until you write the buffer to the file.
44
45A buffer can be in one of three states:
46
47 *active-buffer*
48active: The buffer is displayed in a window. If there is a file for this
49 buffer, it has been read into the buffer. The buffer may have been
50 modified since then and thus be different from the file.
51 *hidden-buffer*
52hidden: The buffer is not displayed. If there is a file for this buffer, it
53 has been read into the buffer. Otherwise it's the same as an active
54 buffer, you just can't see it.
55 *inactive-buffer*
56inactive: The buffer is not displayed and does not contain anything. Options
57 for the buffer are remembered if the file was once loaded. It can
58 contain marks from the |viminfo| file. But the buffer doesn't
59 contain text.
60
61In a table:
62
63state displayed loaded ":buffers" ~
64 in window shows ~
65active yes yes 'a'
66hidden no yes 'h'
67inactive no no ' '
68
69Note: All CTRL-W commands can also be executed with |:wincmd|, for those
70places where a Normal mode command can't be used or is inconvenient.
71
72The main Vim window can hold several split windows. There are also tab pages
73|tab-page|, each of which can hold multiple windows.
74
75==============================================================================
762. Starting Vim *windows-starting*
77
78By default, Vim starts with one window, just like Vi.
79
80The "-o" and "-O" arguments to Vim can be used to open a window for each file
81in the argument list. The "-o" argument will split the windows horizontally;
82the "-O" argument will split the windows vertically. If both "-o" and "-O"
83are given, the last one encountered will be used to determine the split
84orientation. For example, this will open three windows, split horizontally: >
85 vim -o file1 file2 file3
86
87"-oN", where N is a decimal number, opens N windows split horizontally. If
88there are more file names than windows, only N windows are opened and some
89files do not get a window. If there are more windows than file names, the
90last few windows will be editing empty buffers. Similarly, "-ON" opens N
91windows split vertically, with the same restrictions.
92
93If there are many file names, the windows will become very small. You might
94want to set the 'winheight' and/or 'winwidth' options to create a workable
95situation.
96
97Buf/Win Enter/Leave |autocommand|s are not executed when opening the new
98windows and reading the files, that's only done when they are really entered.
99
100 *status-line*
101A status line will be used to separate windows. The 'laststatus' option tells
102when the last window also has a status line:
103 'laststatus' = 0 never a status line
104 'laststatus' = 1 status line if there is more than one window
105 'laststatus' = 2 always a status line
106
107You can change the contents of the status line with the 'statusline' option.
108This option can be local to the window, so that you can have a different
109status line in each window.
110
111Normally, inversion is used to display the status line. This can be changed
112with the 's' character in the 'highlight' option. For example, "sb" sets it to
113bold characters. If no highlighting is used for the status line ("sn"), the
114'^' character is used for the current window, and '=' for other windows. If
115the mouse is supported and enabled with the 'mouse' option, a status line can
116be dragged to resize windows.
117
118Note: If you expect your status line to be in reverse video and it isn't,
119check if the 'highlight' option contains "si". In version 3.0, this meant to
120invert the status line. Now it should be "sr", reverse the status line, as
121"si" now stands for italic! If italic is not available on your terminal, the
122status line is inverted anyway; you will only see this problem on terminals
123that have termcap codes for italics.
124
125==============================================================================
1263. Opening and closing a window *opening-window* *E36*
127
128CTRL-W s *CTRL-W_s*
129CTRL-W S *CTRL-W_S*
130CTRL-W CTRL-S *CTRL-W_CTRL-S*
131:[N]sp[lit] [++opt] [+cmd] *:sp* *:split*
132 Split current window in two. The result is two viewports on
133 the same file. Make new window N high (default is to use half
134 the height of the current window). Reduces the current window
135 height to create room (and others, if the 'equalalways' option
136 is set, 'eadirection' isn't "hor", and one of them is higher
137 than the current or the new window).
138 Note: CTRL-S does not work on all terminals and might block
139 further input, use CTRL-Q to get going again.
140 Also see |++opt| and |+cmd|.
141
142CTRL-W CTRL-V *CTRL-W_CTRL-V*
143CTRL-W v *CTRL-W_v*
144:[N]vs[plit] [++opt] [+cmd] [file] *:vs* *:vsplit*
145 Like |:split|, but split vertically. The windows will be
146 spread out horizontally if
147 1. a width was not specified,
148 2. 'equalalways' is set,
149 3. 'eadirection' isn't "ver", and
150 4. one of the other windows are wider than the current or new
151 window.
152 Note: In other places CTRL-Q does the same as CTRL-V, but here
153 it doesn't!
154
155CTRL-W n *CTRL-W_n*
156CTRL-W CTRL_N *CTRL-W_CTRL-N*
157:[N]new [++opt] [+cmd] *:new*
158 Create a new window and start editing an empty file in it.
159 Make new window N high (default is to use half the existing
160 height). Reduces the current window height to create room (and
161 others, if the 'equalalways' option is set and 'eadirection'
162 isn't "hor").
163 Also see |++opt| and |+cmd|.
164 If 'fileformats' is not empty, the first format given will be
165 used for the new buffer. If 'fileformats' is empty, the
166 'fileformat' of the current buffer is used. This can be
167 overridden with the |++opt| argument.
168 Autocommands are executed in this order:
169 1. WinLeave for the current window
170 2. WinEnter for the new window
171 3. BufLeave for the current buffer
172 4. BufEnter for the new buffer
173 This behaves like a ":split" first, and then a ":e" command.
174
175:[N]vne[w] [++opt] [+cmd] [file] *:vne* *:vnew*
176 Like |:new|, but split vertically. If 'equalalways' is set
177 and 'eadirection' isn't "ver" the windows will be spread out
178 horizontally, unless a width was specified.
179
180:[N]new [++opt] [+cmd] {file}
181:[N]sp[lit] [++opt] [+cmd] {file} *:split_f*
182 Create a new window and start editing file {file} in it.
183 If [+cmd] is given, execute the command when the file has been
184 loaded |+cmd|.
185 Also see |++opt|.
186 Make new window N high (default is to use half the existing
187 height). Reduces the current window height to create room
188 (and others, if the 'equalalways' option is set).
189
190:[N]sv[iew] [++opt] [+cmd] {file} *:sv* *:sview* *splitview*
191 Same as ":split", but set 'readonly' option for this buffer.
192
193:[N]sf[ind] [++opt] [+cmd] {file} *:sf* *:sfind* *splitfind*
194 Same as ":split", but search for {file} in 'path'. Doesn't
195 split if {file} is not found.
196
197CTRL-W CTRL-^ *CTRL-W_CTRL-^* *CTRL-W_^*
198CTRL-W ^ Does ":split #", split window in two and edit alternate file.
199 When a count is given, it becomes ":split #N", split window
200 and edit buffer N.
201
202Note that the 'splitbelow' and 'splitright' options influence where a new
203window will appear.
204
205 *:vert* *:vertical*
206:vert[ical] {cmd}
207 Execute {cmd}. If it contains a command that splits a window,
208 it will be split vertically.
209 Doesn't work for |:execute| and |:normal|.
210
211:lefta[bove] {cmd} *:lefta* *:leftabove*
212:abo[veleft] {cmd} *:abo* *:aboveleft*
213 Execute {cmd}. If it contains a command that splits a window,
214 it will be opened left (vertical split) or above (horizontal
215 split) the current window. Overrules 'splitbelow' and
216 'splitright'.
217 Doesn't work for |:execute| and |:normal|.
218
219:rightb[elow] {cmd} *:rightb* *:rightbelow*
220:bel[owright] {cmd} *:bel* *:belowright*
221 Execute {cmd}. If it contains a command that splits a window,
222 it will be opened right (vertical split) or below (horizontal
223 split) the current window. Overrules 'splitbelow' and
224 'splitright'.
225 Doesn't work for |:execute| and |:normal|.
226
227 *:topleft* *E442*
228:to[pleft] {cmd}
229 Execute {cmd}. If it contains a command that splits a window,
230 it will appear at the top and occupy the full width of the Vim
231 window. When the split is vertical the window appears at the
232 far left and occupies the full height of the Vim window.
233 Doesn't work for |:execute| and |:normal|.
234
235 *:botright*
236:bo[tright] {cmd}
237 Execute {cmd}. If it contains a command that splits a window,
238 it will appear at the bottom and occupy the full width of the
239 Vim window. When the split is vertical the window appears at
240 the far right and occupies the full height of the Vim window.
241 Doesn't work for |:execute| and |:normal|.
242
243These command modifiers can be combined to make a vertically split window
244occupy the full height. Example: >
245 :vertical topleft edit tags
246Opens a vertically split, full-height window on the "tags" file at the far
247left of the Vim window.
248
249
250Closing a window
251----------------
252
253CTRL-W q *CTRL-W_q*
254CTRL-W CTRL-Q *CTRL-W_CTRL-Q*
255:q[uit] Quit current window. When quitting the last window (not
256 counting a help window), exit Vim.
257 When 'hidden' is set, and there is only one window for the
258 current buffer, it becomes hidden.
259 When 'hidden' is not set, and there is only one window for the
260 current buffer, and the buffer was changed, the command fails.
261 (Note: CTRL-Q does not work on all terminals)
262
263:q[uit]! Quit current window. If this was the last window for a buffer,
264 any changes to that buffer are lost. When quitting the last
265 window (not counting help windows), exit Vim. The contents of
266 the buffer are lost, even when 'hidden' is set.
267
268CTRL-W c *CTRL-W_c* *:clo* *:close*
269:clo[se][!] Close current window. When the 'hidden' option is set, or
270 when the buffer was changed and the [!] is used, the buffer
271 becomes hidden (unless there is another window editing it).
272 When there is only one window in the current tab page and
273 there is another tab page, this closes the current tab page.
274 |tab-page|.
275 This command fails when: *E444*
276 - There is only one window on the screen.
277 - When 'hidden' is not set, [!] is not used, the buffer has
278 changes, and there is no other window on this buffer.
279 Changes to the buffer are not written and won't get lost, so
280 this is a "safe" command.
281
282CTRL-W CTRL-C *CTRL-W_CTRL-C*
283 You might have expected that CTRL-W CTRL-C closes the current
284 window, but that does not work, because the CTRL-C cancels the
285 command.
286
287 *:hide*
288:hid[e] Quit current window, unless it is the last window on the
289 screen. The buffer becomes hidden (unless there is another
290 window editing it or 'bufhidden' is "unload" or "delete").
291 If the window is the last one in the current tab page the tab
292 page is closed. |tab-page|
293 The value of 'hidden' is irrelevant for this command.
294 Changes to the buffer are not written and won't get lost, so
295 this is a "safe" command.
296
297:hid[e] {cmd} Execute {cmd} with 'hidden' is set. The previous value of
298 'hidden' is restored after {cmd} has been executed.
299 Example: >
300 :hide edit Makefile
301< This will edit "Makefile", and hide the current buffer if it
302 has any changes.
303
304CTRL-W o *CTRL-W_o* *E445*
305CTRL-W CTRL-O *CTRL-W_CTRL-O* *:on* *:only*
306:on[ly][!] Make the current window the only one on the screen. All other
307 windows are closed.
308 When the 'hidden' option is set, all buffers in closed windows
309 become hidden.
310 When 'hidden' is not set, and the 'autowrite' option is set,
311 modified buffers are written. Otherwise, windows that have
312 buffers that are modified are not removed, unless the [!] is
313 given, then they become hidden. But modified buffers are
314 never abandoned, so changes cannot get lost.
315
316==============================================================================
3174. Moving cursor to other windows *window-move-cursor*
318
319CTRL-W <Down> *CTRL-W_<Down>*
320CTRL-W CTRL-J *CTRL-W_CTRL-J* *CTRL-W_j*
321CTRL-W j Move cursor to Nth window below current one. Uses the cursor
322 position to select between alternatives.
323
324CTRL-W <Up> *CTRL-W_<Up>*
325CTRL-W CTRL-K *CTRL-W_CTRL-K* *CTRL-W_k*
326CTRL-W k Move cursor to Nth window above current one. Uses the cursor
327 position to select between alternatives.
328
329CTRL-W <Left> *CTRL-W_<Left>*
330CTRL-W CTRL-H *CTRL-W_CTRL-H*
331CTRL-W <BS> *CTRL-W_<BS>* *CTRL-W_h*
332CTRL-W h Move cursor to Nth window left of current one. Uses the
333 cursor position to select between alternatives.
334
335CTRL-W <Right> *CTRL-W_<Right>*
336CTRL-W CTRL-L *CTRL-W_CTRL-L* *CTRL-W_l*
337CTRL-W l Move cursor to Nth window right of current one. Uses the
338 cursor position to select between alternatives.
339
340CTRL-W w *CTRL-W_w* *CTRL-W_CTRL-W*
341CTRL-W CTRL-W Without count: move cursor to window below/right of the
342 current one. If there is no window below or right, go to
343 top-left window.
344 With count: go to Nth window (windows are numbered from
345 top-left to bottom-right). To obtain the window number see
346 |bufwinnr()| and |winnr()|.
347
348 *CTRL-W_W*
349CTRL-W W Without count: move cursor to window above/left of current
350 one. If there is no window above or left, go to bottom-right
351 window. With count: go to Nth window (windows are numbered
352 from top-left to bottom-right).
353
354CTRL-W t *CTRL-W_t* *CTRL-W_CTRL-T*
355CTRL-W CTRL-T Move cursor to top-left window.
356
357CTRL-W b *CTRL-W_b* *CTRL-W_CTRL-B*
358CTRL-W CTRL-B Move cursor to bottom-right window.
359
360CTRL-W p *CTRL-W_p* *CTRL-W_CTRL-P*
361CTRL-W CTRL-P Go to previous (last accessed) window.
362
363 *CTRL-W_P* *E441*
364CTRL-W P Go to preview window. When there is no preview window this is
365 an error.
366 {not available when compiled without the |+quickfix| feature}
367
368If Visual mode is active and the new window is not for the same buffer, the
369Visual mode is ended. If the window is on the same buffer, the cursor
370position is set to keep the same Visual area selected.
371
372 *:winc* *:wincmd*
373These commands can also be executed with ":wincmd":
374
375:[count]winc[md] {arg}
376 Like executing CTRL-W [count] {arg}. Example: >
377 :wincmd j
378< Moves to the window below the current one.
379 This command is useful when a Normal mode cannot be used (for
380 the |CursorHold| autocommand event). Or when a Normal mode
381 command is inconvenient.
382 The count can also be a window number. Example: >
383 :exe nr . "wincmd w"
384< This goes to window "nr".
385
386==============================================================================
3875. Moving windows around *window-moving*
388
389CTRL-W r *CTRL-W_r* *CTRL-W_CTRL-R* *E443*
390CTRL-W CTRL-R Rotate windows downwards/rightwards. The first window becomes
391 the second one, the second one becomes the third one, etc.
392 The last window becomes the first window. The cursor remains
393 in the same window.
394 This only works within the row or column of windows that the
395 current window is in.
396
397 *CTRL-W_R*
398CTRL-W R Rotate windows upwards/leftwards. The second window becomes
399 the first one, the third one becomes the second one, etc. The
400 first window becomes the last window. The cursor remains in
401 the same window.
402 This only works within the row or column of windows that the
403 current window is in.
404
405CTRL-W x *CTRL-W_x* *CTRL-W_CTRL-X*
406CTRL-W CTRL-X Without count: Exchange current window with next one. If there
407 is no next window, exchange with previous window.
408 With count: Exchange current window with Nth window (first
409 window is 1). The cursor is put in the other window.
410 When vertical and horizontal window splits are mixed, the
411 exchange is only done in the row or column of windows that the
412 current window is in.
413
414The following commands can be used to change the window layout. For example,
415when there are two vertically split windows, CTRL-W K will change that in
416horizontally split windows. CTRL-W H does it the other way around.
417
418 *CTRL-W_K*
419CTRL-W K Move the current window to be at the very top, using the full
420 width of the screen. This works like closing the current
421 window and then creating another one with ":topleft split",
422 except that the current window contents is used for the new
423 window.
424
425 *CTRL-W_J*
426CTRL-W J Move the current window to be at the very bottom, using the
427 full width of the screen. This works like closing the current
428 window and then creating another one with ":botright split",
429 except that the current window contents is used for the new
430 window.
431
432 *CTRL-W_H*
433CTRL-W H Move the current window to be at the far left, using the
434 full height of the screen. This works like closing the
435 current window and then creating another one with
436 ":vert topleft split", except that the current window contents
437 is used for the new window.
438 {not available when compiled without the +vertsplit feature}
439
440 *CTRL-W_L*
441CTRL-W L Move the current window to be at the far right, using the full
442 height of the screen. This works like closing the
443 current window and then creating another one with
444 ":vert botright split", except that the current window
445 contents is used for the new window.
446 {not available when compiled without the +vertsplit feature}
447
448 *CTRL-W_T*
449CTRL-W T Move the current window to a new tab page. This fails if
450 there is only one window in the current tab page.
451 When a count is specified the new tab page will be opened
452 before the tab page with this index. Otherwise it comes after
453 the current tab page.
454
455==============================================================================
4566. Window resizing *window-resize*
457
458 *CTRL-W_=*
459CTRL-W = Make all windows (almost) equally high and wide, but use
460 'winheight' and 'winwidth' for the current window.
461 Windows with 'winfixheight' set keep their height and windows
462 with 'winfixwidth' set keep their width.
463
464:res[ize] -N *:res* *:resize* *CTRL-W_-*
465CTRL-W - Decrease current window height by N (default 1).
466 If used after 'vertical': decrease width by N.
467
468:res[ize] +N *CTRL-W_+*
469CTRL-W + Increase current window height by N (default 1).
470 If used after 'vertical': increase width by N.
471
472:res[ize] [N]
473CTRL-W CTRL-_ *CTRL-W_CTRL-_* *CTRL-W__*
474CTRL-W _ Set current window height to N (default: highest possible).
475
476z{nr}<CR> Set current window height to {nr}.
477
478 *CTRL-W_<*
479CTRL-W < Decrease current window width by N (default 1).
480
481 *CTRL-W_>*
482CTRL-W > Increase current window width by N (default 1).
483
484:vertical res[ize] [N] *:vertical-resize* *CTRL-W_bar*
485CTRL-W | Set current window width to N (default: widest possible).
486
487You can also resize a window by dragging a status line up or down with the
488mouse. Or by dragging a vertical separator line left or right. This only
489works if the version of Vim that is being used supports the mouse and the
490'mouse' option has been set to enable it.
491
492The option 'winheight' ('wh') is used to set the minimal window height of the
493current window. This option is used each time another window becomes the
494current window. If the option is '0', it is disabled. Set 'winheight' to a
495very large value, e.g., '9999', to make the current window always fill all
496available space. Set it to a reasonable value, e.g., '10', to make editing in
497the current window comfortable.
498
499The equivalent 'winwidth' ('wiw') option is used to set the minimal width of
500the current window.
501
502When the option 'equalalways' ('ea') is set, all the windows are automatically
503made the same size after splitting or closing a window. If you don't set this
504option, splitting a window will reduce the size of the current window and
505leave the other windows the same. When closing a window, the extra lines are
506given to the window above it.
507
508The 'eadirection' option limits the direction in which the 'equalalways'
509option is applied. The default "both" resizes in both directions. When the
510value is "ver" only the heights of windows are equalized. Use this when you
511have manually resized a vertically split window and want to keep this width.
512Likewise, "hor" causes only the widths of windows to be equalized.
513
514The option 'cmdheight' ('ch') is used to set the height of the command-line.
515If you are annoyed by the |hit-enter| prompt for long messages, set this
516option to 2 or 3.
517
518If there is only one window, resizing that window will also change the command
519line height. If there are several windows, resizing the current window will
520also change the height of the window below it (and sometimes the window above
521it).
522
523The minimal height and width of a window is set with 'winminheight' and
524'winminwidth'. These are hard values, a window will never become smaller.
525
526==============================================================================
5277. Argument and buffer list commands *buffer-list*
528
529 args list buffer list meaning ~
5301. :[N]argument [N] 11. :[N]buffer [N] to arg/buf N
5312. :[N]next [file ..] 12. :[N]bnext [N] to Nth next arg/buf
5323. :[N]Next [N] 13. :[N]bNext [N] to Nth previous arg/buf
5334. :[N]previous [N] 14. :[N]bprevious [N] to Nth previous arg/buf
5345. :rewind / :first 15. :brewind / :bfirst to first arg/buf
5356. :last 16. :blast to last arg/buf
5367. :all 17. :ball edit all args/buffers
537 18. :unhide edit all loaded buffers
538 19. :[N]bmod [N] to Nth modified buf
539
540 split & args list split & buffer list meaning ~
54121. :[N]sargument [N] 31. :[N]sbuffer [N] split + to arg/buf N
54222. :[N]snext [file ..] 32. :[N]sbnext [N] split + to Nth next arg/buf
54323. :[N]sNext [N] 33. :[N]sbNext [N] split + to Nth previous arg/buf
54424. :[N]sprevious [N] 34. :[N]sbprevious [N] split + to Nth previous arg/buf
54525. :srewind / :sfirst 35. :sbrewind / :sbfirst split + to first arg/buf
54626. :slast 36. :sblast split + to last arg/buf
54727. :sall 37. :sball edit all args/buffers
548 38. :sunhide edit all loaded buffers
549 39. :[N]sbmod [N] split + to Nth modified buf
550
55140. :args list of arguments
55241. :buffers list of buffers
553
554The meaning of [N] depends on the command:
555 [N] is number of buffers to go forward/backward on ?2, ?3, and ?4
556 [N] is an argument number, defaulting to current argument, for 1 and 21
557 [N] is a buffer number, defaulting to current buffer, for 11 and 31
558 [N] is a count for 19 and 39
559
560Note: ":next" is an exception, because it must accept a list of file names
561for compatibility with Vi.
562
563
564The argument list and multiple windows
565--------------------------------------
566
567The current position in the argument list can be different for each window.
568Remember that when doing ":e file", the position in the argument list stays
569the same, but you are not editing the file at that position. To indicate
570this, the file message (and the title, if you have one) shows
571"(file (N) of M)", where "(N)" is the current position in the file list, and
572"M" the number of files in the file list.
573
574All the entries in the argument list are added to the buffer list. Thus, you
575can also get to them with the buffer list commands, like ":bnext".
576
577:[N]al[l][!] [N] *:al* *:all* *:sal* *:sall*
578:[N]sal[l][!] [N]
579 Rearrange the screen to open one window for each argument.
580 All other windows are closed. When a count is given, this is
581 the maximum number of windows to open.
582 With the |:tab| modifier open a tab page for each argument.
583 When there are more arguments than 'tabpagemax' further ones
584 become split windows in the last tab page.
585 When the 'hidden' option is set, all buffers in closed windows
586 become hidden.
587 When 'hidden' is not set, and the 'autowrite' option is set,
588 modified buffers are written. Otherwise, windows that have
589 buffers that are modified are not removed, unless the [!] is
590 given, then they become hidden. But modified buffers are
591 never abandoned, so changes cannot get lost.
592 [N] is the maximum number of windows to open. 'winheight'
593 also limits the number of windows opened ('winwidth' if
594 |:vertical| was prepended).
595 Buf/Win Enter/Leave autocommands are not executed for the new
596 windows here, that's only done when they are really entered.
597
598:[N]sa[rgument][!] [++opt] [+cmd] [N] *:sa* *:sargument*
599 Short for ":split | argument [N]": split window and go to Nth
600 argument. But when there is no such argument, the window is
601 not split. Also see |++opt| and |+cmd|.
602
603:[N]sn[ext][!] [++opt] [+cmd] [file ..] *:sn* *:snext*
604 Short for ":split | [N]next": split window and go to Nth next
605 argument. But when there is no next file, the window is not
606 split. Also see |++opt| and |+cmd|.
607
608:[N]spr[evious][!] [++opt] [+cmd] [N] *:spr* *:sprevious*
609:[N]sN[ext][!] [++opt] [+cmd] [N] *:sN* *:sNext*
610 Short for ":split | [N]Next": split window and go to Nth
611 previous argument. But when there is no previous file, the
612 window is not split. Also see |++opt| and |+cmd|.
613
614 *:sre* *:srewind*
615:sre[wind][!] [++opt] [+cmd]
616 Short for ":split | rewind": split window and go to first
617 argument. But when there is no argument list, the window is
618 not split. Also see |++opt| and |+cmd|.
619
620 *:sfir* *:sfirst*
621:sfir[st] [++opt] [+cmd]
622 Same as ":srewind".
623
624 *:sla* *:slast*
625:sla[st][!] [++opt] [+cmd]
626 Short for ":split | last": split window and go to last
627 argument. But when there is no argument list, the window is
628 not split. Also see |++opt| and |+cmd|.
629
630 *:dr* *:drop*
631:dr[op] {file} ..
632 Edit the first {file} in a window.
633 - If the file is already open in a window change to that
634 window.
635 - If the file is not open in a window edit the file in the
636 current window. If the current buffer can't be |abandon|ed,
637 the window is split first.
638 The |argument-list| is set, like with the |:next| command.
639 The purpose of this command is that it can be used from a
640 program that wants Vim to edit another file, e.g., a debugger.
641 When using the |:tab| modifier each argument is opened in a
642 tab page. The last window is used if it's empty.
643 {only available when compiled with the +gui feature}
644
645==============================================================================
6468. Do a command in all buffers or windows *list-repeat*
647
648 *:windo*
649:windo {cmd} Execute {cmd} in each window.
650 It works like doing this: >
651 CTRL-W t
652 :{cmd}
653 CTRL-W w
654 :{cmd}
655 etc.
656< This only operates in the current tab page.
657 When an error is detected on one window, further
658 windows will not be visited.
659 The last window (or where an error occurred) becomes
660 the current window.
661 {cmd} can contain '|' to concatenate several commands.
662 {cmd} must not open or close windows or reorder them.
663 {not in Vi} {not available when compiled without the
664 |+listcmds| feature}
665 Also see |:tabdo|, |:argdo| and |:bufdo|.
666
667 *:bufdo*
668:bufdo[!] {cmd} Execute {cmd} in each buffer in the buffer list.
669 It works like doing this: >
670 :bfirst
671 :{cmd}
672 :bnext
673 :{cmd}
674 etc.
675< When the current file can't be |abandon|ed and the [!]
676 is not present, the command fails.
677 When an error is detected on one buffer, further
678 buffers will not be visited.
679 Unlisted buffers are skipped.
680 The last buffer (or where an error occurred) becomes
681 the current buffer.
682 {cmd} can contain '|' to concatenate several commands.
683 {cmd} must not delete buffers or add buffers to the
684 buffer list.
685 Note: While this command is executing, the Syntax
686 autocommand event is disabled by adding it to
687 'eventignore'. This considerably speeds up editing
688 each buffer.
689 {not in Vi} {not available when compiled without the
690 |+listcmds| feature}
691 Also see |:tabdo|, |:argdo| and |:windo|.
692
693Examples: >
694
695 :windo set nolist nofoldcolumn | normal zn
696
697This resets the 'list' option and disables folding in all windows. >
698
699 :bufdo set fileencoding= | update
700
701This resets the 'fileencoding' in each buffer and writes it if this changed
702the buffer. The result is that all buffers will use the 'encoding' encoding
703(if conversion works properly).
704
705==============================================================================
7069. Tag or file name under the cursor *window-tag*
707
708 *:sta* *:stag*
709:sta[g][!] [tagname]
710 Does ":tag[!] [tagname]" and splits the window for the found
711 tag. See also |:tag|.
712
713CTRL-W ] *CTRL-W_]* *CTRL-W_CTRL-]*
714CTRL-W CTRL-] Split current window in two. Use identifier under cursor as a
715 tag and jump to it in the new upper window. Make new window N
716 high.
717
718 *CTRL-W_g]*
719CTRL-W g ] Split current window in two. Use identifier under cursor as a
720 tag and perform ":tselect" on it in the new upper window.
721 Make new window N high.
722
723 *CTRL-W_g_CTRL-]*
724CTRL-W g CTRL-] Split current window in two. Use identifier under cursor as a
725 tag and perform ":tjump" on it in the new upper window. Make
726 new window N high.
727
728CTRL-W f *CTRL-W_f* *CTRL-W_CTRL-F*
729CTRL-W CTRL-F Split current window in two. Edit file name under cursor.
730 Like ":split gf", but window isn't split if the file does not
731 exist.
732 Uses the 'path' variable as a list of directory names where to
733 look for the file. Also the path for current file is
734 used to search for the file name.
735 If the name is a hypertext link that looks like
736 "type://machine/path", only "/path" is used.
737 If a count is given, the count'th matching file is edited.
738 {not available when the |+file_in_path| feature was disabled
739 at compile time}
740
741CTRL-W F *CTRL-W_F*
742 Split current window in two. Edit file name under cursor and
743 jump to the line number following the file name. See |gF| for
744 details on how the line number is obtained.
745 {not available when the |+file_in_path| feature was disabled
746 at compile time}
747
748CTRL-W gf *CTRL-W_gf*
749 Open a new tab page and edit the file name under the cursor.
750 Like "tab split" and "gf", but the new tab page isn't created
751 if the file does not exist.
752 {not available when the |+file_in_path| feature was disabled
753 at compile time}
754
755CTRL-W gF *CTRL-W_gF*
756 Open a new tab page and edit the file name under the cursor
757 and jump to the line number following the file name. Like
758 "tab split" and "gF", but the new tab page isn't created if
759 the file does not exist.
760 {not available when the |+file_in_path| feature was disabled
761 at compile time}
762
763Also see |CTRL-W_CTRL-I|: open window for an included file that includes
764the keyword under the cursor.
765
766==============================================================================
76710. The preview window *preview-window*
768
769The preview window is a special window to show (preview) another file. It is
770normally a small window used to show an include file or definition of a
771function.
772{not available when compiled without the |+quickfix| feature}
773
774There can be only one preview window (per tab page). It is created with one
775of the commands below. The 'previewheight' option can be set to specify the
776height of the preview window when it's opened. The 'previewwindow' option is
777set in the preview window to be able to recognize it. The 'winfixheight'
778option is set to have it keep the same height when opening/closing other
779windows.
780
781 *:pta* *:ptag*
782:pta[g][!] [tagname]
783 Does ":tag[!] [tagname]" and shows the found tag in a
784 "Preview" window without changing the current buffer or cursor
785 position. If a "Preview" window already exists, it is re-used
786 (like a help window is). If a new one is opened,
787 'previewheight' is used for the height of the window. See
788 also |:tag|.
789 See below for an example. |CursorHold-example|
790 Small difference from |:tag|: When [tagname] is equal to the
791 already displayed tag, the position in the matching tag list
792 is not reset. This makes the CursorHold example work after a
793 |:ptnext|.
794
795CTRL-W z *CTRL-W_z*
796CTRL-W CTRL-Z *CTRL-W_CTRL-Z* *:pc* *:pclose*
797:pc[lose][!] Close any "Preview" window currently open. When the 'hidden'
798 option is set, or when the buffer was changed and the [!] is
799 used, the buffer becomes hidden (unless there is another
800 window editing it). The command fails if any "Preview" buffer
801 cannot be closed. See also |:close|.
802
803 *:pp* *:ppop*
804:[count]pp[op][!]
805 Does ":[count]pop[!]" in the preview window. See |:pop| and
806 |:ptag|. {not in Vi}
807
808CTRL-W } *CTRL-W_}*
809 Use identifier under cursor as a tag and perform a :ptag on
810 it. Make the new Preview window (if required) N high. If N is
811 not given, 'previewheight' is used.
812
813CTRL-W g } *CTRL-W_g}*
814 Use identifier under cursor as a tag and perform a :ptjump on
815 it. Make the new Preview window (if required) N high. If N is
816 not given, 'previewheight' is used.
817
818 *:ped* *:pedit*
819:ped[it][!] [++opt] [+cmd] {file}
820 Edit {file} in the preview window. The preview window is
821 opened like with |:ptag|. The current window and cursor
822 position isn't changed. Useful example: >
823 :pedit +/fputc /usr/include/stdio.h
824<
825 *:ps* *:psearch*
826:[range]ps[earch][!] [count] [/]pattern[/]
827 Works like |:ijump| but shows the found match in the preview
828 window. The preview window is opened like with |:ptag|. The
829 current window and cursor position isn't changed. Useful
830 example: >
831 :psearch popen
832< Like with the |:ptag| command, you can use this to
833 automatically show information about the word under the
834 cursor. This is less clever than using |:ptag|, but you don't
835 need a tags file and it will also find matches in system
836 include files. Example: >
837 :au! CursorHold *.[ch] nested exe "silent! psearch " . expand("<cword>")
838< Warning: This can be slow.
839
840Example *CursorHold-example* >
841
842 :au! CursorHold *.[ch] nested exe "silent! ptag " . expand("<cword>")
843
844This will cause a ":ptag" to be executed for the keyword under the cursor,
845when the cursor hasn't moved for the time set with 'updatetime'. The "nested"
846makes other autocommands be executed, so that syntax highlighting works in the
847preview window. The "silent!" avoids an error message when the tag could not
848be found. Also see |CursorHold|. To disable this again: >
849
850 :au! CursorHold
851
852A nice addition is to highlight the found tag, avoid the ":ptag" when there
853is no word under the cursor, and a few other things: >
854
855 :au! CursorHold *.[ch] nested call PreviewWord()
856 :func PreviewWord()
857 : if &previewwindow " don't do this in the preview window
858 : return
859 : endif
860 : let w = expand("<cword>") " get the word under cursor
861 : if w =~ '\a' " if the word contains a letter
862 :
863 : " Delete any existing highlight before showing another tag
864 : silent! wincmd P " jump to preview window
865 : if &previewwindow " if we really get there...
866 : match none " delete existing highlight
867 : wincmd p " back to old window
868 : endif
869 :
870 : " Try displaying a matching tag for the word under the cursor
871 : try
872 : exe "ptag " . w
873 : catch
874 : return
875 : endtry
876 :
877 : silent! wincmd P " jump to preview window
878 : if &previewwindow " if we really get there...
879 : if has("folding")
880 : silent! .foldopen " don't want a closed fold
881 : endif
882 : call search("$", "b") " to end of previous line
883 : let w = substitute(w, '\\', '\\\\', "")
884 : call search('\<\V' . w . '\>') " position cursor on match
885 : " Add a match highlight to the word at this position
886 : hi previewWord term=bold ctermbg=green guibg=green
887 : exe 'match previewWord "\%' . line(".") . 'l\%' . col(".") . 'c\k*"'
888 : wincmd p " back to old window
889 : endif
890 : endif
891 :endfun
892
893==============================================================================
89411. Using hidden buffers *buffer-hidden*
895
896A hidden buffer is not displayed in a window, but is still loaded into memory.
897This makes it possible to jump from file to file, without the need to read or
898write the file every time you get another buffer in a window.
899{not available when compiled without the |+listcmds| feature}
900
901 *:buffer-!*
902If the option 'hidden' ('hid') is set, abandoned buffers are kept for all
903commands that start editing another file: ":edit", ":next", ":tag", etc. The
904commands that move through the buffer list sometimes make the current buffer
905hidden although the 'hidden' option is not set. This happens when a buffer is
906modified, but is forced (with '!') to be removed from a window, and
907'autowrite' is off or the buffer can't be written.
908
909You can make a hidden buffer not hidden by starting to edit it with any
910command. Or by deleting it with the ":bdelete" command.
911
912The 'hidden' is global, it is used for all buffers. The 'bufhidden' option
913can be used to make an exception for a specific buffer. It can take these
914values:
915 <empty> Use the value of 'hidden'.
916 hide Hide this buffer, also when 'hidden' is not set.
917 unload Don't hide but unload this buffer, also when 'hidden'
918 is set.
919 delete Delete the buffer.
920
921 *hidden-quit*
922When you try to quit Vim while there is a hidden, modified buffer, you will
923get an error message and Vim will make that buffer the current buffer. You
924can then decide to write this buffer (":wq") or quit without writing (":q!").
925Be careful: there may be more hidden, modified buffers!
926
927A buffer can also be unlisted. This means it exists, but it is not in the
928list of buffers. |unlisted-buffer|
929
930
931:files[!] *:files*
932:buffers[!] *:buffers* *:ls*
933:ls[!] Show all buffers. Example:
934
935 1 #h "/test/text" line 1 ~
936 2u "asdf" line 0 ~
937 3 %a+ "version.c" line 1 ~
938
939 When the [!] is included the list will show unlisted buffers
940 (the term "unlisted" is a bit confusing then...).
941
942 Each buffer has a unique number. That number will not change,
943 so you can always go to a specific buffer with ":buffer N" or
944 "N CTRL-^", where N is the buffer number.
945
946 Indicators (chars in the same column are mutually exclusive):
947 u an unlisted buffer (only displayed when [!] is used)
948 |unlisted-buffer|
949 % the buffer in the current window
950 # the alternate buffer for ":e #" and CTRL-^
951 a an active buffer: it is loaded and visible
952 h a hidden buffer: It is loaded, but currently not
953 displayed in a window |hidden-buffer|
954 - a buffer with 'modifiable' off
955 = a readonly buffer
956 + a modified buffer
957 x a buffer with read errors
958
959 *:bad* *:badd*
960:bad[d] [+lnum] {fname}
961 Add file name {fname} to the buffer list, without loading it.
962 If "lnum" is specified, the cursor will be positioned at that
963 line when the buffer is first entered. Note that other
964 commands after the + will be ignored.
965
966:[N]bd[elete][!] *:bd* *:bdel* *:bdelete* *E516*
967:bd[elete][!] [N]
968 Unload buffer [N] (default: current buffer) and delete it from
969 the buffer list. If the buffer was changed, this fails,
970 unless when [!] is specified, in which case changes are lost.
971 The file remains unaffected. Any windows for this buffer are
972 closed. If buffer [N] is the current buffer, another buffer
973 will be displayed instead. This is the most recent entry in
974 the jump list that points into a loaded buffer.
975 Actually, the buffer isn't completely deleted, it is removed
976 from the buffer list |unlisted-buffer| and option values,
977 variables and mappings/abbreviations for the buffer are
978 cleared.
979
980:bdelete[!] {bufname} *E93* *E94*
981 Like ":bdelete[!] [N]", but buffer given by name. Note that a
982 buffer whose name is a number cannot be referenced by that
983 name; use the buffer number instead. Insert a backslash
984 before a space in a buffer name.
985
986:bdelete[!] N1 N2 ...
987 Do ":bdelete[!]" for buffer N1, N2, etc. The arguments can be
988 buffer numbers or buffer names (but not buffer names that are
989 a number). Insert a backslash before a space in a buffer
990 name.
991
992:N,Mbdelete[!] Do ":bdelete[!]" for all buffers in the range N to M
993 |inclusive|.
994
995:[N]bw[ipeout][!] *:bw* *:bwipe* *:bwipeout* *E517*
996:bw[ipeout][!] {bufname}
997:N,Mbw[ipeout][!]
998:bw[ipeout][!] N1 N2 ...
999 Like |:bdelete|, but really delete the buffer. Everything
1000 related to the buffer is lost. All marks in this buffer
1001 become invalid, option settings are lost, etc. Don't use this
1002 unless you know what you are doing.
1003
1004:[N]bun[load][!] *:bun* *:bunload* *E515*
1005:bun[load][!] [N]
1006 Unload buffer [N] (default: current buffer). The memory
1007 allocated for this buffer will be freed. The buffer remains
1008 in the buffer list.
1009 If the buffer was changed, this fails, unless when [!] is
1010 specified, in which case the changes are lost.
1011 Any windows for this buffer are closed. If buffer [N] is the
1012 current buffer, another buffer will be displayed instead.
1013 This is the most recent entry in the jump list that points
1014 into a loaded buffer.
1015
1016:bunload[!] {bufname}
1017 Like ":bunload[!] [N]", but buffer given by name. Note that a
1018 buffer whose name is a number cannot be referenced by that
1019 name; use the buffer number instead. Insert a backslash
1020 before a space in a buffer name.
1021
1022:N,Mbunload[!] Do ":bunload[!]" for all buffers in the range N to M
1023 |inclusive|.
1024
1025:bunload[!] N1 N2 ...
1026 Do ":bunload[!]" for buffer N1, N2, etc. The arguments can be
1027 buffer numbers or buffer names (but not buffer names that are
1028 a number). Insert a backslash before a space in a buffer
1029 name.
1030
1031:[N]b[uffer][!] [N] *:b* *:bu* *:buf* *:buffer* *E86*
1032 Edit buffer [N] from the buffer list. If [N] is not given,
1033 the current buffer remains being edited. See |:buffer-!| for
1034 [!]. This will also edit a buffer that is not in the buffer
1035 list, without setting the 'buflisted' flag.
1036
1037:[N]b[uffer][!] {filename}
1038 Edit buffer for {filename} from the buffer list. See
1039 |:buffer-!| for [!]. This will also edit a buffer that is not
1040 in the buffer list, without setting the 'buflisted' flag.
1041
1042:[N]sb[uffer] [N] *:sb* *:sbuffer*
1043 Split window and edit buffer [N] from the buffer list. If [N]
1044 is not given, the current buffer is edited. Respects the
1045 "useopen" setting of 'switchbuf' when splitting. This will
1046 also edit a buffer that is not in the buffer list, without
1047 setting the 'buflisted' flag.
1048
1049:[N]sb[uffer] {filename}
1050 Split window and edit buffer for {filename} from the buffer
1051 list. This will also edit a buffer that is not in the buffer
1052 list, without setting the 'buflisted' flag.
1053 Note: If what you want to do is split the buffer, make a copy
1054 under another name, you can do it this way: >
1055 :w foobar | sp #
1056
1057:[N]bn[ext][!] [N] *:bn* *:bnext* *E87*
1058 Go to [N]th next buffer in buffer list. [N] defaults to one.
1059 Wraps around the end of the buffer list.
1060 See |:buffer-!| for [!].
1061 If you are in a help buffer, this takes you to the next help
1062 buffer (if there is one). Similarly, if you are in a normal
1063 (non-help) buffer, this takes you to the next normal buffer.
1064 This is so that if you have invoked help, it doesn't get in
1065 the way when you're browsing code/text buffers. The next three
1066 commands also work like this.
1067
1068 *:sbn* *:sbnext*
1069:[N]sbn[ext] [N]
1070 Split window and go to [N]th next buffer in buffer list.
1071 Wraps around the end of the buffer list. Uses 'switchbuf'
1072
1073:[N]bN[ext][!] [N] *:bN* *:bNext* *:bp* *:bprevious* *E88*
1074:[N]bp[revious][!] [N]
1075 Go to [N]th previous buffer in buffer list. [N] defaults to
1076 one. Wraps around the start of the buffer list.
1077 See |:buffer-!| for [!] and 'switchbuf'.
1078
1079:[N]sbN[ext] [N] *:sbN* *:sbNext* *:sbp* *:sbprevious*
1080:[N]sbp[revious] [N]
1081 Split window and go to [N]th previous buffer in buffer list.
1082 Wraps around the start of the buffer list.
1083 Uses 'switchbuf'.
1084
1085 *:br* *:brewind*
1086:br[ewind][!] Go to first buffer in buffer list. If the buffer list is
1087 empty, go to the first unlisted buffer.
1088 See |:buffer-!| for [!].
1089
1090 *:bf* *:bfirst*
1091:bf[irst] Same as ":brewind".
1092
1093 *:sbr* *:sbrewind*
1094:sbr[ewind] Split window and go to first buffer in buffer list. If the
1095 buffer list is empty, go to the first unlisted buffer.
1096 Respects the 'switchbuf' option.
1097
1098 *:sbf* *:sbfirst*
1099:sbf[irst] Same as ":sbrewind".
1100
1101 *:bl* *:blast*
1102:bl[ast][!] Go to last buffer in buffer list. If the buffer list is
1103 empty, go to the last unlisted buffer.
1104 See |:buffer-!| for [!].
1105
1106 *:sbl* *:sblast*
1107:sbl[ast] Split window and go to last buffer in buffer list. If the
1108 buffer list is empty, go to the last unlisted buffer.
1109 Respects 'switchbuf' option.
1110
1111:[N]bm[odified][!] [N] *:bm* *:bmodified* *E84*
1112 Go to [N]th next modified buffer. Note: this command also
1113 finds unlisted buffers. If there is no modified buffer the
1114 command fails.
1115
1116:[N]sbm[odified] [N] *:sbm* *:sbmodified*
1117 Split window and go to [N]th next modified buffer.
1118 Respects 'switchbuf' option.
1119 Note: this command also finds buffers not in the buffer list.
1120
1121:[N]unh[ide] [N] *:unh* *:unhide* *:sun* *:sunhide*
1122:[N]sun[hide] [N]
1123 Rearrange the screen to open one window for each loaded buffer
1124 in the buffer list. When a count is given, this is the
1125 maximum number of windows to open.
1126
1127:[N]ba[ll] [N] *:ba* *:ball* *:sba* *:sball*
1128:[N]sba[ll] [N] Rearrange the screen to open one window for each buffer in
1129 the buffer list. When a count is given, this is the maximum
1130 number of windows to open. 'winheight' also limits the number
1131 of windows opened ('winwidth' if |:vertical| was prepended).
1132 Buf/Win Enter/Leave autocommands are not executed for the new
1133 windows here, that's only done when they are really entered.
1134 When the |:tab| modifier is used new windows are opened in a
1135 new tab, up to 'tabpagemax'.
1136
1137Note: All the commands above that start editing another buffer, keep the
1138'readonly' flag as it was. This differs from the ":edit" command, which sets
1139the 'readonly' flag each time the file is read.
1140
1141==============================================================================
114212. Special kinds of buffers *special-buffers*
1143
1144Instead of containing the text of a file, buffers can also be used for other
1145purposes. A few options can be set to change the behavior of a buffer:
1146 'bufhidden' what happens when the buffer is no longer displayed
1147 in a window.
1148 'buftype' what kind of a buffer this is
1149 'swapfile' whether the buffer will have a swap file
1150 'buflisted' buffer shows up in the buffer list
1151
1152A few useful kinds of a buffer:
1153
1154quickfix Used to contain the error list or the location list. See
1155 |:cwindow| and |:lwindow|. This command sets the 'buftype'
1156 option to "quickfix". You are not supposed to change this!
1157 'swapfile' is off.
1158
1159help Contains a help file. Will only be created with the |:help|
1160 command. The flag that indicates a help buffer is internal
1161 and can't be changed. The 'buflisted' option will be reset
1162 for a help buffer.
1163
1164directory Displays directory contents. Can be used by a file explorer
1165 plugin. The buffer is created with these settings: >
1166 :setlocal buftype=nowrite
1167 :setlocal bufhidden=delete
1168 :setlocal noswapfile
1169< The buffer name is the name of the directory and is adjusted
1170 when using the |:cd| command.
1171
1172scratch Contains text that can be discarded at any time. It is kept
1173 when closing the window, it must be deleted explicitly.
1174 Settings: >
1175 :setlocal buftype=nofile
1176 :setlocal bufhidden=hide
1177 :setlocal noswapfile
1178< The buffer name can be used to identify the buffer.
1179
1180 *unlisted-buffer*
1181unlisted The buffer is not in the buffer list. It is not used for
1182 normal editing, but to show a help file, remember a file name
1183 or marks. The ":bdelete" command will also set this option,
1184 thus it doesn't completely delete the buffer. Settings: >
1185 :setlocal nobuflisted
1186<
1187
1188 vim:tw=78:ts=8:ft=help:norl:
1189
1190## NetrwTreeListing 1 [plain_text]
1191" ============================================================================
1192" Netrw Directory Listing (netrw v125)
1193" /home/ypetya/projects/gtk/trunk/gadget
1194" Sorted by name
1195" Sort sequence: [\/]$,\.h$,\.c$,\.cpp$,*,\.o$,\.obj$,\.info$,\.swp$,\.bak$,\~$
1196" Quick Help: <F1>:help -:go up dir D:delete R:rename s:sort-by x:exec
1197" ============================================================================
1198../
1199gadget/
1200| .svn/
1201| app/
1202| config/
1203| db/
1204| doc/
1205| lib/
1206| log/
1207| public/
1208| script/
1209| spec/
1210| test/
1211| tmp/
1212| vendor/
1213| Capfile
1214| README
1215| Rakefile