Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm working on reorganizing my .bashrc. I moved my aliases to .bash_aliases (which is sourced by .bashrc, but I can't figure out how to enable syntax highlighting for this file. vim seems unable to figure out what language the file is in. It works fine for .bashrc. Any ideas?

share|improve this question
up vote 8 down vote accepted

Go to vim and run:


Usually the value will be something like:
Then edit (using root) the file /usr/share/vim/vim72/filetype.vim
Search for bashrc.
You will find a line that looks like this:

au BufNewFile,BufRead .bashrc*,bashrc,bash.bashrc,.bash_profile*,.bash_logout*,*.bash,*.ebuild call SetFileTypeSH("bash")

Edit the line and add your filename (.bash_aliases) to it.

That's it, now it should work.

share|improve this answer
Perfect! This solved my problem. – Matthew Pirocchi Oct 7 '10 at 19:39
You shouldn't edit the vim distribution (files in /usr/share/vim). Your changes may be overwritten when you update vim. Instead, you should create your own script that does the same (or adding that line to your vimrc would do it). – idbrii Sep 9 '11 at 19:13

The answer is in this: vimdoc - setf but to throw you a bone, if you just want the syntax & syntax highlighting to work you can do:

  :setf bash

Another possiability which I just realized when I was answering another VIM question was that you could also add this section to your .vimrc file and it would automatically enable syntax highlighting for the .bash_aliases file everytime you edit it without needing a modeline or having to manually type in :setf bash each time you open the file.

if has("autocmd")
  augroup bashalias
    autocmd BufRead,BufNewFile .bash_aliases set filetype=bash
  augroup END

Thirdly as Mugen Kenichi below in the comments points out, you could also add a modeline to the .bash_alias file also as such:

# vim: set filetype=bash: 
share|improve this answer
and/or add a modeline to your bash file – matthias krull Aug 20 '10 at 19:17
@Mugen Kenichi - Oh good catch there! I never use modeline but I've seen it in files before. – Pharaun Aug 20 '10 at 19:43
This really helped me a lot, thanks guys. One thing I had to do, was I had to set the filetype to sh instead of bash, but I should probably just find a good bash vim file instead, as that would solve my problem as well :p – icco Sep 28 '10 at 17:44
My VIM 7.3 from cygwin also does not know about "filetype=bash". If you read through filetype.vim, "sh" is used as filetype for all other bash patterns. – Bogdan Calmac Oct 31 '13 at 18:42

Add the following line to ~/.vimrc (create it if it does not exist).

au BufNewFile,BufRead .bash_aliases call SetFileTypeSH("bash")
share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.