Платформо-независимый путь (в LaTex и Elisp)? - PullRequest
2 голосов
/ 09 марта 2011

Я запускаю Emacs на Win7 и Ubuntu и пытаюсь поделиться большей частью моей конфигурации через dropbox.com.Я все еще не мог понять, как написать путь к загрузочным файлам или изображениям (например) независимым от платформы способом.

Я отразил свою структуру каталогов на обеих машинах, чтобы внутри домашнего каталога работал относительный путь.Есть ли способ добиться этого с помощью единственного пути без предложений if (если система ... еще ...) везде?

Я пытался ~ /, и иногда это работало, иногда нет.

'home' установлен на Win7, но он должен рассматриваться как% home% на Win7 и как $ HOME на ubuntu (верно?).

Мне нужно решение для:

  • код elisp
  • латексные файлы (адреса, списки)

Ответы [ 4 ]

3 голосов
/ 17 августа 2012

В Windows ~ разрешает любую переменную среды HOME. Я нашел наиболее полезным установить HOME на C:\Users\username (в Win 7). Это означает, что я могу поместить туда свой файл .emacs, а также что ~ будет ссылаться на файлы в нем при открытии файлов.

Как только вы это сделаете, ваш elisp может ссылаться на ~ в качестве домашнего каталога в Windows или Linux.

2 голосов
/ 09 марта 2011

У меня есть настройка в верхней части моего .emacs для тестирования ОС, и соответственно устанавливается CONST, указывающий на корневой каталог пути.Затем в конфигурациях я просто ссылаюсь на переменную в моих инструкциях пути.Только что протестировано на OS X и Windows 7.

Вот несколько примеров:

(defconst HOME_DIR 
  (if (eq system-type 'darwin)
      (concat "/Users/" (getenv "USER"))
    (concat "c:/cygwin/home/" (getenv "USER")))
  "Home directory. I could rely on the HOME environment variable,
  but I'm being retentive.")

(defconst EMACS_PKGS (concat HOME_DIR "/emacs-pkgs")
  "Directory for the emacs pkgs and configuration files.
 Default uses `HOME_DIR' as a prefix")

;; isolate customize settings
(setq custom-file (concat EMACS_PKGS "/emacs-custom.el"))
0 голосов
/ 09 марта 2011
0 голосов
/ 09 марта 2011

Мой опыт работы с Emacs в Windows заключается в том, что ~ не находится в C: \ Users \ yourusername.Для меня это в C: \ Users \ rafe \ AppData \ Roaming.Таким образом, в случае Emacs, если вы перетащите файлы, скажем, в% HOME% \ AppData \ Roaming (или, в Windows Emacs, ~), у вас будет доступ к этим файлам.Вот где мой .emacs был по умолчанию, по крайней мере.Путь может быть другим в вашей системе, поэтому посмотрите, куда Emacs приведет вас, когда вы попытаетесь найти файл, и наберите ~/.

Этот параметр может быть настраиваемым, но я никогда не заботился о том, чтобы изменить его.

Что касается LaTeX, к сожалению, я не могу помочь.

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