Pergunta

Eu tenho a seguinte configuração:

mkdir /1
mkdir /1/2
mkdir /1/2/3
ln -s /1/2/3 /1/3

Se eu fizer cd /1/3, e depois pwd, recebo /1/3. Se eu usar pwd -P, posso obter /1/2/3, ou pwd -L à força /1/3.

No VIM, eu estou procurando uma maneira de obter o /1/3.
Se eu abrir um arquivo em /1/3/foo.txt, e eu usar algo como fnamemodify(bufname(winbufnr(0)), ':p:h'), ele retorna /1/2/3.
Como posso dizer a ele para me dar o mesmo diretório que pwd daria?

Outras dicas

Resposta curta:

Você pode ser capaz de usar montagem de ligação como um substituto para links simbólicos. Veja man mount.

Resposta longa:

Eu tive um problema semelhante, como eu tenho uma pequena ligação simbólica para um montado partição,

/e -> /media/iam/ext4test

Eu também tenho um ~/.vimrc -> /e/configs/.vimrc link simbólico.

Eu estava correndo em apuros tentando pop em netrw no diretório que contém (eu estava pousando em ~, mas eu não podia ver uma forma robusta para evitar que, tendo em mente o desejo de usar marcadores, etc).

Minha solução foi, depois de considerar possivelmente alterando o ponto de montagem, é que você pode Adicionar pontos de montagem. Então, depois de unlink e, eu usei mount --bind /media/iam/ext4test /e.

Agora, se eu estou em /e/configs/.vimrc e uso :edit . (ou :e. etc), ele vai me pop em netrw no diretório que contém.

Editar:

O mount --bind comando faz alterações transitórias. Para uma permanente bind de montagem, acrescento o seguinte para /etc/fstab,

# <file system>      <mount point>  <type>  <options>  <dump>  <pass>
/media/iam/ext4test  /e             none    bind       0       0
scroll top