Как развернуть символическую ссылку на полный путь к имени файла в vim? - PullRequest
10 голосов
/ 26 апреля 2011

Я использую Mac и MacVim 7.3.

У меня есть символическая ссылка ~ / some / symlink, которая является ссылкой на реальный файл ~ / some / actual_file.

КогдаЯ "vim ~ / some / symlink" вызывает файл в vim со строкой состояния vim, говоря, что имя ~ / some / symlink, что имеет смысл.

Как мне получить полный путь к "реальный файл ~ / some / actual_file изнутри vim?Я хочу, чтобы в строке состояния vim было написано ~ / some / actual_file вместо ~ / some / symlink.

Я ожидал, что функция resolv () будет работать, учитывая описание справки (вставлено ниже), но разрешить("~ / some / symlink") возвращает ~ / some / symlink, так что это не поможет.

Чего мне не хватает?Спасибо!

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}.

1 Ответ

24 голосов
/ 26 апреля 2011

Ваша проблема - «~», которая на самом деле не является частью имени файла, а скорее является сокращением для вашего домашнего каталога. Вы можете использовать expand(), а затем resolve(). например:

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

expand() также будет расширять такие вещи, как переменные среды (например: $HOME, $VIMRUNTIME).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...