mirror of
https://github.com/amix/vimrc
synced 2025-07-21 20:05:00 +08:00
280
doc/usr_06.txt
Normal file
280
doc/usr_06.txt
Normal file
@ -0,0 +1,280 @@
|
||||
*usr_06.txt* For Vim version 7.4. Last change: 2009 Oct 28
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
Using syntax highlighting
|
||||
|
||||
|
||||
Black and white text is boring. With colors your file comes to life. This
|
||||
not only looks nice, it also speeds up your work. Change the colors used for
|
||||
the different sorts of text. Print your text, with the colors you see on the
|
||||
screen.
|
||||
|
||||
|06.1| Switching it on
|
||||
|06.2| No or wrong colors?
|
||||
|06.3| Different colors
|
||||
|06.4| With colors or without colors
|
||||
|06.5| Printing with colors
|
||||
|06.6| Further reading
|
||||
|
||||
Next chapter: |usr_07.txt| Editing more than one file
|
||||
Previous chapter: |usr_05.txt| Set your settings
|
||||
Table of contents: |usr_toc.txt|
|
||||
|
||||
==============================================================================
|
||||
*06.1* Switching it on
|
||||
|
||||
It all starts with one simple command: >
|
||||
|
||||
:syntax enable
|
||||
|
||||
That should work in most situations to get color in your files. Vim will
|
||||
automagically detect the type of file and load the right syntax highlighting.
|
||||
Suddenly comments are blue, keywords brown and strings red. This makes it
|
||||
easy to overview the file. After a while you will find that black&white text
|
||||
slows you down!
|
||||
|
||||
If you always want to use syntax highlighting, put the ":syntax enable"
|
||||
command in your |vimrc| file.
|
||||
|
||||
If you want syntax highlighting only when the terminal supports colors, you
|
||||
can put this in your |vimrc| file: >
|
||||
|
||||
if &t_Co > 1
|
||||
syntax enable
|
||||
endif
|
||||
|
||||
If you want syntax highlighting only in the GUI version, put the ":syntax
|
||||
enable" command in your |gvimrc| file.
|
||||
|
||||
==============================================================================
|
||||
*06.2* No or wrong colors?
|
||||
|
||||
There can be a number of reasons why you don't see colors:
|
||||
|
||||
- Your terminal does not support colors.
|
||||
Vim will use bold, italic and underlined text, but this doesn't look
|
||||
very nice. You probably will want to try to get a terminal with
|
||||
colors. For Unix, I recommend the xterm from the XFree86 project:
|
||||
|xfree-xterm|.
|
||||
|
||||
- Your terminal does support colors, but Vim doesn't know this.
|
||||
Make sure your $TERM setting is correct. For example, when using an
|
||||
xterm that supports colors: >
|
||||
|
||||
setenv TERM xterm-color
|
||||
<
|
||||
or (depending on your shell): >
|
||||
|
||||
TERM=xterm-color; export TERM
|
||||
|
||||
< The terminal name must match the terminal you are using. If it
|
||||
still doesn't work, have a look at |xterm-color|, which shows a few
|
||||
ways to make Vim display colors (not only for an xterm).
|
||||
|
||||
- The file type is not recognized.
|
||||
Vim doesn't know all file types, and sometimes it's near to impossible
|
||||
to tell what language a file uses. Try this command: >
|
||||
|
||||
:set filetype
|
||||
<
|
||||
If the result is "filetype=" then the problem is indeed that Vim
|
||||
doesn't know what type of file this is. You can set the type
|
||||
manually: >
|
||||
|
||||
:set filetype=fortran
|
||||
|
||||
< To see which types are available, look in the directory
|
||||
$VIMRUNTIME/syntax. For the GUI you can use the Syntax menu.
|
||||
Setting the filetype can also be done with a |modeline|, so that the
|
||||
file will be highlighted each time you edit it. For example, this
|
||||
line can be used in a Makefile (put it near the start or end of the
|
||||
file): >
|
||||
|
||||
# vim: syntax=make
|
||||
|
||||
< You might know how to detect the file type yourself. Often the file
|
||||
name extension (after the dot) can be used.
|
||||
See |new-filetype| for how to tell Vim to detect that file type.
|
||||
|
||||
- There is no highlighting for your file type.
|
||||
You could try using a similar file type by manually setting it as
|
||||
mentioned above. If that isn't good enough, you can write your own
|
||||
syntax file, see |mysyntaxfile|.
|
||||
|
||||
|
||||
Or the colors could be wrong:
|
||||
|
||||
- The colored text is very hard to read.
|
||||
Vim guesses the background color that you are using. If it is black
|
||||
(or another dark color) it will use light colors for text. If it is
|
||||
white (or another light color) it will use dark colors for text. If
|
||||
Vim guessed wrong the text will be hard to read. To solve this, set
|
||||
the 'background' option. For a dark background: >
|
||||
|
||||
:set background=dark
|
||||
|
||||
< And for a light background: >
|
||||
|
||||
:set background=light
|
||||
|
||||
< Make sure you put this _before_ the ":syntax enable" command,
|
||||
otherwise the colors will already have been set. You could do
|
||||
":syntax reset" after setting 'background' to make Vim set the default
|
||||
colors again.
|
||||
|
||||
- The colors are wrong when scrolling bottom to top.
|
||||
Vim doesn't read the whole file to parse the text. It starts parsing
|
||||
wherever you are viewing the file. That saves a lot of time, but
|
||||
sometimes the colors are wrong. A simple fix is hitting CTRL-L. Or
|
||||
scroll back a bit and then forward again.
|
||||
For a real fix, see |:syn-sync|. Some syntax files have a way to make
|
||||
it look further back, see the help for the specific syntax file. For
|
||||
example, |tex.vim| for the TeX syntax.
|
||||
|
||||
==============================================================================
|
||||
*06.3* Different colors *:syn-default-override*
|
||||
|
||||
If you don't like the default colors, you can select another color scheme. In
|
||||
the GUI use the Edit/Color Scheme menu. You can also type the command: >
|
||||
|
||||
:colorscheme evening
|
||||
|
||||
"evening" is the name of the color scheme. There are several others you might
|
||||
want to try out. Look in the directory $VIMRUNTIME/colors.
|
||||
|
||||
When you found the color scheme that you like, add the ":colorscheme" command
|
||||
to your |vimrc| file.
|
||||
|
||||
You could also write your own color scheme. This is how you do it:
|
||||
|
||||
1. Select a color scheme that comes close. Copy this file to your own Vim
|
||||
directory. For Unix, this should work: >
|
||||
|
||||
!mkdir ~/.vim/colors
|
||||
!cp $VIMRUNTIME/colors/morning.vim ~/.vim/colors/mine.vim
|
||||
<
|
||||
This is done from Vim, because it knows the value of $VIMRUNTIME.
|
||||
|
||||
2. Edit the color scheme file. These entries are useful:
|
||||
|
||||
term attributes in a B&W terminal
|
||||
cterm attributes in a color terminal
|
||||
ctermfg foreground color in a color terminal
|
||||
ctermbg background color in a color terminal
|
||||
gui attributes in the GUI
|
||||
guifg foreground color in the GUI
|
||||
guibg background color in the GUI
|
||||
|
||||
For example, to make comments green: >
|
||||
|
||||
:highlight Comment ctermfg=green guifg=green
|
||||
<
|
||||
Attributes you can use for "cterm" and "gui" are "bold" and "underline".
|
||||
If you want both, use "bold,underline". For details see the |:highlight|
|
||||
command.
|
||||
|
||||
3. Tell Vim to always use your color scheme. Put this line in your |vimrc|: >
|
||||
|
||||
colorscheme mine
|
||||
|
||||
If you want to see what the most often used color combinations look like, use
|
||||
this command: >
|
||||
|
||||
:runtime syntax/colortest.vim
|
||||
|
||||
You will see text in various color combinations. You can check which ones are
|
||||
readable and look nice.
|
||||
|
||||
==============================================================================
|
||||
*06.4* With colors or without colors
|
||||
|
||||
Displaying text in color takes a lot of effort. If you find the displaying
|
||||
too slow, you might want to disable syntax highlighting for a moment: >
|
||||
|
||||
:syntax clear
|
||||
|
||||
When editing another file (or the same one) the colors will come back.
|
||||
|
||||
*:syn-off*
|
||||
If you want to stop highlighting completely use: >
|
||||
|
||||
:syntax off
|
||||
|
||||
This will completely disable syntax highlighting and remove it immediately for
|
||||
all buffers.
|
||||
|
||||
*:syn-manual*
|
||||
If you want syntax highlighting only for specific files, use this: >
|
||||
|
||||
:syntax manual
|
||||
|
||||
This will enable the syntax highlighting, but not switch it on automatically
|
||||
when starting to edit a buffer. To switch highlighting on for the current
|
||||
buffer, set the 'syntax' option: >
|
||||
|
||||
:set syntax=ON
|
||||
<
|
||||
==============================================================================
|
||||
*06.5* Printing with colors *syntax-printing*
|
||||
|
||||
In the MS-Windows version you can print the current file with this command: >
|
||||
|
||||
:hardcopy
|
||||
|
||||
You will get the usual printer dialog, where you can select the printer and a
|
||||
few settings. If you have a color printer, the paper output should look the
|
||||
same as what you see inside Vim. But when you use a dark background the
|
||||
colors will be adjusted to look good on white paper.
|
||||
|
||||
There are several options that change the way Vim prints:
|
||||
'printdevice'
|
||||
'printheader'
|
||||
'printfont'
|
||||
'printoptions'
|
||||
|
||||
To print only a range of lines, use Visual mode to select the lines and then
|
||||
type the command: >
|
||||
|
||||
v100j:hardcopy
|
||||
|
||||
"v" starts Visual mode. "100j" moves a hundred lines down, they will be
|
||||
highlighted. Then ":hardcopy" will print those lines. You can use other
|
||||
commands to move in Visual mode, of course.
|
||||
|
||||
This also works on Unix, if you have a PostScript printer. Otherwise, you
|
||||
will have to do a bit more work. You need to convert the text to HTML first,
|
||||
and then print it from a web browser.
|
||||
|
||||
Convert the current file to HTML with this command: >
|
||||
|
||||
:TOhtml
|
||||
|
||||
In case that doesn't work: >
|
||||
|
||||
:source $VIMRUNTIME/syntax/2html.vim
|
||||
|
||||
You will see it crunching away, this can take quite a while for a large file.
|
||||
Some time later another window shows the HTML code. Now write this somewhere
|
||||
(doesn't matter where, you throw it away later):
|
||||
>
|
||||
:write main.c.html
|
||||
|
||||
Open this file in your favorite browser and print it from there. If all goes
|
||||
well, the output should look exactly as it does in Vim. See |2html.vim| for
|
||||
details. Don't forget to delete the HTML file when you are done with it.
|
||||
|
||||
Instead of printing, you could also put the HTML file on a web server, and let
|
||||
others look at the colored text.
|
||||
|
||||
==============================================================================
|
||||
*06.6* Further reading
|
||||
|
||||
|usr_44.txt| Your own syntax highlighted.
|
||||
|syntax| All the details.
|
||||
|
||||
==============================================================================
|
||||
|
||||
Next chapter: |usr_07.txt| Editing more than one file
|
||||
|
||||
Copyright: see |manual-copyright| vim:tw=78:ts=8:ft=help:norl:
|
Reference in New Issue
Block a user