Просмотр Common Lisp HyperSpec в автономном режиме через Emacs

Я использую Emacs в качестве своей среды Lisp и хотел бы иметь автономный доступ к Common Lisp HyperSpec. Я скачал его и поместил папки в свой каталог emacs.d. Затем я поместил следующий код в свой .emacs:

(global-set-key [(f2)] 'slime-hyperspec-lookup) 
(setq common-lisp-hyperspec-root "/.emacs.d/HyperSpec/")

Однако каждый раз, когда я пытаюсь найти что-то в нем, мой запрос оказывается искаженным. В частности, предположим, что я ищу dotimes; в мой браузер выгружается file:///.emacs.d/HyperSpec/Body/m_dolist.htm, который не соответствует структуре каталогов в папке HyperSpec, что приводит к сбою запроса. Вместо этого поиск HyperSpec форматирует в соответствии с веб-версией (в этом случае он работает абсолютно нормально).

Можно ли это как-то исправить, и если да, то как? Я в основном просто хочу иметь возможность искать HyperSpec, даже когда я не в сети.


person Koz Ross    schedule 15.05.2014    source источник
comment
Вы говорите, что поместили HyperSpec в свой .emacs.d, это ваш .emacs.d. в корне системы, как вы ввели здесь, или ваш путь в setq должен быть ~/.emacs.d/HyperSpec/ ? Или это может быть опечатка в формировании вопроса?   -  person Orpheus    schedule 15.05.2014


Ответы (2)


Пожалуйста, замените

(setq common-lisp-hyperspec-root "/.emacs.d/HyperSpec/")

с участием

(setq common-lisp-hyperspec-root "~/.emacs.d/HyperSpec/")

или даже

(setq common-lisp-hyperspec-root (expand-file-name "~/.emacs.d/HyperSpec/"))
person sds    schedule 15.05.2014

Вы можете попробовать мою оболочку CLHS ASDF, которая специально разработана для загрузки CLHS в стандартное расположение (в основном это каталог quicklisp), а затем поможет вам настроить emacs, чтобы он указывал на него.

Просто вызовите (ql:quickload "clhs") и следуйте инструкциям.

Надеюсь это поможет!


редактировать: @JigarParekh Я думаю, вы, возможно, слишком быстро просмотрели мой ответ.

Название вопроса: «Просмотр Common Lisp HyperSpec в автономном режиме через Emacs». Тело вопроса в основном увязает в деталях ручной установки CLHS и указания на него emacs, а также спрашивает, как решить непосредственную подпроблему, связанную с этим. Выбранный ответ решает насущную подзадачу пользователя, но он менее чем оптимален, учитывая то, что доступно сегодня.

Мой ответ включает основную часть ответа, а именно:

Просто вызовите (ql:quickload "clhs") и следуйте инструкциям.

Это загружает CLHS из Quicklisp таким образом, чтобы он оставался доступным в обозримом будущем, независимо от полезной, но необязательной дополнительной информации, которую я включил для справки в первом абзаце. Мой ответ останется полезным, даже если содержание справочных ссылок изменится или даже если, не дай Бог, они станут 404 Not Found или недоступны по иной причине. (Отмечу мимоходом, что поскольку указанная страница является частью общедоступного веб-сайта и доступна на github, любой может легко отразить ее и предоставить заменяющую ссылку здесь, если это когда-либо произойдет. Но, как я уже сказал, это необязательный дополнительный справочная информация в любом случае.)

person Community    schedule 04.09.2014
comment
Хотя эта ссылка может ответить на вопрос, лучше включить сюда основные части ответа и предоставить ссылку для справки. Ответы, содержащие только ссылки, могут стать недействительными, если связанная страница изменится. - person Jigar Parekh; 04.09.2014
comment
@JigarParekh В этом случае я думаю, что ссылка очень актуальна, поскольку конкретная проблема, которую пытается решить OP, уже решена, и ответ, помимо ссылки, содержит соответствующие инструкции по установке решения. - person PuercoPop; 05.09.2014
comment
Этот ответ содержал все, что мне нужно, без перехода по ссылке, потому что выполнение этой команды Quicklisp загрузило инструмент и проинструктировало меня, как его использовать и настраивать. Просто, красиво и эффективно. - person JasonFruit; 16.02.2021