Vim file name completion relative to current file
Solution 1:
If you
:set autochdir
you'll get the behavior you desire. However, if you need to keep the working directory (e.g. to easily open other project files), you'd have to save / restore the CWD with autocmds:
:autocmd InsertEnter * let save_cwd = getcwd() | set autochdir
:autocmd InsertLeave * set noautochdir | execute 'cd' fnameescape(save_cwd)
Solution 2:
@Ingo Karkat's answer is nice, but I am a little hesitant to put that in my vimrc, because even the help page for 'autochdir'
gives a note that it's useage will break some plugins.
I have come up with my own solution which may be very niche to my use-cases:
inoremap ./<C-X><C-F> <C-O>:lcd %:p:h<CR><C-X><C-F>
I plan on extracting it out into a function and setting a variable for the pwd before the lcs command is issued and then resetting it at some point in time. It would be nice if there was a menu autocmd.
I may or may not use this, but I thought I would throw out another solution.