Quick links: help overview · quick reference · user manual toc · reference manual toc
Go to keyword (shortcut: k)
Site search (shortcut: s)
usr_06.txt  	Nvim

		     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

06.1  	Switching it on
06.2  	No or wrong colors?
06.3  	Different colors
06.4  	With colors or without colors
06.5  	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

Syntax highlighting is enabled by default.  Nvim will automagically detect the
type of file and load the right syntax highlighting.

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

- 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.

- 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

		: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

		# 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 init.vim 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 -p ~/.config/nvim/colors
	!cp $VIMRUNTIME/colors/morning.vim ~/.config/nvim/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:

	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

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.

If you want to stop highlighting completely use: 

	:syntax off

This will completely disable syntax highlighting and remove it immediately for
all buffers.  See :syntax-off for more details.

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  	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:noet:ft=help:norl:

Quick links: help overview · quick reference · user manual toc · reference manual toc