Tuesday, 2 July 2019

How do I get Vim home directory?


I wanted to set the VIMHOME variable this way (common to Windows and Linux),


let $VIMHOME=expand("%:p")."/..",

so that VIMHOME is "~/.vim" in Linux or "path/to/vimfiles" in Windows.


I put this in a var.vim file and placed this in the plugin directory. It loads properly, but VIMHOME is set only to "./..".


How do I get the full path of a file using expand?


Is there an easy way to set VIMHOME?


Edit: I changed the expression to:


let $VIMHOME=expand(":p:h")

Now, VIMHOME is set to "~/.vim/plugin" in Linux.


My requirement is setting VIMHOME to "~/.vim" or "path/to/vimfiles". But,


let $VIMHOME=expand(":p:h")
let $VIMHOME=expand("$VIMHOME:p:h")

is not working.


How can I resolve this?



Answer



Put this in your var.vim plugin file:


let $VIMHOME=expand(':p:h:h')

% in expand will refer to the file being edited (i.e. the pathname given on the command line). will refer to the file being ‘sourced’ (i.e. the plugin or startup file that is active when the expansion is made).


The :p modifier makes the pathname absolute and the :h suffix drops the last pathname component (i.e. the filename in this case).


No comments:

Post a Comment

How can I VLOOKUP in multiple Excel documents?

I am trying to VLOOKUP reference data with around 400 seperate Excel files. Is it possible to do this in a quick way rather than doing it m...