164
|
1 *usr_05.txt* For Vim version 7.0aa. Last change: 2005 Feb 08
|
7
|
2
|
|
3 VIM USER MANUAL - by Bram Moolenaar
|
|
4
|
|
5 Set your settings
|
|
6
|
|
7
|
|
8 Vim can be tuned to work like you want it to. This chapter shows you how to
|
|
9 make Vim start with options set to different values. Add plugins to extend
|
164
|
10 Vim's capabilities. Or define your own macros.
|
7
|
11
|
|
12 |05.1| The vimrc file
|
|
13 |05.2| The example vimrc file explained
|
|
14 |05.3| Simple mappings
|
|
15 |05.4| Adding a plugin
|
|
16 |05.5| Adding a help file
|
|
17 |05.6| The option window
|
|
18 |05.7| Often used options
|
|
19
|
|
20 Next chapter: |usr_06.txt| Using syntax highlighting
|
|
21 Previous chapter: |usr_04.txt| Making small changes
|
|
22 Table of contents: |usr_toc.txt|
|
|
23
|
|
24 ==============================================================================
|
|
25 *05.1* The vimrc file *vimrc-intro*
|
|
26
|
|
27 You probably got tired of typing commands that you use very often. To start
|
|
28 with all your favorite option settings and mappings, you write them in what is
|
|
29 called the vimrc file. Vim reads this file when it starts up.
|
|
30
|
|
31 If you have trouble finding your vimrc file, use this command: >
|
|
32
|
|
33 :scriptnames
|
|
34
|
|
35 One of the first files in the list should be called ".vimrc" or "_vimrc" and
|
|
36 is located in your home directory.
|
|
37 If you don't have a vimrc file yet, see |vimrc| to find out where you can
|
|
38 create a vimrc file. Also, the ":version" command mentions the name of the
|
|
39 "user vimrc file" Vim looks for.
|
|
40
|
|
41 For Unix this file is always used: >
|
|
42
|
|
43 ~/.vimrc
|
|
44
|
|
45 For MS-DOS and MS-Windows it is mostly one of these: >
|
|
46
|
|
47 $HOME/_vimrc
|
|
48 $VIM/_vimrc
|
|
49
|
|
50 The vimrc file can contain all the commands that you type after a colon. The
|
|
51 most simple ones are for setting options. For example, if you want Vim to
|
|
52 always start with the 'incsearch' option on, add this line you your vimrc
|
|
53 file: >
|
|
54
|
|
55 set incsearch
|
|
56
|
|
57 For this new line to take effect you need to exit Vim and start it again.
|
|
58 Later you will learn how to do this without exiting Vim.
|
|
59
|
|
60 This chapter only explains the most basic items. For more information on how
|
|
61 to write a Vim script file: |usr_41.txt|.
|
|
62
|
|
63 ==============================================================================
|
|
64 *05.2* The example vimrc file explained *vimrc_example.vim*
|
|
65
|
|
66 In the first chapter was explained how the example vimrc (included in the
|
|
67 Vim distribution) file can be used to make Vim startup in not-compatible mode
|
|
68 (see |not-compatible|). The file can be found here:
|
|
69
|
|
70 $VIMRUNTIME/vimrc_example.vim ~
|
|
71
|
|
72 In this section we will explain the various commands used in this file. This
|
|
73 will give you hints about how to set up your own preferences. Not everything
|
|
74 will be explained though. Use the ":help" command to find out more.
|
|
75
|
|
76 >
|
|
77 set nocompatible
|
|
78
|
|
79 As mentioned in the first chapter, these manuals explain Vim working in an
|
|
80 improved way, thus not completely Vi compatible. Setting the 'compatible'
|
|
81 option off, thus 'nocompatible' takes care of this.
|
|
82
|
|
83 >
|
|
84 set backspace=indent,eol,start
|
|
85
|
|
86 This specifies where in Insert mode the <BS> is allowed to delete the
|
|
87 character in front of the cursor. The three items, separated by commas, tell
|
|
88 Vim to delete the white space at the start of the line, a line break and the
|
|
89 character before where Insert mode started.
|
|
90 >
|
|
91
|
|
92 set autoindent
|
|
93
|
|
94 This makes Vim use the indent of the previous line for a newly created line.
|
|
95 Thus there is the same amount of white space before the new line. For example
|
|
96 when pressing <Enter> in Insert mode, and when using the "o" command to open a
|
|
97 new line.
|
|
98 >
|
|
99
|
|
100 if has("vms")
|
|
101 set nobackup
|
|
102 else
|
|
103 set backup
|
|
104 endif
|
|
105
|
|
106 This tells Vim to keep a backup copy of a file when overwriting it. But not
|
|
107 on the VMS system, since it keeps old versions of files already. The backup
|
|
108 file will have the same name as the original file with "~" added. See |07.4|
|
|
109 >
|
|
110
|
|
111 set history=50
|
|
112
|
|
113 Keep 50 commands and 50 search patterns in the history. Use another number if
|
|
114 you want to remember fewer or more lines.
|
|
115 >
|
|
116
|
|
117 set ruler
|
|
118
|
|
119 Always display the current cursor position in the lower right corner of the
|
|
120 Vim window.
|
|
121
|
|
122 >
|
|
123 set showcmd
|
|
124
|
|
125 Display an incomplete command in the lower right corner of the Vim window,
|
|
126 left of the ruler. For example, when you type "2f", Vim is waiting for you to
|
|
127 type the character to find and "2f" is displayed. When you press "w" next,
|
|
128 the "2fw" command is executed and the displayed "2f" is removed.
|
|
129
|
|
130 +-------------------------------------------------+
|
|
131 |text in the Vim window |
|
|
132 |~ |
|
|
133 |~ |
|
|
134 |-- VISUAL -- 2f 43,8 17% |
|
|
135 +-------------------------------------------------+
|
|
136 ^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^
|
|
137 'showmode' 'showcmd' 'ruler'
|
|
138
|
|
139 >
|
|
140 set incsearch
|
|
141
|
|
142 Display the match for a search pattern when halfway typing it.
|
|
143
|
|
144 >
|
|
145 map Q gq
|
|
146
|
|
147 This defines a key mapping. More about that in the next section. This
|
|
148 defines the "Q" command to do formatting with the "gq" operator. This is how
|
|
149 it worked before Vim 5.0. Otherwise the "Q" command starts Ex mode, but you
|
|
150 will not need it.
|
|
151
|
|
152 >
|
43
|
153 vnoremap _g y:exe "grep /" . escape(@", '\\/') . "/ *.c *.h"<CR>
|
7
|
154
|
43
|
155 This mapping yanks the visually selected text and searches for it in C files.
|
|
156 This is a complicated mapping. You can see that mappings can be used to do
|
|
157 quite complicated things. Still, it is just a sequence of commands that are
|
7
|
158 executed like you typed them.
|
|
159
|
|
160 >
|
|
161 if &t_Co > 2 || has("gui_running")
|
|
162 syntax on
|
|
163 set hlsearch
|
|
164 endif
|
|
165
|
|
166 This switches on syntax highlighting, but only if colors are available. And
|
|
167 the 'hlsearch' option tells Vim to highlight matches with the last used search
|
|
168 pattern. The "if" command is very useful to set options only when some
|
|
169 condition is met. More about that in |usr_41.txt|.
|
|
170
|
|
171 *vimrc-filetype* >
|
|
172 filetype plugin indent on
|
|
173
|
|
174 This switches on three very clever mechanisms:
|
|
175 1. Filetype detection.
|
|
176 Whenever you start editing a file, Vim will try to figure out what kind of
|
|
177 file this is. When you edit "main.c", Vim will see the ".c" extension and
|
|
178 recognize this as a "c" filetype. When you edit a file that starts with
|
|
179 "#!/bin/sh", Vim will recognize it as a "sh" filetype.
|
|
180 The filetype detection is used for syntax highlighting and the other two
|
|
181 items below.
|
|
182 See |filetypes|.
|
|
183
|
|
184 2. Using filetype plugin files
|
|
185 Many different filetypes are edited with different options. For example,
|
|
186 when you edit a "c" file, it's very useful to set the 'cindent' option to
|
|
187 automatically indent the lines. These commonly useful option settings are
|
|
188 included with Vim in filetype plugins. You can also add your own, see
|
|
189 |write-filetype-plugin|.
|
|
190
|
|
191 3. Using indent files
|
|
192 When editing programs, the indent of a line can often be computed
|
|
193 automatically. Vim comes with these indent rules for a number of
|
|
194 filetypes. See |:filetype-indent-on| and 'indentexpr'.
|
|
195
|
|
196 >
|
|
197 autocmd FileType text setlocal textwidth=78
|
|
198
|
|
199 This makes Vim break text to avoid lines getting longer than 78 characters.
|
|
200 But only for files that have been detected to be plain text. There are
|
|
201 actually two parts here. "autocmd FileType text" is an autocommand. This
|
|
202 defines that when the file type is set to "text" the following command is
|
|
203 automatically executed. "setlocal textwidth=78" sets the 'textwidth' option
|
|
204 to 78, but only locally in one file.
|
|
205 >
|
|
206
|
|
207 autocmd BufReadPost *
|
|
208 \ if line("'\"") > 0 && line("'\"") <= line("$") |
|
|
209 \ exe "normal g`\"" |
|
|
210 \ endif
|
|
211
|
|
212 Another autocommand. This time it is used after reading any file. The
|
|
213 complicated stuff after it checks if the '" mark is defined, and jumps to it
|
|
214 if so. The backslash at the start of a line is used to continue the command
|
|
215 from the previous line. That avoids a line getting very long.
|
|
216 See |line-continuation|. This only works in a Vim script file, not when
|
|
217 typing commands at the command-line.
|
|
218
|
|
219 ==============================================================================
|
|
220 *05.3* Simple mappings
|
|
221
|
|
222 A mapping enables you to bind a set of Vim commands to a single key. Suppose,
|
|
223 for example, that you need to surround certain words with curly braces. In
|
|
224 other words, you need to change a word such as "amount" into "{amount}". With
|
|
225 the :map command, you can tell Vim that the F5 key does this job. The command
|
|
226 is as follows: >
|
|
227
|
|
228 :map <F5> i{<Esc>ea}<Esc>
|
|
229 <
|
|
230 Note:
|
|
231 When entering this command, you must enter <F5> by typing four
|
|
232 characters. Similarly, <Esc> is not entered by pressing the <Esc>
|
|
233 key, but by typing five characters. Watch out for this difference
|
|
234 when reading the manual!
|
|
235
|
|
236 Let's break this down:
|
|
237 <F5> The F5 function key. This is the trigger key that causes the
|
|
238 command to be executed as the key is pressed.
|
|
239
|
|
240 i{<Esc> Insert the { character. The <Esc> key ends Insert mode.
|
|
241
|
|
242 e Move to the end of the word.
|
|
243
|
|
244 a}<Esc> Append the } to the word.
|
|
245
|
|
246 After you execute the ":map" command, all you have to do to put {} around a
|
|
247 word is to put the cursor on the first character and press F5.
|
|
248
|
|
249 In this example, the trigger is a single key; it can be any string. But when
|
|
250 you use an existing Vim command, that command will no longer be available.
|
|
251 You better avoid that.
|
|
252 One key that can be used with mappings is the backslash. Since you
|
|
253 probably want to define more than one mapping, add another character. You
|
164
|
254 could map "\p" to add parentheses around a word, and "\c" to add curly braces,
|
|
255 for example: >
|
7
|
256
|
|
257 :map \p i(<Esc>ea)<Esc>
|
|
258 :map \c i{<Esc>ea}<Esc>
|
|
259
|
|
260 You need to type the \ and the p quickly after another, so that Vim knows they
|
|
261 belong together.
|
|
262
|
|
263 The ":map" command (with no arguments) lists your current mappings. At
|
|
264 least the ones for Normal mode. More about mappings in section |40.1|.
|
|
265
|
|
266 ==============================================================================
|
|
267 *05.4* Adding a plugin *add-plugin* *plugin*
|
|
268
|
|
269 Vim's functionality can be extended by adding plugins. A plugin is nothing
|
|
270 more than a Vim script file that is loaded automatically when Vim starts. You
|
|
271 can add a plugin very easily by dropping it in your plugin directory.
|
|
272 {not available when Vim was compiled without the |+eval| feature}
|
|
273
|
|
274 There are two types of plugins:
|
|
275
|
|
276 global plugin: Used for all kinds of files
|
|
277 filetype plugin: Only used for a specific type of file
|
|
278
|
|
279 The global plugins will be discussed first, then the filetype ones
|
|
280 |add-filetype-plugin|.
|
|
281
|
|
282
|
|
283 GLOBAL PLUGINS *standard-plugin*
|
|
284
|
|
285 When you start Vim, it will automatically load a number of global plugins.
|
|
286 You don't have to do anything for this. They add functionality that most
|
|
287 people will want to use, but which was implemented as a Vim script instead of
|
|
288 being compiled into Vim. You can find them listed in the help index
|
|
289 |standard-plugin-list|. Also see |load-plugins|.
|
|
290
|
|
291 *add-global-plugin*
|
|
292 You can add a global plugin to add functionality that will always be present
|
|
293 when you use Vim. There are only two steps for adding a global plugin:
|
|
294 1. Get a copy of the plugin.
|
|
295 2. Drop it in the right directory.
|
|
296
|
|
297
|
|
298 GETTING A GLOBAL PLUGIN
|
|
299
|
|
300 Where can you find plugins?
|
|
301 - Some come with Vim. You can find them in the directory $VIMRUNTIME/macros
|
|
302 and its sub-directories.
|
|
303 - Download from the net, check out http://vim.sf.net.
|
|
304 - They are sometimes posted in a Vim |maillist|.
|
|
305 - You could write one yourself, see |write-plugin|.
|
|
306
|
|
307
|
|
308 USING A GLOBAL PLUGIN
|
|
309
|
|
310 First read the text in the plugin itself to check for any special conditions.
|
|
311 Then copy the file to your plugin directory:
|
|
312
|
|
313 system plugin directory ~
|
|
314 Unix ~/.vim/plugin/
|
|
315 PC and OS/2 $HOME/vimfiles/plugin or $VIM/vimfiles/plugin
|
|
316 Amiga s:vimfiles/plugin
|
|
317 Macintosh $VIM:vimfiles:plugin
|
|
318 Mac OS X ~/.vim/plugin/
|
|
319 RISC-OS Choices:vimfiles.plugin
|
|
320
|
|
321 Example for Unix (assuming you didn't have a plugin directory yet): >
|
|
322
|
|
323 mkdir ~/.vim
|
|
324 mkdir ~/.vim/plugin
|
|
325 cp /usr/local/share/vim/vim60/macros/justify.vim ~/.vim/plugin
|
|
326
|
|
327 That's all! Now you can use the commands defined in this plugin to justify
|
|
328 text.
|
|
329
|
|
330
|
|
331 FILETYPE PLUGINS *add-filetype-plugin* *ftplugins*
|
|
332
|
|
333 The Vim distribution comes with a set of plugins for different filetypes that
|
|
334 you can start using with this command: >
|
|
335
|
|
336 :filetype plugin on
|
|
337
|
|
338 That's all! See |vimrc-filetype|.
|
|
339
|
|
340 If you are missing a plugin for a filetype you are using, or you found a
|
|
341 better one, you can add it. There are two steps for adding a filetype plugin:
|
|
342 1. Get a copy of the plugin.
|
|
343 2. Drop it in the right directory.
|
|
344
|
|
345
|
|
346 GETTING A FILETYPE PLUGIN
|
|
347
|
|
348 You can find them in the same places as the global plugins. Watch out if the
|
|
349 type of file is mentioned, then you know if the plugin is a global or a
|
|
350 filetype one. The scripts in $VIMRUNTIME/macros are global ones, the filetype
|
|
351 plugins are in $VIMRUNTIME/ftplugin.
|
|
352
|
|
353
|
|
354 USING A FILETYPE PLUGIN *ftplugin-name*
|
|
355
|
|
356 You can add a filetype plugin by dropping it in the right directory. The
|
|
357 name of this directory is in the same directory mentioned above for global
|
|
358 plugins, but the last part is "ftplugin". Suppose you have found a plugin for
|
|
359 the "stuff" filetype, and you are on Unix. Then you can move this file to the
|
|
360 ftplugin directory: >
|
|
361
|
|
362 mv thefile ~/.vim/ftplugin/stuff.vim
|
|
363
|
|
364 If that file already exists you already have a plugin for "stuff". You might
|
|
365 want to check if the existing plugin doesn't conflict with the one you are
|
|
366 adding. If it's OK, you can give the new one another name: >
|
|
367
|
|
368 mv thefile ~/.vim/ftplugin/stuff_too.vim
|
|
369
|
|
370 The underscore is used to separate the name of the filetype from the rest,
|
10
|
371 which can be anything. If you use "otherstuff.vim" it wouldn't work, it would
|
|
372 be loaded for the "otherstuff" filetype.
|
7
|
373
|
|
374 On MS-DOS you cannot use long filenames. You would run into trouble if you
|
|
375 add a second plugin and the filetype has more than six characters. You can
|
|
376 use an extra directory to get around this: >
|
|
377
|
|
378 mkdir $VIM/vimfiles/ftplugin/fortran
|
|
379 copy thefile $VIM/vimfiles/ftplugin/fortran/too.vim
|
|
380
|
|
381 The generic names for the filetype plugins are: >
|
|
382
|
|
383 ftplugin/<filetype>.vim
|
|
384 ftplugin/<filetype>_<name>.vim
|
|
385 ftplugin/<filetype>/<name>.vim
|
|
386
|
|
387 Here "<name>" can be any name that you prefer.
|
|
388 Examples for the "stuff" filetype on Unix: >
|
|
389
|
|
390 ~/.vim/ftplugin/stuff.vim
|
|
391 ~/.vim/ftplugin/stuff_def.vim
|
|
392 ~/.vim/ftplugin/stuff/header.vim
|
|
393
|
|
394 The <filetype> part is the name of the filetype the plugin is to be used for.
|
|
395 Only files of this filetype will use the settings from the plugin. The <name>
|
|
396 part of the plugin file doesn't matter, you can use it to have several plugins
|
|
397 for the same filetype. Note that it must end in ".vim".
|
|
398
|
|
399
|
|
400 Further reading:
|
|
401 |filetype-plugins| Documentation for the filetype plugins and information
|
|
402 about how to avoid that mappings cause problems.
|
|
403 |load-plugins| When the global plugins are loaded during startup.
|
|
404 |ftplugin-overrule| Overruling the settings from a global plugin.
|
|
405 |write-plugin| How to write a plugin script.
|
|
406 |plugin-details| For more information about using plugins or when your
|
|
407 plugin doesn't work.
|
|
408 |new-filetype| How to detect a new file type.
|
|
409
|
|
410 ==============================================================================
|
|
411 *05.5* Adding a help file *add-local-help* *matchit-install*
|
|
412
|
|
413 If you are lucky, the plugin you installed also comes with a help file. We
|
|
414 will explain how to install the help file, so that you can easily find help
|
|
415 for your new plugin.
|
|
416 Let us use the "matchit.vim" plugin as an example (it is included with
|
|
417 Vim). This plugin makes the "%" command jump to matching HTML tags,
|
|
418 if/else/endif in Vim scripts, etc. Very useful, although it's not backwards
|
|
419 compatible (that's why it is not enabled by default).
|
|
420 This plugin comes with documentation: "matchit.txt". Let's first copy the
|
|
421 plugin to the right directory. This time we will do it from inside Vim, so
|
|
422 that we can use $VIMRUNTIME. (You may skip some of the "mkdir" commands if
|
|
423 you already have the directory.) >
|
|
424
|
|
425 :!mkdir ~/.vim
|
|
426 :!mkdir ~/.vim/plugin
|
|
427 :!cp $VIMRUNTIME/macros/matchit.vim ~/.vim/plugin
|
|
428
|
22
|
429 The "cp" command is for Unix, on MS-DOS you can use "copy".
|
|
430
|
7
|
431 Now create a "doc" directory in one of the directories in 'runtimepath'. >
|
|
432
|
|
433 :!mkdir ~/.vim/doc
|
|
434
|
|
435 Copy the help file to the "doc" directory. >
|
|
436
|
|
437 :!cp $VIMRUNTIME/macros/matchit.txt ~/.vim/doc
|
|
438
|
|
439 Now comes the trick, which allows you to jump to the subjects in the new help
|
|
440 file: Generate the local tags file with the |:helptags| command. >
|
|
441
|
|
442 :helptags ~/.vim/doc
|
|
443
|
|
444 Now you can use the >
|
|
445
|
|
446 :help g%
|
|
447
|
|
448 command to find help for "g%" in the help file you just added. You can see an
|
|
449 entry for the local help file when you do: >
|
|
450
|
|
451 :help local-additions
|
|
452
|
|
453 The title lines from the local help files are automagically added to this
|
|
454 section. There you can see which local help files have been added and jump to
|
|
455 them through the tag.
|
|
456
|
|
457 For writing a local help file, see |write-local-help|.
|
|
458
|
|
459 ==============================================================================
|
|
460 *05.6* The option window
|
|
461
|
|
462 If you are looking for an option that does what you want, you can search in
|
|
463 the help files here: |options|. Another way is by using this command: >
|
|
464
|
|
465 :options
|
|
466
|
|
467 This opens a new window, with a list of options with a one-line explanation.
|
|
468 The options are grouped by subject. Move the cursor to a subject and press
|
|
469 <Enter> to jump there. Press <Enter> again to jump back. Or use CTRL-O.
|
|
470
|
|
471 You can change the value of an option. For example, move to the "displaying
|
|
472 text" subject. Then move the cursor down to this line:
|
|
473
|
|
474 set wrap nowrap ~
|
|
475
|
|
476 When you hit <Enter>, the line will change to:
|
|
477
|
|
478 set nowrap wrap ~
|
|
479
|
|
480 The option has now been switched off.
|
|
481
|
|
482 Just above this line is a short description of the 'wrap' option. Move the
|
|
483 cursor one line up to place it in this line. Now hit <Enter> and you jump to
|
|
484 the full help on the 'wrap' option.
|
|
485
|
|
486 For options that take a number or string argument you can edit the value.
|
|
487 Then press <Enter> to apply the new value. For example, move the cursor a few
|
|
488 lines up to this line:
|
|
489
|
|
490 set so=0 ~
|
|
491
|
|
492 Position the cursor on the zero with "$". Change it into a five with "r5".
|
|
493 Then press <Enter> to apply the new value. When you now move the cursor
|
|
494 around you will notice that the text starts scrolling before you reach the
|
|
495 border. This is what the 'scrolloff' option does, it specifies an offset
|
|
496 from the window border where scrolling starts.
|
|
497
|
|
498 ==============================================================================
|
|
499 *05.7* Often used options
|
|
500
|
|
501 There are an awful lot of options. Most of them you will hardly ever use.
|
|
502 Some of the more useful ones will be mentioned here. Don't forget you can
|
|
503 find more help on these options with the ":help" command, with single quotes
|
|
504 before and after the option name. For example: >
|
|
505
|
|
506 :help 'wrap'
|
|
507
|
|
508 In case you have messed up an option value, you can set it back to the
|
10
|
509 default by putting an ampersand (&) after the option name. Example: >
|
7
|
510
|
|
511 :set iskeyword&
|
|
512
|
|
513
|
|
514 NOT WRAPPING LINES
|
|
515
|
|
516 Vim normally wraps long lines, so that you can see all of the text. Sometimes
|
|
517 it's better to let the text continue right of the window. Then you need to
|
10
|
518 scroll the text left-right to see all of a long line. Switch wrapping off
|
|
519 with this command: >
|
7
|
520
|
|
521 :set nowrap
|
|
522
|
|
523 Vim will automatically scroll the text when you move to text that is not
|
|
524 displayed. To see a context of ten characters, do this: >
|
|
525
|
|
526 :set sidescroll=10
|
|
527
|
|
528 This doesn't change the text in the file, only the way it is displayed.
|
|
529
|
|
530
|
|
531 WRAPPING MOVEMENT COMMANDS
|
|
532
|
|
533 Most commands for moving around will stop moving at the start and end of a
|
|
534 line. You can change that with the 'whichwrap' option. This sets it to the
|
|
535 default value: >
|
|
536
|
|
537 :set whichwrap=b,s
|
|
538
|
|
539 This allows the <BS> key, when used in the first position of a line, to move
|
|
540 the cursor to the end of the previous line. And the <Space> key moves from
|
|
541 the end of a line to the start of the next one.
|
|
542
|
|
543 To allow the cursor keys <Left> and <Right> to also wrap, use this command: >
|
|
544
|
|
545 :set whichwrap=b,s,<,>
|
|
546
|
|
547 This is still only for Normal mode. To let <Left> and <Right> do this in
|
|
548 Insert mode as well: >
|
|
549
|
|
550 :set whichwrap=b,s,<,>,[,]
|
|
551
|
|
552 There are a few other flags that can be added, see 'whichwrap'.
|
|
553
|
|
554
|
|
555 VIEWING TABS
|
|
556
|
|
557 When there are tabs in a file, you cannot see where they are. To make them
|
|
558 visible: >
|
|
559
|
|
560 :set list
|
|
561
|
|
562 Now every Tab is displayed as ^I. And a $ is displayed at the end of each
|
|
563 line, so that you can spot trailing spaces that would otherwise go unnoticed.
|
|
564 A disadvantage is that this looks ugly when there are many Tabs in a file.
|
|
565 If you have a color terminal, or are using the GUI, Vim can show the spaces
|
|
566 and tabs as highlighted characters. Use the 'listchars' option: >
|
|
567
|
|
568 :set listchars=tab:>-,trail:-
|
|
569
|
|
570 Now every tab will be displayed as ">---" (with more or less "-") and trailing
|
|
571 white space as "-". Looks a lot better, doesn't it?
|
|
572
|
|
573
|
|
574 KEYWORDS
|
|
575
|
|
576 The 'iskeyword' option specifies which characters can appear in a word: >
|
|
577
|
|
578 :set iskeyword
|
|
579 < iskeyword=@,48-57,_,192-255 ~
|
|
580
|
|
581 The "@" stands for all alphabetic letters. "48-57" stands for ASCII
|
|
582 characters 48 to 57, which are the numbers 0 to 9. "192-255" are the
|
|
583 printable latin characters.
|
|
584 Sometimes you will want to include a dash in keywords, so that commands
|
|
585 like "w" consider "upper-case" to be one word. You can do it like this: >
|
|
586
|
|
587 :set iskeyword+=-
|
|
588 :set iskeyword
|
|
589 < iskeyword=@,48-57,_,192-255,- ~
|
|
590
|
|
591 If you look at the new value, you will see that Vim has added a comma for you.
|
|
592 To remove a character use "-=". For example, to remove the underscore: >
|
|
593
|
|
594 :set iskeyword-=_
|
|
595 :set iskeyword
|
|
596 < iskeyword=@,48-57,192-255,- ~
|
|
597
|
|
598 This time a comma is automatically deleted.
|
|
599
|
|
600
|
|
601 ROOM FOR MESSAGES
|
|
602
|
|
603 When Vim starts there is one line at the bottom that is used for messages.
|
|
604 When a message is long, it is either truncated, thus you can only see part of
|
|
605 it, or the text scrolls and you have to press <Enter> to continue.
|
|
606 You can set the 'cmdheight' option to the number of lines used for
|
|
607 messages. Example: >
|
|
608
|
|
609 :set cmdheight=3
|
|
610
|
|
611 This does mean there is less room to edit text, thus it's a compromise.
|
|
612
|
|
613 ==============================================================================
|
|
614
|
|
615 Next chapter: |usr_06.txt| Using syntax highlighting
|
|
616
|
|
617 Copyright: see |manual-copyright| vim:tw=78:ts=8:ft=help:norl:
|