comparison runtime/doc/usr_22.txt @ 7:3fc0f57ecb91 v7.0001

updated for version 7.0001
author vimboss
date Sun, 13 Jun 2004 20:20:40 +0000
parents
children 4102fb4ea781
comparison
equal deleted inserted replaced
6:c2daee826b8f 7:3fc0f57ecb91
1 *usr_22.txt* For Vim version 7.0aa. Last change: 2003 Mar 17
2
3 VIM USER MANUAL - by Bram Moolenaar
4
5 Finding the file to edit
6
7
8 Files can be found everywhere. So how do you find them? Vim offers various
9 ways to browse the directory tree. There are commands to jump to a file that
10 is mentioned in another. And Vim remembers which files have been edited
11 before.
12
13 |22.1| The file explorer
14 |22.2| The current directory
15 |22.3| Finding a file
16 |22.4| The buffer list
17
18 Next chapter: |usr_23.txt| Editing other files
19 Previous chapter: |usr_21.txt| Go away and come back
20 Table of contents: |usr_toc.txt|
21
22 ==============================================================================
23 *22.1* The file explorer
24
25 Vim has a plugin that makes it possible to edit a directory. Try this: >
26
27 :edit .
28
29 Through the magic of autocommands and Vim scripts, the window will be filled
30 with the contents of the directory. It looks like this:
31
32 " Press ? for keyboard shortcuts ~
33 " Sorted by name (.bak,~,.o,.h,.info,.swp,.obj,.orig,.rej at end of list) ~
34 "= /home/mool/vim/vim6/runtime/doc/ ~
35 ../ ~
36 check/ ~
37 Makefile ~
38 autocmd.txt ~
39 change.txt ~
40 eval.txt~ ~
41 filetype.txt~ ~
42 help.txt.info ~
43
44 You can see these items:
45 1. A comment about using ? to get help for the functionality of the file
46 explorer.
47 2. The second line mentions how the items in the directory are listed. They
48 can be sorted in several ways.
49 3. The third line is the name of the current directory.
50 4. The "../" directory item. This is the parent directory.
51 5. The directory names.
52 6. The ordinary file names. As mentioned in the second line, some are not
53 here but "at the end of the list".
54 7. The less ordinary file names. You are expected to use these less often,
55 therefore they have been moved to the end.
56
57 If you have syntax highlighting enabled, the different parts are highlighted
58 to make it easier to spot them.
59
60 You can use Normal mode Vim commands to move around in the text. For example,
61 move to a file and press <Enter>. Now you are editing that file. To go back
62 to the explorer use ":edit ." again. CTRL-O also works.
63 Try using <Enter> while the cursor is on a directory name. The result is
64 that the explorer moves into that directory and displays the items found
65 there. Pressing <Enter> on the first directory "../" moves you one level
66 higher. Pressing "-" does the same thing, without the need to move to the
67 "../" item first.
68
69 You can press ? to get short help on the things you can do in the explorer.
70 This is what you get:
71
72 " <enter> : open file or directory ~
73 " o : open new window for file/directory ~
74 " O : open file in previously visited window ~
75 " p : preview the file ~
76 " i : toggle size/date listing ~
77 " s : select sort field r : reverse sort ~
78 " - : go up one level c : cd to this dir ~
79 " R : rename file D : delete file ~
80 " :help file-explorer for detailed help ~
81
82 The first few commands are for selecting a file to display. Depending on what
83 command you use, the file appears somewhere:
84
85 <Enter> Uses the current window.
86 o Opens a new window.
87 O Uses the previously visited window.
88 p Uses the preview window, and moves the cursor back
89 into the explorer window. |preview-window|
90
91 The following commands are used to display other information:
92
93 i Display the size and date for the file. Using i again
94 will hide the information.
95 s Use the field the cursor is in to sort on. First
96 display the size and date with i. Then Move the
97 cursor to the size of any file and press s. The files
98 will now be sorted on size. Press s wile the cursor
99 is on a date and the items will be sorted on date.
100 r reverse the sorting order (either size or date)
101
102 There are a few extra commands:
103
104 c Change the current directory to the displayed
105 directory. You can then type an ":edit" command for
106 one of the files without prepending the path.
107 R Rename the file under the cursor. You will be
108 prompted for the new name.
109 D Delete the file under the cursor. You will get a
110 prompt to confirm this.
111
112 ==============================================================================
113 *22.2* The current directory
114
115 Just like the shell, Vim has the concept of a current directory. Suppose you
116 are in your home directory and want to edit several files in a directory
117 "VeryLongFileName". You could do: >
118
119 :edit VeryLongFileName/file1.txt
120 :edit VeryLongFileName/file2.txt
121 :edit VeryLongFileName/file3.txt
122
123 To avoid much of the typing, do this: >
124
125 :cd VeryLongFileName
126 :edit file1.txt
127 :edit file2.txt
128 :edit file3.txt
129
130 The ":cd" command changes the current directory. You can see what the current
131 directory is with the ":pwd" command: >
132
133 :pwd
134 /home/Bram/VeryLongFileName
135
136 Vim remembers the last directory that you used. Use "cd -" to go back to it.
137 Example: >
138
139 :pwd
140 /home/Bram/VeryLongFileName
141 :cd /etc
142 :pwd
143 /etc
144 :cd -
145 :pwd
146 /home/Bram/VeryLongFileName
147 :cd -
148 :pwd
149 /etc
150
151
152 WINDOW LOCAL DIRECTORY
153
154 When you split a window, both windows use the same current directory. When
155 you want to edit a number of files somewhere else in the new window, you can
156 make it use a different directory, without changing the current directory in
157 the other window. This is called a local directory. >
158
159 :pwd
160 /home/Bram/VeryLongFileName
161 :split
162 :lcd /etc
163 :pwd
164 /etc
165 CTRL-W w
166 :pwd
167 /home/Bram/VeryLongFileName
168
169 So long as no ":lcd" command has been used, all windows share the same current
170 directory. Doing a ":cd" command in one window will also change the current
171 directory of the other window.
172 For a window where ":lcd" has been used a different current directory is
173 remembered. Using ":cd" or ":lcd" in other windows will not change it.
174 When using a ":cd" command in a window that uses a different current
175 directory, it will go back to using the shared directory.
176
177 ==============================================================================
178 *22.3* Finding a file
179
180 You are editing a C program that contains this line:
181
182 #include "inits.h" ~
183
184 You want to see what is in that "inits.h" file. Move the cursor on the name
185 of the file and type: >
186
187 gf
188
189 Vim will find the file and edit it.
190 What if the file is not in the current directory? Vim will use the 'path'
191 option to find the file. This option is a list of directory names where to
192 look for your file.
193 Suppose you have your include files located in "c:/prog/include". This
194 command will add it to the 'path' option: >
195
196 :set path+=c:/prog/include
197
198 This directory is an absolute path. No matter where you are, it will be the
199 same place. What if you have located files in a subdirectory, below where the
200 file is? Then you can specify a relative path name. This starts with a dot:
201 >
202 :set path+=./proto
203
204 This tells Vim to look in the directory "proto", below the directory where the
205 file in which you use "gf" is. Thus using "gf" on "inits.h" will make Vim
206 look for "proto/inits.h", starting in the directory of the file.
207 Without the "./", thus "proto", Vim would look in the "proto" directory
208 below the current directory. And the current directory might not be where the
209 file that you are editing is located.
210
211 The 'path' option allows specifying the directories where to search for files
212 in many more ways. See the help on the 'path' option.
213 The 'isfname' option is used to decide which characters are included in the
214 file name, and which ones are not (e.g., the " character in the example
215 above).
216
217 When you know the file name, but it's not to be found in the file, you can
218 type it: >
219
220 :find inits.h
221
222 Vim will then use the 'path' option to try and locate the file. This is the
223 same as the ":edit" command, except for the use of 'path'.
224
225 To open the found file in a new window use CTRL-W f instead of "gf", or use
226 ":sfind" instead of ":find".
227
228
229 A nice way to directly start Vim to edit a file somewhere in the 'path': >
230
231 vim "+find stdio.h"
232
233 This finds the file "stdio.h" in your value of 'path'. The quotes are
234 necessary to have one argument |-+c|.
235
236 ==============================================================================
237 *22.4* The buffer list
238
239 The Vim editor uses the term buffer to describe a file being edited.
240 Actually, a buffer is a copy of the file that you edit. When you finish
241 changing the buffer, you write the contents of the buffer to the file.
242 Buffers not only contain file contents, but also all the marks, settings, and
243 other stuff that goes with it.
244
245
246 HIDDEN BUFFERS
247
248 Suppose you are editing the file one.txt and need to edit the file two.txt.
249 You could simply use ":edit two.txt", but since you made changes to one.txt
250 that won't work. You also don't want to write one.txt yet. Vim has a
251 solution for you: >
252
253 :hide edit two.txt
254
255 The buffer "one.txt" disappears from the screen, but Vim still knows that you
256 are editing this buffer, so it keeps the modified text. This is called a
257 hidden buffer: The buffer contains text, but you can't see it.
258 The ":hide" command argument is another command. It makes that command
259 behave like the 'hidden' option was set. You could also set this option
260 yourself. The effect is that when any buffer is abandoned, it becomes hidden.
261 Be careful! When you have hidden buffers with changes, don't exit Vim
262 without making sure you have saved all the buffers.
263
264
265 INACTIVE BUFFERS
266
267 When a buffer has been used once, Vim remembers some information about it.
268 When it is not displayed in a window and it is not hidden, it is still in the
269 buffer list. This is called an inactive buffer. Overview:
270
271 Active Appears in a window, text loaded.
272 Hidden Not in a window, text loaded.
273 Inactive Not in a window, no text loaded.
274
275 The inactive buffers are remembered, because Vim keeps information about them,
276 like marks. And remembering the file name is useful too, so that you can see
277 which files you have edited. And edit them again.
278
279
280 LISTING BUFFERS
281
282 View the buffer list with this command: >
283
284 :buffers
285
286 A command which does the same, is not so obvious to list buffers, but is much
287 shorter to type: >
288
289 :ls
290
291 The output could look like this:
292
293 1 #h "help.txt" line 62 ~
294 2 %l+ "usr_21.txt" line 1 ~
295 3 "usr_toc.txt" line 1 ~
296
297 The first column contains the buffer number. You can use this to edit the
298 buffer without having to type the name, see below.
299 After the buffer number come the flags. Then the name of the file
300 and the line number where the cursor was the last time.
301 The flags that can appear are these (from left to right):
302
303 u Buffer is unlisted |unlisted-buffer|.
304 % Current buffer.
305 # Alternate buffer.
306 l Buffer is loaded and displayed.
307 h Buffer is loaded but hidden.
308 = Buffer is read-only.
309 - Buffer is not modifiable, the 'modifiable' option is off.
310 + Buffer has been modified.
311
312
313 EDITING A BUFFER
314
315 You can edit a buffer by its number. That avoids having to type the file
316 name: >
317
318 :buffer 2
319
320 But the only way to know the number is by looking in the buffer list. You can
321 use the name, or part of it, instead: >
322
323 :buffer help
324
325 Vim will find a best match for the name you type. If there is only one
326 buffer that matches the name, it will be used. In this case "help.txt".
327 To open a buffer in a new window: >
328
329 :sbuffer 3
330
331 This works with a name as well.
332
333
334 USING THE BUFFER LIST
335
336 You can move around in the buffer list with these commands:
337
338 :bnext go to next buffer
339 :bprevious go to previous buffer
340 :bfirst go to the first buffer
341 :blast go to the last buffer
342
343 To remove a buffer from the list, use this command: >
344
345 :bdelete 3
346
347 Again, this also works with a name.
348 If you delete a buffer that was active (visible in a window), that window
349 will be closed. If you delete the current buffer, the current window will be
350 closed. If it was the last window, Vim will find another buffer to edit. You
351 can't be editing nothing!
352
353 Note:
354 Even after removing the buffer with ":bdelete" Vim still remembers it.
355 It's actually made "unlisted", it no longer appears in the list from
356 ":buffers". The ":buffers!" command will list unlisted buffers (yes,
357 Vim can do the impossible). To really make Vim forget about a buffer,
358 use ":bwipe". Also see the 'buflisted' option.
359
360 ==============================================================================
361
362 Next chapter: |usr_23.txt| Editing other files
363
364 Copyright: see |manual-copyright| vim:tw=78:ts=8:ft=help:norl: