2011-04-26 11 views
10

Utilizzo un Mac e MacVim 7.3.Come espandere un collegamento simbolico al percorso completo di un nome file in vim?

Ho un collegamento simbolico ~/some/symlink che è un collegamento a un file reale ~/some/actual_file.

Quando "vim ~/some/symlink" richiama il file in vim con la riga di stato di vim dicendo che il nome è ~/some/symlink, che ha senso.

Come si ottiene il percorso completo del file "reale" ~/some/actual_file dall'interno di vim? Voglio che la riga di stato di vim dica ~/some/actual_file invece di ~/some/symlink.

Mi aspettavo che la funzione vim resolve() funzionasse, data la sua descrizione di aiuto (incollata sotto), ma risolve ("~/some/symlink") restituisce ~/some/symlink, quindi non è di aiuto.

Cosa mi manca? Grazie!

resolve({filename})     *resolve()* *E655* 
     On MS-Windows, when {filename} is a shortcut (a .lnk file), 
     returns the path the shortcut points to in a simplified form. 
     On Unix, repeat resolving symbolic links in all path 
     components of {filename} and return the simplified result. 
     To cope with link cycles, resolving of symbolic links is 
     stopped after 100 iterations. 
     On other systems, return the simplified {filename}. 
+0

Utilizzando vim è possibile eseguire il comando e ottenere l'output utilizzando il sistema ("cmd"). Con questo puoi essere in grado di chiamare "readlink -m" per ottenere il vero percorso. – Lynch

risposta

22

Il tuo problema è il "~", che non è realmente parte del nome file, ma piuttosto una scorciatoia per la tua home directory. È possibile utilizzare expand() e quindi resolve(). ad esempio:

:echo resolve(expand("~/some/symlink")) 

expand() sarà anche ampliare le cose come le variabili di ambiente (ad esempio: $HOME, $VIMRUNTIME).

+0

Risposta perfetta, grazie Laurence! – svec

+3

@svec Se non si desidera 'expand()' per espandere le variabili di ambiente ed effettuare il globbing, usare 'fnamemodify ('~/some/symlink', ': p')'. – ZyX

+0

Per ottenere il percorso completo del file corrente, sostituire '%' per '~/some/symlink'. Legalo a una combinazione di tasti leader per avere a portata di mano quando dimentichi quale file stai modificando ... (-_-) –

Problemi correlati