On 16/09/12 15:18, Timothy Madden wrote:
Hello

In some situation if I try to edit a file like with
     :edit plugin/script.vim
I may end up with a buffer name like '../.vim/plugin/script.vim'

Note though two paths are equivalent, assuming the current directory is
named ".vim", still the buffer names are not the same in a literal sense.

This will happen when I already have the file opened (or listed) with
the long name (../.vim/plugin/script.vim), then I try to :edit it in a
different window with the short name.

In my script I would like to use :MkVimball command plugin from the
standard vimball plugin, and if I ran into this problem than MkVimball
will create for example a file like ../../src/vim/plugin/scriptname.vim
in the vimball archive. Even if the filename I pass to MkVimball really
is the right one, plugin/scriptname.vim.

For this to trigger, the MkVimball command should be seen from within a
:source'd script, and not directly from the command line. Anyway, I
think this should not happen (actually, I find this a bug in the
standard vimballPlugin, but that is another problem).

Is there a way to know if a file is already loaded/listed in a buffer,
with a modified path name like ../dir/script.vim instead of script.vim ?

Are there other cases where such a different path name may exist ?

Thank you,
Timothy Madden


Vim identifies files by their full path, but displays them (e.g. on the statusline) by a shorter path if possible. If you have several windows on a single buffer, but with different "local current directories", it may happen that Vim can shorten the name in one window but not in the other. However it should display all statuslines relative to what is the current directory now: if you change windows, and the LCDs are different, statuslines may change.

Normally any single file is opened in only one buffer, regardless of in how many windows (zero or more) it is displayed. If you type

        :ls

Vim will tell you which buffers are opened; add an exclamation mark if you want to see also the so-called "unlisted" buffers. No file should appear more than once in the list, even under different paths; if it does, it is probably a bug.

Different paths may exist if there are soft or hard links: in the case of soft links, IIUC Vim will resolve them and store the path after resolving all the soft links; if there are hard links (different directory entries, possibly in different directories, pointing to a single data area on disk) it is not always obvious which path has priority, and I don't know what Vim does. Hard links are a well-documented feature of Unix-like systems; on Windows they exist also, at least on NTFS filesystems, but the feature is poorly documented if at all. On Unix the . and .. directory entries are implemented as hard links; OTOH on DOS these entries were present as an exception to the fact that on FAT filesystems, different paths pointing to the same data cluster were a case of "crossed paths" error usually leading to data corruption.


Best regards,
Tony.
--
ARTHUR:  You fight with the strength of many men, Sir knight.
         I am Arthur, King of the Britons.  [pause]
         I seek the finest and the bravest knights in the land to join me
         in my Court of Camelot.  [pause]
         You have proved yourself worthy; will you join me?  [pause]
         You make me sad.  So be it.  Come, Patsy.
BLACK KNIGHT:  None shall pass.
The Quest for the Holy Grail (Monty Python)

--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

Reply via email to