Merge branch 'hack/autopaste'
[vim-kana.git] / runtime / doc / usr_06.txt
blob4e57b4e66e23e6dd6343f9fbf0f17daa83303a8d
1 *usr_06.txt*    For Vim version 7.1.  Last change: 2006 Apr 24
3                      VIM USER MANUAL - by Bram Moolenaar
5                           Using syntax highlighting
8 Black and white text is boring.  With colors your file comes to life.  This
9 not only looks nice, it also speeds up your work.  Change the colors used for
10 the different sorts of text.  Print your text, with the colors you see on the
11 screen.
13 |06.1|  Switching it on
14 |06.2|  No or wrong colors?
15 |06.3|  Different colors
16 |06.4|  With colors or without colors
17 |06.5|  Printing with colors
18 |06.6|  Further reading
20      Next chapter: |usr_07.txt|  Editing more than one file
21  Previous chapter: |usr_05.txt|  Set your settings
22 Table of contents: |usr_toc.txt|
24 ==============================================================================
25 *06.1*  Switching it on
27 It all starts with one simple command: >
29         :syntax enable
31 That should work in most situations to get color in your files.  Vim will
32 automagically detect the type of file and load the right syntax highlighting.
33 Suddenly comments are blue, keywords brown and strings red.  This makes it
34 easy to overview the file.  After a while you will find that black&white text
35 slows you down!
37 If you always want to use syntax highlighting, put the ":syntax enable"
38 command in your |vimrc| file.
40 If you want syntax highlighting only when the terminal supports colors, you
41 can put this in your |vimrc| file: >
43         if &t_Co > 1
44            syntax enable
45         endif
47 If you want syntax highlighting only in the GUI version, put the ":syntax
48 enable" command in your |gvimrc| file.
50 ==============================================================================
51 *06.2*  No or wrong colors?
53 There can be a number of reasons why you don't see colors:
55 - Your terminal does not support colors.
56         Vim will use bold, italic and underlined text, but this doesn't look
57         very nice.  You probably will want to try to get a terminal with
58         colors.  For Unix, I recommend the xterm from the XFree86 project:
59         |xfree-xterm|.
61 - Your terminal does support colors, but Vim doesn't know this.
62         Make sure your $TERM setting is correct.  For example, when using an
63         xterm that supports colors: >
65                 setenv TERM xterm-color
67         or (depending on your shell): >
69                 TERM=xterm-color; export TERM
71 <       The terminal name must match the terminal you are using.  If it
72         still doesn't work, have a look at |xterm-color|, which shows a few
73         ways to make Vim display colors (not only for an xterm).
75 - The file type is not recognized.
76         Vim doesn't know all file types, and sometimes it's near to impossible
77         to tell what language a file uses.  Try this command: >
79                 :set filetype
81         If the result is "filetype=" then the problem is indeed that Vim
82         doesn't know what type of file this is.  You can set the type
83         manually: >
85                 :set filetype=fortran
87 <       To see which types are available, look in the directory
88         $VIMRUNTIME/syntax.  For the GUI you can use the Syntax menu.
89         Setting the filetype can also be done with a |modeline|, so that the
90         file will be highlighted each time you edit it.  For example, this
91         line can be used in a Makefile (put it near the start or end of the
92         file): >
94                 # vim: syntax=make
96 <       You might know how to detect the file type yourself.  Often the file
97         name extension (after the dot) can be used.
98         See |new-filetype| for how to tell Vim to detect that file type.
100 - There is no highlighting for your file type.
101         You could try using a similar file type by manually setting it as
102         mentioned above.  If that isn't good enough, you can write your own
103         syntax file, see |mysyntaxfile|.
106 Or the colors could be wrong:
108 - The colored text is very hard to read.
109         Vim guesses the background color that you are using.  If it is black
110         (or another dark color) it will use light colors for text.  If it is
111         white (or another light color) it will use dark colors for text.  If
112         Vim guessed wrong the text will be hard to read.  To solve this, set
113         the 'background' option.  For a dark background: >
115                 :set background=dark
117 <       And for a light background: >
119                 :set background=light
121 <       Make sure you put this _before_ the ":syntax enable" command,
122         otherwise the colors will already have been set.  You could do
123         ":syntax reset" after setting 'background' to make Vim set the default
124         colors again.
126 - The colors are wrong when scrolling bottom to top.
127         Vim doesn't read the whole file to parse the text.  It starts parsing
128         wherever you are viewing the file.  That saves a lot of time, but
129         sometimes the colors are wrong.  A simple fix is hitting CTRL-L.  Or
130         scroll back a bit and then forward again.
131         For a real fix, see |:syn-sync|.  Some syntax files have a way to make
132         it look further back, see the help for the specific syntax file.  For
133         example, |tex.vim| for the TeX syntax.
135 ==============================================================================
136 *06.3*  Different colors                                *:syn-default-override*
138 If you don't like the default colors, you can select another color scheme.  In
139 the GUI use the Edit/Color Scheme menu.  You can also type the command: >
141         :colorscheme evening
143 "evening" is the name of the color scheme.  There are several others you might
144 want to try out.  Look in the directory $VIMRUNTIME/colors.
146 When you found the color scheme that you like, add the ":colorscheme" command
147 to your |vimrc| file.
149 You could also write your own color scheme.  This is how you do it:
151 1. Select a color scheme that comes close.  Copy this file to your own Vim
152    directory.  For Unix, this should work: >
154         !mkdir ~/.vim/colors
155         !cp $VIMRUNTIME/colors/morning.vim ~/.vim/colors/mine.vim
157    This is done from Vim, because it knows the value of $VIMRUNTIME.
159 2. Edit the color scheme file.  These entries are useful:
161         term            attributes in a B&W terminal
162         cterm           attributes in a color terminal
163         ctermfg         foreground color in a color terminal
164         ctermbg         background color in a color terminal
165         gui             attributes in the GUI
166         guifg           foreground color in the GUI
167         guibg           background color in the GUI
169    For example, to make comments green: >
171         :highlight Comment ctermfg=green guifg=green
173    Attributes you can use for "cterm" and "gui" are "bold" and "underline".
174    If you want both, use "bold,underline".  For details see the |:highlight|
175    command.
177 3. Tell Vim to always use your color scheme.  Put this line in your |vimrc|: >
179         colorscheme mine
181 If you want to see what the most often used color combinations look like, use
182 this command: >
184         :runtime syntax/colortest.vim
186 You will see text in various color combinations.  You can check which ones are
187 readable and look nice.
189 ==============================================================================
190 *06.4*  With colors or without colors
192 Displaying text in color takes a lot of effort.  If you find the displaying
193 too slow, you might want to disable syntax highlighting for a moment: >
195         :syntax clear
197 When editing another file (or the same one) the colors will come back.
199                                                         *:syn-off*
200 If you want to stop highlighting completely use: >
202         :syntax off
204 This will completely disable syntax highlighting and remove it immediately for
205 all buffers.
207                                                         *:syn-manual*
208 If you want syntax highlighting only for specific files, use this: >
210         :syntax manual
212 This will enable the syntax highlighting, but not switch it on automatically
213 when starting to edit a buffer.  To switch highlighting on for the current
214 buffer, set the 'syntax' option: >
216         :set syntax=ON
218 ==============================================================================
219 *06.5*  Printing with colors                            *syntax-printing*
221 In the MS-Windows version you can print the current file with this command: >
223         :hardcopy
225 You will get the usual printer dialog, where you can select the printer and a
226 few settings.  If you have a color printer, the paper output should look the
227 same as what you see inside Vim.  But when you use a dark background the
228 colors will be adjusted to look good on white paper.
230 There are several options that change the way Vim prints:
231         'printdevice'
232         'printheader'
233         'printfont'
234         'printoptions'
236 To print only a range of lines,  use Visual mode to select the lines and then
237 type the command: >
239         v100j:hardcopy
241 "v" starts Visual mode.  "100j" moves a hundred lines down, they will be
242 highlighted.  Then ":hardcopy" will print those lines.  You can use other
243 commands to move in Visual mode, of course.
245 This also works on Unix, if you have a PostScript printer.  Otherwise, you
246 will have to do a bit more work.  You need to convert the text to HTML first,
247 and then print it from a web browser such as Netscape.
249 Convert the current file to HTML with this command: >
251         :source $VIMRUNTIME/syntax/2html.vim
253 You will see it crunching away, this can take quite a while for a large file.
254 Some time later another window shows the HTML code.  Now write this somewhere
255 (doesn't matter where, you throw it away later):
257         :write main.c.html
259 Open this file in your favorite browser and print it from there.  If all goes
260 well, the output should look exactly as it does in Vim.  See |2html.vim| for
261 details.  Don't forget to delete the HTML file when you are done with it.
263 Instead of printing, you could also put the HTML file on a web server, and let
264 others look at the colored text.
266 ==============================================================================
267 *06.6*  Further reading
269 |usr_44.txt|  Your own syntax highlighted.
270 |syntax|      All the details.
272 ==============================================================================
274 Next chapter: |usr_07.txt|  Editing more than one file
276 Copyright: see |manual-copyright|  vim:tw=78:ts=8:ft=help:norl: