On Thu, Jun 24, 2010 at 09:49:26AM -0400, David Fishburn wrote:VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Jun 22 2010 14:52:33) MS-Windows 32-bit GUI version with OLE support Included patches: 1-444 When I issue a finddir(), I get an absolute path back to the location of my file (in my particular case). When I issue a findfile(), I get just the file, which is kind of useless since I want to edit the file. This only tells me it found it, not where it found it. Looking at :h finddir() Returns the path of the first found match. When the found directory is below the current directory a relative path is returned. Otherwise a full path is returned. :h findfile() Just like |finddir()|, but find a file instead of a directory. So I should be receiving either a relative path name or a fullpath. Given the finddir() returned the fullpath in this case, findfile() should also. In my case, I received just the filename even though the file was several directories deep from the initial path to search from. finddir() did the "right thing". ...I followed these steps, and did not reproduce your Vim's behavior: 1. Create file ~/test/b/bb/bbb/b.file 2. `vim -u NONE -c 'chdir ~/test'` 3. :echo findfile('b.file', './**') Results in 'b/bb/bbb/b.file' 4. :echo finddir('bbb', './**') Results in 'b/bb/bbb'
In this case, I was several levels deep but this file was also within the same directory. So what was returned was a relative filename.
I have written my own function for includeexpr, and since a file without a path was returned it failed to open it. So now I detect this case and add the current local directory.
Thanks,
Dave
No comments:
Post a Comment