Q. How do I turn on or off color syntax highlighting in vi or vim text editor under UNIX or Linux?
A. Vim or vi is a text editor. It can be used to edit all kinds of plain text. It is especially useful for editing programs or UNIX/Linux configuration files.
Task: Turn on color syntax highlighting
Open file (for example file.c):
$ vi file.c
Now press ESC key, type : syntax on
:syntax on
Task: Turn off color syntax highlighting
To turn it back off, press ESC key, type : syntax off
:syntax off
You can edit ~/.vimrc file and add command syntax on to it so that next you will start vim with color syntax highlighting option
$ cd
$ vi .vimrc
Append the following line:
syntax on
Save and close the file.
C source code editing while syntax highlighting is on in vi or vim:

You should follow me on twitter here or grab rss feed to keep track of new changes.
Featured Articles:
- 30 Handy Bash Shell Aliases For Linux / Unix / Mac OS X
- Top 30 Nmap Command Examples For Sys/Network Admins
- 25 PHP Security Best Practices For Sys Admins
- 20 Linux System Monitoring Tools Every SysAdmin Should Know
- 20 Linux Server Hardening Security Tips
- Linux: 20 Iptables Examples For New SysAdmins
- Top 20 OpenSSH Server Best Security Practices
- Top 20 Nginx WebServer Best Security Practices
- 20 Examples: Make Sure Unix / Linux Configuration Files Are Free From Syntax Errors
- 15 Greatest Open Source Terminal Applications Of 2012

- My 10 UNIX Command Line Mistakes
- Top 10 Open Source Web-Based Project Management Software
- Top 5 Email Client For Linux, Mac OS X, and Windows Users
- The Novice Guide To Buying A Linux Laptop












