Ответ 1
'file-truename
Из документации:
Верните имя имени FILENAME, которое должен быть абсолютным. Имя имя файла найдено, преследуя символическую ссылки как на уровне файла и на уровне каталогов содержащий его, пока ссылки не останутся на любом уровне.
Другое предлагаемое решение ('expand-file-name) оставляет символические ссылки на месте, что может быть или не быть тем, что вы хотите. 'file-truename использует' expand-file-name, поэтому они оба будут определять относительную папку по умолчанию для буфера (это то, о чем вы просите).
После просмотра комментария/вопроса на другой ответ проблема заключается в том, что каталог по умолчанию - это буфер, который вызывает нагрузку.
К счастью, существует переменная, которая "наборы нагрузки" сохраняет путь к загружаемому файлу. Попробуйте этот фрагмент кода:
;; this is in the file being loaded
(let ((default-directory (file-name-directory load-file-name)))
(file-truename "blih"))