私はgitを呼び出してトップレベルのディレクトリを取得します( Is there a way to get the git root directory in one command?に従って )。
(let ((tmpbuffer (get-buffer-create (make-temp-name "git"))))
(call-process "git" nil tmpbuffer nil "rev-parse" "--show-toplevel")
(with-current-buffer tmpbuffer
(with-output-to-string
(princ (buffer-string))
(kill-buffer))))
ただし、返される文字列には末尾の改行があります。私はそれを取り除く方法がわかりません。