Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Enable syntax highlight for Nginx conf file in Vim
#!/bin/bash
#
# Highligh Nginx config file in Vim
# Download syntax highlight
mkdir -p ~/.vim/syntax/
wget http://www.vim.org/scripts/download_script.php?src_id=19394 -O ~/.vim/syntax/nginx.vim
# Set location of Nginx config file
cat > ~/.vim/filetype.vim <<EOF
au BufRead,BufNewFile /etc/nginx/*,/etc/nginx/conf.d/*,/usr/local/nginx/conf/* if &ft == '' | setfiletype nginx | endif
EOF
@WyattJia
Copy link

WyattJia commented Jan 22, 2018

Very useful, thanks.

@yogin16
Copy link

yogin16 commented Mar 4, 2018

added one more regex param if the nginx.conf file is not for the default location of the nginx - ideally you should just add your location path in that

#!/bin/bash
#
# Highligh Nginx config file in Vim

# Download syntax highlight
mkdir -p ~/.vim/syntax/
wget http://www.vim.org/scripts/download_script.php?src_id=19394 -O ~/.vim/syntax/nginx.vim

# Set location of Nginx config file
cat > ~/.vim/filetype.vim <<EOF
au BufRead,BufNewFile /etc/nginx/*,/etc/nginx/conf.d/*,/usr/local/nginx/conf/*,*/conf/nginx.conf if &ft == '' | setfiletype nginx | endif
EOF

@movalex
Copy link

movalex commented Mar 14, 2018

I'd better use curl instead

curl http://www.vim.org/scripts/download_script.php?src_id=19394 -o ~/.vim/syntax/nginx.vim

@jjsty1e
Copy link

jjsty1e commented Apr 9, 2018

great! this is ok for me on my mac

@passerbythesun
Copy link

passerbythesun commented May 5, 2018

great

@timogoosenwork
Copy link

timogoosenwork commented May 9, 2018

This worked for me on Mac:
Thanks!

$ mkdir -p ~/.vim/syntax/
$ wget http://www.vim.org/scripts/download_script.php?src_id=19394 -O ~/.vim/syntax/nginx.vim
$ cat > ~/.vim/filetype.vim <<EOF
au BufRead,BufNewFile /etc/nginx/*,/etc/nginx/conf.d/*,/usr/local/etc/nginx/* if &ft == '' | setfiletype nginx | endif
EOF

@Yelfive
Copy link

Yelfive commented Jan 16, 2019

thanks

@cimminob
Copy link

cimminob commented Mar 28, 2019

Works on Ubuntu18.04 as of 3-27-19, thanks a bunch

@lingtalfi
Copy link

lingtalfi commented May 9, 2019

Thanks.

@nballenger
Copy link

nballenger commented May 14, 2019

May want to use cat >> ~/.vim/filetype.vim <<EOF if you have a pre-existing filetype.vim file--the single > output redirection will overwrite the file, double >> will append to it.

@Soneji
Copy link

Soneji commented Jul 28, 2019

thank you =D

@kamilr
Copy link

kamilr commented Apr 13, 2020

for my Vim (8.1) by team+vim@tracker.debian.org only this code will work:

#!/bin/bash
#
# Highligh Nginx config file in Vim

# Download syntax highlight
mkdir -p ~/.vim/syntax/
curl http://www.vim.org/scripts/download_script.php?src_id=19394 -o ~/.vim/syntax/nginx.vim

# Set location of Nginx config file
cat >> ~/.vim/filetype.vim <<EOF
au BufRead,BufNewFile /etc/nginx/*,/etc/nginx/conf.d/*,/usr/local/nginx/conf/* if &ft == '' | set filetype=nginx | endif
EOF

additionally I add previous fixes

@meson10
Copy link

meson10 commented Jun 15, 2020

#!/bin/bash
#
# Highligh Nginx config file in Vim

# Download syntax highlight
mkdir -p ~/.vim/syntax/
curl -L http://www.vim.org/scripts/download_script.php?src_id=19394 -o ~/.vim/syntax/nginx.vim

# Set location of Nginx config file
cat >> ~/.vim/filetype.vim <<EOF
au BufRead,BufNewFile /etc/nginx/*,/etc/nginx/conf.d/*,/usr/local/nginx/conf/* if &ft == '' | set filetype=nginx | endif
EOF

Add curl -L to follow redirects.

@caio-vinicius
Copy link

caio-vinicius commented Jan 7, 2021

Very very useful, thank you very much. Eye candy for my eyes

@normic
Copy link

normic commented Jan 21, 2021

Quite useful, thank you.

@SerafinSahary
Copy link

SerafinSahary commented Jun 5, 2021

an alternative to filetype.vim file would be having sth like that at the end of nginx config file:

# vi: filetype=nginx

pros: you are not limited to have nginx config in /etc/nginx directory
cons: you need to add this modeline to the file

@francotel
Copy link

francotel commented Jun 29, 2021

perfect ubuntu 18.04

@crpb
Copy link

crpb commented Nov 8, 2021

👍 now i can see my typo's a bit earlier :-)
for users with vim-plug

cat << EOF > ~/.vim/ftdetect/nginx.vim
au BufRead,BufNewFile /etc/nginx/*,/etc/nginx/conf.d/*,/usr/local/nginx/conf/* if &ft == '' | setfiletype nginx | endif
EOF

@saltfishh
Copy link

saltfishh commented Dec 1, 2021

it's useful,thanks for that

@uvwild
Copy link

uvwild commented Feb 8, 2022

not sure why its missing, but the standard nginx.conf is not in the filetypes list.
Why would i not use the coloring on any file called nginx.conf?
so i needed
au BufRead,BufNewFile nginx.conf,/etc/nginx/,/etc/nginx/conf.d/,/usr/local/nginx/conf/* if &ft == '' | setfiletype nginx | endif

We use a lot of dockerized / containerized nginx's where the config is never in the standard locations

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment