How do I enable syntax highlighting for .bash_aliases in vim?
Solution 1
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.
Solution 2
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:
Solution 3
Add the following line to ~/.vimrc (create it if it does not exist).
au BufNewFile,BufRead .bash_aliases call SetFileTypeSH("bash")
Related videos on Youtube
cukabeka
Updated on September 17, 2022Comments
-
cukabeka over 1 year
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? -
matthias krull over 13 yearsand/or add a modeline to your bash file vimdoc.sourceforge.net/htmldoc/options.html#modeline
-
Pharaun over 13 years@Mugen Kenichi - Oh good catch there! I never use modeline but I've seen it in files before.
-
icco over 13 yearsThis 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
-
cukabeka over 13 yearsPerfect! This solved my problem.
-
idbrii over 12 yearsYou 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).
-
Bogdan Calmac over 10 yearsMy 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.
-
4wk_ almost 6 yearsDespite the fact I think the
.vimrc
edit is more reliable, VIM modelines are just awesome! Thanks. -
Jinghao Shi almost 6 yearsI use vim 8 but I don't need the modeline (# vim ...). Just set the filetype to sh in my vimrc does the trick. Somehow the filetype should not
bash
but justsh
.