17

How do I set up a default syntax for files that have no extension in vim?

3 Answers 3

23

One way would be to add an autocommand to your .vimrc for files that don't have the syntax set:

au BufNewFile,BufRead * if &syntax == '' | set syntax=html | endif

Or, you could set the filetype for any file that it's not defined for:

filetype plugin on
au BufNewFile,BufRead * if &ft == '' | set ft=html | endif

Setting filetype plugin on along with the au command gives the added benefit of loading HTML plugins if you have any. This also sets the syntax to "html" as well.

Sign up to request clarification or add additional context in comments.

Comments

6

To pick the default syntax for files without an extension, you can create an autocommand that checks if the filename contains a ., and if not, switches to the desired syntax:

autocmd BufNewFile,BufRead * if expand('%:t') !~ '\.' | set syntax=perl | endif

This one picks perl as a default syntax, but you can simply use whichever is appropriate.

Comments

0

If I remeber it right you can put a file named syntax.vim inside your ~/.vim/syntax folder. This file is used as default syntax highlight source. If your .vim folder does not exist, you have to create it:

mkdir ~/.vim
mkdir ~/.vim/syntax
touch ~/.vim/syntax/syntax.vim

Now you can add your default syntax to the syntax.vim file. For further documentation you can look at the vim sourceforge page.

Hope this helps.

4 Comments

Then please be more accurate about your problem in your description.. it's not very descriptive right now.
Some files have no extensions (suffixes) right? Case in point, html files I work on don't have .html suffixes. They're named like this: file1, file2, etc. Now, I'd like vim to automatically set html syntax when I'm opening those extension-less files. How do I do that?
@zly: This can be used to do exactly what you asked for - you can edit the installed syntax.vim, or copy it into ~/.vim/syntax. This file is sourced when you run syntax enable, so it can easily check to see if a filetype was detected, and use a default (e.g. html) syntax if not.
@Jefromi, I was expecting specifics not guidelines; guess I wasn't specific enough what I was expecting ;-) @Curt Nelson did answer my question tho.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.