168

I know how to turn syntax highlighting on and off in vim by running this in the editor:

:syntax on/off

But I want syntax highlighting to be enabled by default, so I don't have to turn it on every time I run vim.

How do I do this?

1
  • 2
    Perhaps move to the Vim Stack Exchange? Commented Oct 21, 2016 at 5:09

7 Answers 7

257

Edit your $HOME/.vimrc (Unix/Linux/OSX) or $HOME/_vimrc (Windows) to include the following line:

syntax on

EDIT

If your syntax highlighting doesn't work when you start Vim, you probably don't have a $HOME/.vimrc or $HOME/_vimrc (known collectively as vimrc from now on). In that case, you have two options:

  • Create an empty vimrc.
  • Copy vimrc_example.vim as your vimrc (recommended, thanks @oyenamit). You can find vimrc_example.vim in the runtime directory.

The location of the runtime directory varies between operating systems:

  • On my system (Arch Linux, and Mac, thanks @totophe), it's in /usr/share/vim/vim73.
  • On Windows, it's in \Program Files\Vim\vim73.
Sign up to request clarification or add additional context in comments.

8 Comments

I cant find .vimrc, im using a mac running Lion. I can find .viminfo
If there isn't one, you can create it. Just type :e ~/.vimrc to vim, type in the line and save (:w).
@lilroo While this solves your problem, I would advise you against creating a vimrc from scratch. Instead, pickup the example vimrc from the following location: /Applications/MacVim.app/Contents/Resources/vim/runtime/vimrc_example.vim. Copy this file to your $HOME as .vimrc. It switches on a lot of basic stuff for you automatically (syntax, search highlighting, backup etc). You can then tweak it based on your needs.
Is there any difference between syntax on and syntax enable?
@Sonique syntax enable keeps your color settings, syntax on overrides them (:help :syn-on).
|
17

To highlight the syntax for a Specific File TYPE (programming language), you can use following commands, while file is already opened in Vim and you want to try syntax highlighting on the fly:

:set filetype=py

OR the shorter format:

:se ft=py

Above Vim commands will change the syntax-highlighting for currently opened file as it should for a Python file/script.

1 Comment

The above method is especially helpful for when you have an unsaved file that you want to set the syntax highlighting for (e.g. when you use vim as a notepad with markdown)
8

Uncommenting the "syntax on" in vimrc file.

Move to the directory,

cd /etc/vim/

vim vimrc

now search "syntax" and uncomment it. Save it and reopen the file in vim.

1 Comment

Best way for me. Tks. If you don't have syntax just add, syntax enable. Then source vimrc. You got it permanently for later use
4

For anyone that gets here because of TurnKeyLinux using vim-tiny which doesn't have the syntax module enabled try this article to install full vim

http://www.turnkeylinux.org/forum/support/20140108/solved-bash-command-not-found-after-replacing-package

tl;dr

# apt-get remove vim-tiny
# apt-get install vim
# hash vim
# vim

1 Comment

FWIW as of v14.0, you can just install vim and it all works as you'd expect (regardless of whether you uninstall vim-tiny or not). It was a bug in the way vim-tiny was configured to run as 'vim'. Now it updates the binary path properly...
2

I also found that this is one of the lessons in vimtutor.

To find it, you can type command vimtutor in your Terminal (I used on Mac), and scroll down to see if there is a lesson called CREATE A STARTUP SCRIPT (for me it was Lesson 7.2), where it describes how to set up an initial vimrc file.

1 Comment

I have trouble with this. Running the tutorial has been fine although I don't have a $VIMRUNTIME set so I have no idea where this vimrc_example.vim is stored.
1

In my $HOME/.vimrc I load a color scheme (solarized) and found that I need to place syntax on after I load the plugin. If it's before loading the plugin it doesn't work.

" this turns syntax highlighting on by default

set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'lifepillar/vim-solarized8'

syntax on
" this does not turn syntax highlighting on by default

syntax on

set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'lifepillar/vim-solarized8'

Comments

1

To Find the vimrc_example.vim as suggested in answers above

Command : sudo find /usr -iname "vimrc_example.vim"

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.