Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

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
add comment

2 Answers

up vote 3 down vote accepted

Go to vim and run:

:echo $VIMRUNTIME

Usually the value will be something like:
/usr/share/vim/vim72
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 Oct 7 '10 at 19:39
2  
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). –  pydave Sep 9 '11 at 19:13
add comment

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
endif

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 vimdoc.sourceforge.net/htmldoc/options.html#modeline –  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
3  
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 comment

Your Answer

 
discard

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.