Вопросы с тегом «elisp»

16
Как создать: ключевые слова?

Q: Как создать и использовать :keywords? Рассмотрим (наивно, по-видимому) попытку доступа к следующему списку игрушек: (setf alist '((:key-1 "Key no. 1") (:key-2 "Key no. 2"))) (assq :key-1 alist) ; => (:key-1 "Key no. 1") (assq (make-symbol ":key-1") alist) ; => nil Первый ключ работает как...

16
Как мне найти путь к исполняемому файлу с Emacs Lisp?

Мой текущий вариант использования - найти Caskисполняемый файл (его можно установить как минимум в двух местах, и по этому поводу есть проблема ). Мне нужно потребовать бочку следующим образом: (require 'cask "~/.cask/cask.el") Но мне нужно найти правильный путь к этому cask.el, и, насколько я...

16
как обнаружить, если внутри совпадающей пары?

Вопрос: существует ли общий способ определения того, находится ли точка внутри совпадающей пары символов? То есть: существует ли общая функция предиката (или что-то еще), которая может определить, находится ли точка между соответствующей парой или какими-то произвольно выбранными символами? Я думаю...

16
Elisp regexps ^ и $ vs `and '

В руководстве описаны специальные символы регулярного выражения ^и $. Как и в большинстве известных мне диалектов регулярных выражений, они соответствуют началу или концу строки. Однако я также обнаружил, что есть `и 'доступные персонажи. Основываясь на найденном здесь объяснении , они, похоже,...

16
Как получить номер элемента в списке?

Q: как мне получить номер элемента в списке? nthполучает номер элемента n из списка: (nth 2 '(a b c d)) ; => c Я хотел бы сделать наоборот: получить номер элемента с учетом элемента: (some-function 'c '(a b c d)) ; => 2 Возможно, я пропустил это, но существует ли такая функция? Как можно это...

15
Какой смысл в кавычках с одним аргументом и запятой? (цитата, аргумент)

(quote x)делает x не оцененным, но добавление ,перед xвнутри quoteделает его оцененным. В чем тогда смысл использовать цитату с одним аргументом с запятой перед ним, как так: (quote ,x)? По мотивам строки 59 раздражающие стрелки : (put (quote ,cmd) 'aa--alts ,alternatives) Почему не (put cmd...

15
Как правильно использовать defcustom?

Как и большинство пользователей Emacs, я настроил режим, изменив переменные. Что мне никогда не приходило в голову, так это весь менталитет программистов, стоящий за настраиваемым этим и этим. Я понял это, когда начал изучать исходный код eshell. Я не Elisp программист, а конкретно ,...

15
Есть ли способ запустить функцию ловушки только один раз?

Контекст Я использую after-make-frame-functionsхук для правильной загрузки тем в конфигурации клиент / сервер emacs . В частности, это фрагмент кода, который я использую для этого (на основе этого SO ответа ): (if (daemonp) (add-hook 'after-make-frame-functions (lambda (frame) (select-frame frame)...

15
Может ли функция или макрос определять предупреждения байтового компилятора?

Я пишу функцию, которая, в принципе, принимает произвольное количество аргументов. На практике, однако, ему всегда следует передавать только четное количество аргументов, и в противном случае это приведет к нежелательным результатам. Вот фиктивный пример для контекста: (defun my-caller (&rest...

14
Есть ли в elisp литералы регулярных выражений?

Огромное количество обратных косых черт, которые требуют мои регулярные выражения, довольно безумно. Есть ли в elisp литералы регулярных выражений, поэтому я могу написать что-то вроде rx"some\(regexp\)" вместо того "some\\(regexp\\)"...

14
Почему у файлов elisp есть комментарии в конце файла?

Почему файлы elisp обычно заканчиваются ;;; file.el ends here? Есть ли какая-то историческая причина, почему это было полезно? Я видел его рекомендованным в руководствах по стилю elisp и до сих пор вижу его в современных пакетах elisp. auto-insert-modeтакже добавляет такой комментарий к новым...

14
Почему setq и set quote действуют по-разному в переменных с привязкой let с лексической областью действия?

У меня была ошибка в одном из моих расширений, которая в итоге оказалась вызвана setнеработоспособностью, как я ожидал: ;; -*- lexical-binding: t -*- (let ((a nil)) (setq a t) (print a)) (let ((a nil)) (set 'a t) (print a)) при запуске с emacs -Q --batch -l temp.elпринтами: t nil Это кажется мне...

13
Различия между установкой основных клавиш режима с помощью ловушки и добавлением их на карту режимов

Предположим, что я скачал основной режим под названием magical-mode, и у него есть своя магическая раскладка magical-mode-map. Этот режим также обеспечивает ловушку, magical-mode-hookкоторая запускается каждый раз, когда magical-modeстановится основным режимом буфера. Теперь я хочу изменить свой...

13
Что делает `symbol-value`?

Документы сделали меня не мудрее Эта функция возвращает значение, хранящееся в ячейке значения символа. Здесь хранится текущее (динамическое) значение переменной. Если переменная не имеет локальной привязки, это просто ее глобальное значение. Если переменная void, сообщается об ошибке...

13
Как я могу оценить elisp в файле orgmode при его открытии?

У меня есть elisp-код, который я хотел бы запускать в файлах orgmode при их загрузке (различается для разных файлов и определяется в самом файле). Есть ли способ сделать это? Я ничего не видел в http://orgmode.org/manual/In_002dbuffer-settings.html Если я могу добавить что-то в инициализацию emacs,...

13
«И» против «когда» для условных

Это продолжение комментариев к этому ответу . Следующие биты кода кажутся эквивалентными: (and a b) (when a b) Конечно, andвы можете поставить больше условий: (and a b c d)значит(when (and a b c) d) Я склонен использовать whenтолько для выражения ветвления. Есть ли реальные различия? Лучше...

13
Подстановка именованных строк?

Мне часто приходится делать несколько замен одной и той же строки: (format "%s %s %s" "a" "a" "a") ;; gives: "a a a" (это просто фиктивный пример, в этом случае лучше склеить «а» с пробелом, но в целом я имею дело с более сложными ситуациями) Есть ли способ сделать именную замену? Например, в...