Mercurial > vim
annotate runtime/doc/usr_06.txt @ 17451:15078662cd76
Added tag v8.1.1723 for changeset 509542f1fffbdbc115d56ed18e3016cf50ffda31
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 21 Jul 2019 14:15:07 +0200 |
parents | d23afa4d8b63 |
children | af69c9335223 |
rev | line source |
---|---|
16944 | 1 *usr_06.txt* For Vim version 8.1. Last change: 2019 Jun 01 |
7 | 2 |
3 VIM USER MANUAL - by Bram Moolenaar | |
4 | |
5 Using syntax highlighting | |
6 | |
7 | |
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. | |
12 | |
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 | |
19 | |
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| | |
23 | |
24 ============================================================================== | |
25 *06.1* Switching it on | |
26 | |
27 It all starts with one simple command: > | |
28 | |
29 :syntax enable | |
30 | |
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! | |
36 | |
37 If you always want to use syntax highlighting, put the ":syntax enable" | |
38 command in your |vimrc| file. | |
39 | |
40 If you want syntax highlighting only when the terminal supports colors, you | |
41 can put this in your |vimrc| file: > | |
42 | |
43 if &t_Co > 1 | |
44 syntax enable | |
45 endif | |
46 | |
47 If you want syntax highlighting only in the GUI version, put the ":syntax | |
48 enable" command in your |gvimrc| file. | |
49 | |
50 ============================================================================== | |
51 *06.2* No or wrong colors? | |
52 | |
53 There can be a number of reasons why you don't see colors: | |
54 | |
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|. | |
60 | |
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: > | |
64 | |
65 setenv TERM xterm-color | |
66 < | |
67 or (depending on your shell): > | |
68 | |
69 TERM=xterm-color; export TERM | |
70 | |
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). | |
74 | |
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: > | |
78 | |
79 :set filetype | |
80 < | |
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: > | |
84 | |
85 :set filetype=fortran | |
86 | |
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): > | |
93 | |
94 # vim: syntax=make | |
95 | |
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. | |
99 | |
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|. | |
104 | |
105 | |
106 Or the colors could be wrong: | |
107 | |
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: > | |
114 | |
115 :set background=dark | |
116 | |
117 < And for a light background: > | |
118 | |
119 :set background=light | |
120 | |
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. | |
125 | |
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. | |
134 | |
135 ============================================================================== | |
136 *06.3* Different colors *:syn-default-override* | |
137 | |
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: > | |
140 | |
141 :colorscheme evening | |
142 | |
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. | |
145 | |
146 When you found the color scheme that you like, add the ":colorscheme" command | |
147 to your |vimrc| file. | |
148 | |
149 You could also write your own color scheme. This is how you do it: | |
150 | |
151 1. Select a color scheme that comes close. Copy this file to your own Vim | |
152 directory. For Unix, this should work: > | |
153 | |
154 !mkdir ~/.vim/colors | |
155 !cp $VIMRUNTIME/colors/morning.vim ~/.vim/colors/mine.vim | |
156 < | |
157 This is done from Vim, because it knows the value of $VIMRUNTIME. | |
158 | |
159 2. Edit the color scheme file. These entries are useful: | |
160 | |
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 | |
168 | |
169 For example, to make comments green: > | |
170 | |
171 :highlight Comment ctermfg=green guifg=green | |
172 < | |
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. | |
176 | |
177 3. Tell Vim to always use your color scheme. Put this line in your |vimrc|: > | |
178 | |
179 colorscheme mine | |
180 | |
181 If you want to see what the most often used color combinations look like, use | |
671 | 182 this command: > |
7 | 183 |
671 | 184 :runtime syntax/colortest.vim |
7 | 185 |
186 You will see text in various color combinations. You can check which ones are | |
187 readable and look nice. | |
188 | |
189 ============================================================================== | |
190 *06.4* With colors or without colors | |
191 | |
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: > | |
194 | |
195 :syntax clear | |
196 | |
197 When editing another file (or the same one) the colors will come back. | |
198 | |
199 If you want to stop highlighting completely use: > | |
200 | |
201 :syntax off | |
202 | |
203 This will completely disable syntax highlighting and remove it immediately for | |
16944 | 204 all buffers. See |:syntax-off| for more details. |
7 | 205 |
206 *:syn-manual* | |
207 If you want syntax highlighting only for specific files, use this: > | |
208 | |
209 :syntax manual | |
210 | |
211 This will enable the syntax highlighting, but not switch it on automatically | |
212 when starting to edit a buffer. To switch highlighting on for the current | |
213 buffer, set the 'syntax' option: > | |
214 | |
215 :set syntax=ON | |
216 < | |
217 ============================================================================== | |
218 *06.5* Printing with colors *syntax-printing* | |
219 | |
220 In the MS-Windows version you can print the current file with this command: > | |
221 | |
222 :hardcopy | |
223 | |
224 You will get the usual printer dialog, where you can select the printer and a | |
225 few settings. If you have a color printer, the paper output should look the | |
226 same as what you see inside Vim. But when you use a dark background the | |
227 colors will be adjusted to look good on white paper. | |
228 | |
229 There are several options that change the way Vim prints: | |
230 'printdevice' | |
231 'printheader' | |
232 'printfont' | |
233 'printoptions' | |
234 | |
235 To print only a range of lines, use Visual mode to select the lines and then | |
236 type the command: > | |
237 | |
238 v100j:hardcopy | |
239 | |
240 "v" starts Visual mode. "100j" moves a hundred lines down, they will be | |
241 highlighted. Then ":hardcopy" will print those lines. You can use other | |
242 commands to move in Visual mode, of course. | |
243 | |
244 This also works on Unix, if you have a PostScript printer. Otherwise, you | |
245 will have to do a bit more work. You need to convert the text to HTML first, | |
2033
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1702
diff
changeset
|
246 and then print it from a web browser. |
7 | 247 |
248 Convert the current file to HTML with this command: > | |
249 | |
2033
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1702
diff
changeset
|
250 :TOhtml |
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1702
diff
changeset
|
251 |
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1702
diff
changeset
|
252 In case that doesn't work: > |
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1702
diff
changeset
|
253 |
7 | 254 :source $VIMRUNTIME/syntax/2html.vim |
255 | |
256 You will see it crunching away, this can take quite a while for a large file. | |
257 Some time later another window shows the HTML code. Now write this somewhere | |
258 (doesn't matter where, you throw it away later): | |
259 > | |
260 :write main.c.html | |
261 | |
262 Open this file in your favorite browser and print it from there. If all goes | |
263 well, the output should look exactly as it does in Vim. See |2html.vim| for | |
264 details. Don't forget to delete the HTML file when you are done with it. | |
265 | |
266 Instead of printing, you could also put the HTML file on a web server, and let | |
267 others look at the colored text. | |
268 | |
269 ============================================================================== | |
270 *06.6* Further reading | |
271 | |
272 |usr_44.txt| Your own syntax highlighted. | |
273 |syntax| All the details. | |
274 | |
275 ============================================================================== | |
276 | |
277 Next chapter: |usr_07.txt| Editing more than one file | |
278 | |
14519 | 279 Copyright: see |manual-copyright| vim:tw=78:ts=8:noet:ft=help:norl: |