{ 46 comments… read them below or add one }
Hey this Syntax-highlighting works!!
Looks cool
Thanks.
In vim editor you can use syntax enable too.
Inside vim in command mode press shift : and write syntax press space and press tab and vim go through out different syntax command
I believe that the exact syntax is “set syntax=on”. At least that is how it works for mine.
To me as well. set syntax=on is working and not just syntax=on
@ Bobby, while it may work, I’m guessing you have an extra command after typing vim filename, that is because it’s asking for extra info…and can be avoided by hitting enter the correct way is:
set ts=4
set sw=4
set spell
set spl=en
syntax on
set wrap
set ai
etc….
All of the obove suggestions may not work since on most flavors of linux vi is pointing to vim. unalias vi.
$ which vi
vi=vim
$ unalias vi
$ which vi
/bin/vi
FINALLY I got syntax highlighting turned on. I had no idea how to do it. It wasn’t in the man page at all or anywhere else I had looked online until I found it here. Thanks!
For Ubuntu, you probably have the package “vim-tiny” installed by default.
To check this run:
dpkg -l vim*So install the real vim with:
sudo apt-get install vimor
sudo apt-get install vim-fullOn Debian Etch I originally just had vim-tiny, but I now have:
svn@svn:infrastructure$ dpkg -l vim*Hey Vivek,
Thanks:) it’s working!!!!!!
I am using fedora 5.My editor is VIM 6.4.7.I wanted to highlight keywords of my C program.I tried adding “syntax on” to your $HOME/.vimrc file which is copied from /usr/share/vim/vim64/gvimrc.examples…
and I tried the above mentioned tips also….pls help
Hi,
This doesn’t work in vi. any idea why? i don’t use vim and is there any setup required to use vim?
Thanks,
Senthil
@Senthil
:syntax on and :syntax off don’t work in vi. They are features of vim. vi is ancient, emerging from work by George Colouris and Bill Joy circa 1973 to 1979. It had no color and no understanding of syntax at all. This was an epoch before color was available on computers (except for government supercomputers used to track incoming intercontinental ballistic missiles, perhaps). Vim arrived much later, the first versions appearing in the early 1990s.
Ref: http://www.softpanorama.org/Editors/Vimorama/history.shtml
Thanks, this works for me on ubuntu 8.10
It’s great! Thanks.
I am using Vim on fedora.. How do you turn off yellow highlight between space (text) in vim file?
what command turn off yellow highlight?
use:
:noh
to turn it off
This worked for me
This worked for me. Thanks a ton. Saved a lot of my time.
I turned off the colorization. Whew. Now I would like to get rid of the highlighted
matching braces. When I put the cursor on an open curley brace it highlights that
brace and the matching closing brace. Rescue me!
Titus sends
Even I had searched online a lot before but nothing worked..thankfully I landed here today and it finally worked..:) Thanks
Hey. If you are using a dark background for your terminal you may want to
” set background=dark “
‘syn on/syn off’, instead of typing ‘syntax’, works as well in vim.
Imagine what your boss would think if he/she found out you were getting paid while typing
those three extra letters!!!
Bubnoff
I got syntax highlighting turned on on linux VI editor. Thanks!
add a file name .exrc in home dir
set cindent ” for c indentation(correct spacing)
syntax on ” coloring according to c syntax
set nu ” line numbers
thanks all,,,,,, i was using vi in cygwin and syntax on worked…….. lol……….
hi,
I am using fedora 13.I wanted to highlight keywords of my C program, i tried all the above told but i am still unable..pls help me out,I am new to linux
What kind of idiot decided that we need syntax highlight ?
I’m very glad to have found this blog and to have learned to use syntax off. Those colors were a profound interference for me.
Indeed. Thank you.
Some completely other kind of idiot than me, apparently.
Thanks! Worked well.
Syntax highlighting is a huge benefit to me. It makes commented and uncommented lines different colors in config files. Much easier for finding which options are enabled.
I’m colorblind, and the syntax highlighting just makes the code hard to read.
I hope the next version of VIM lets me specify what color I want for background and what color I want for foreground instead of requiring me to choose from their predefined templates.
Hey! Maybe VIM already lets me specify bg and fg colors! Does anyone know the syntax for the command?
I try. but i didn’t got it. its not working in my Linux OS.
I use Fedora 14.
Plz give me a help to solve this problem
1st checkl you have installed vim by connanding
yum install vim-enhanced
if you got message like “already installed and latest version
Nothing to do”
if not install it ,
then open your .c/ .cpp file and command
:set syntax=on
Thank you very much very helpful.
Its working Nice..!! Thank you..!!
If you use sudoedit to edit a file, vim won’t be able to determine what syntax to apply so you need to also do
hi, when i open a new .tex document, i have a different syntax than, when i open an already existing .tex document. I like the first one better, but typing :set syn=tex gives me the ugly one. Any ideas how i get the other one?
Thanks for the great tip!
how to compile c program in fedora 15?
Can anybody help?????
Hooray! Thanks, Rob who commented in 2009. I had syntax on and had adjusted the color settings, from 8 colors to 256, but the final key was to kill vim-tiny. Running Ubuntu and had installed vim-full but I was still apparently using vim-tiny. Just ‘sudo apt-get remove vim-tiny’ed. This post helped me with color settings http://stackoverflow.com/questions/3761770/iterm-vim-colorscheme-not-working
Thanks. The syntax highlighting finally works for me when I type :syntax on.
I use Vim Editor in Cygwin. 1.7.16-1(Latest version). But I am unable to make it default. I tried editing the $vi .vimrc. It just doesn’t work. Help would be appreciated.
One other piece of this puzzle, for those who are using the correct syntax to turn highlighting on, but are still not getting color: you might need to tell vim what syntax highlighting to use. It can’t always figure out the correct one.
For example, when editing a config file in vim, type
:set syntax=sh
That sets it to “shell script” highlighting. The syntax highlighting configs available are: c perl java html cpp sh csh
so if you’re editing a perl file, you’d type :set syntax=perl
hey..i m getting syntax comman not found
Cool. Good to know. Thanks.
I’m happy to turn the syntax highlighting OFF
It gets confusing with all the damn colors. I can never tell where the cursor is!
Now I need to turn off the colors that highlights EVERY DAMN MATCH when you search for text! Then that STAYS ON when you exit and return later.
Look, that’s a nice feature, but it deserves its own distinct command. Usually when I’m searching for something, I only want the NEXT one. And again, it makes it difficult to find the cursor, so I always end up making changes in the wrong place.
To turn off highlighting :noh
If anyone is still not getting colour or getting shades of grey (I was using securecrt) the doing :set term=ansi before :syntax on gave me colours. (Sinclair ZX Spectrum colours lol )