I want to have my .vimrc synced through github so it has to be public file, but at the same time i have to put some sensitive data (for example db passwords/hosts for dbext.vim) in it, without giving them away to others. What is the best way and how to do it?
You can include another file using the source
command. Simply put this at the top of your vimrc:
source($MYVIMRC . ".private")
Assuming your vimrc is ~/.vimrc
, that will expand to ~/.vimrc.private
. From now on, you can define variables in that file like this:
let my_db_password = "bacon"
Then you can simply refer to them by name in your main vimrc.
Notes
- You can call the private vimrc file whatever you want, it can even be in a different directory.
- If you want to use
~
in the path, you will need to useexpand()
. For example:source expand("~/.private-vimrc")
- To concatenate the variable's value with a string, use the
.
operator. For example:"jdbc:mysql://example.com/waffles?user=admin&password=" . my_db_password