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?
- 15,036
4 Answers
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.
- 164
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:
- 400
Add the following line to ~/.vimrc (create it if it does not exist).
au BufNewFile,BufRead .bash_aliases call SetFileTypeSH("bash")
- 289
- 2
- 4
Follow up on @Pharaun's answer for vim 8 and multiple alias files. In order to get the highlighting correct there were two settings I had to do. First in the new .bash_aliases file:
# vim: set filetype=bash
As well as the check in my .vimrc
if has("autocmd")
augroup bashalias
autocmd BufRead,BufNewFile *_aliases set filetype=sh
augroup END
endif
Notice the filetype is sh as well as the * wildcard for multiple filenames.
Not sure why both these settings are needed. I tried to use just one setting but both combos were needed for the highlighting to be correct.
- 207