Como faço para desmarcar um nome de arquivo?

8

Dado ~/foo/bar, eu posso /home/sds/foo/barusar expand-file-name.

No entanto, dado /Users/sds/foo/bar, como recebo ~/foo/bar?

Caso de uso: quero copiar um arquivo entre computadores e eles têm caminhos físicos diferentes para o meu diretório pessoal.

sds
fonte

Respostas:

9

Use a função abbreviate-file-name. C-h fdiz:

abbreviate-file-name is a compiled Lisp function in `files.el'.

(abbreviate-file-name FILENAME)

Return a version of FILENAME shortened using `directory-abbrev-alist`.
This also substitutes "~" for the user's home directory (unless the
home directory is a root directory) and removes automounter prefixes
(see the variable `automount-dir-prefix`).

Consulte também o manual Elisp, nó Directory Names .

Desenhou
fonte