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