Может “~ /” восстановление для указания где-то в другом месте?

Я использую Emacs на Windows XP и каждый раз, когда я ввожу "~ /" он автоматически заменяет это каталогом в моем случае его "C:/Documents и Настройки//Данные приложения". Есть ли какой-либо путь, которым я могу заставить это указывать к другому каталогу как, скажем, мой каталог проектов на Рабочем столе? Каждый раз, когда я должен сделать новый файл там, я имею к C-x C-f + полный путь, и хотя заполнение клавишей Tab делает его быстрее, чем это обычно было бы, будет хорошо связать тот один каталог с чем-то как "~ /" для легкого доступа. Есть ли какой-либо путь, который мог быть сделан?

2
задан 30.01.2010, 06:49

3 ответа

Все, что необходимо сделать, должно установить %HOME% переменная окружения.

Это может быть сделано путем движения в:
запустите-> настройки-> панель управления-> система
Нажмите на вкладку "Дополнительно". Внизу кнопка: "Переменные окружения".

Создайте новую названную переменную HOME и помещенный путь Вы хотите там.

Так как большинство Windows-программ не заботится об этой переменной, она вряд ли будет влиять на что-либо еще для Вас.



Это может также быть сделано путем редактирования ключей реестра для emacs. Вот некоторая информация о переменных реестра: Ms Windows Registry.

5
ответ дан 08.12.2019, 07:37

~ кажется, обрабатывается expand-file-name, и это не упоминает способа измениться, как это расширено. Но это действительно использует HOME переменная среды. Вы могли указать новое значение для HOME, но это могло бы перепутать другие вещи то использование HOME как место, чтобы хранить файлы (customize, и т.д. это могло бы хотеть читать из или записать в файлы под HOME).

Как эксперимент, я описал некоторый совет find-file это временно изменяет значение HOME. Идея состоит в том, чтобы минимизировать количество времени, где альтернативное значение активно.

(defvar fake-HOME-value "/var/tmp"
  "An alternate value to use for the HOME environment variable
while the 'fake-HOME' around advice is active.")

(defadvice find-file (around fake-HOME)
  "Temporarily replace the HOME environment variable with
the value from 'fake-HOME-value'."
  (let ((original-HOME-value (getenv "HOME")))
    (unwind-protect
        (progn
          (setenv "HOME" fake-HOME-value)
          ad-do-it)
      (setenv "HOME" original-HOME-value))))

(defun disable-fake-HOME ()
  "Disable the fake-HOME advice for find-file."
  (interactive)
  (progn
    (ad-disable-advice 'find-file 'around 'fake-HOME)
    (ad-update 'find-file)))

(defun enable-fake-HOME ()
  "Enable the fake-HOME advice for find-file."
  (interactive)
  (progn
    (ad-enable-advice 'find-file 'around 'fake-HOME)
    (if (ad-is-active 'find-file)
        (ad-update 'find-file)
      (ad-activate 'find-file))))

(enable-fake-HOME)
;(disable-fake-HOME)

Вставьте его Ваш .emacs (или .el файл, и (load-file "/path/to/your.el")). Я не могу протестировать его в Windows, но единственной вещью, которая является конкретной платформой, является использование HOME, но я думаю, что Emacs преобразовывает эквивалентный Windows (комбинация нескольких переменных среды?) к HOME.

0
ответ дан 08.12.2019, 07:37

~ очень старый и хорошо установленный синоним для 'корневого каталога пользователя' и что логика, вероятно, прокладывается под землей глубоко внутри emacs и вряд ли измениться, если Вы не готовы восстановить его из источника после нахождения соответствующего кода и изменения его. С другой стороны, Вы могли, вероятно, установить свой ярлык для запуска emacs для запуска в выбранном каталоге, позволив Вам сохранить и загрузить файлы, не указывая путь. Вероятно.

-2
ответ дан 08.12.2019, 07:37

Теги

Похожие вопросы