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

вопросы о Emacs Lisp как о языке, по сравнению с другими языками, в частности, по сравнению с другими диалектами Lisp. То есть это вопросы * о самом языке *. * НЕ ИСПОЛЬЗУЙТЕ ЕГО * для вопросов о * использовании * Emacs Lisp. Emacs Lisp - это язык сценариев и программирования, на котором построен редактор Emacs.

2
Как правильно использовать defcustom?
Как и большинство пользователей Emacs, я настроил режим, изменив переменные. Что мне никогда не приходило в голову, так это весь менталитет программистов, стоящий за настраиваемым этим и этим. Я понял это, когда начал изучать исходный код eshell. Я не Elisp программист, а конкретно , em-ls.elкажется, использует defcustom, defgroupи т.д. Это …
15 elisp  defcustom 


2
Может ли функция или макрос определять предупреждения байтового компилятора?
Я пишу функцию, которая, в принципе, принимает произвольное количество аргументов. На практике, однако, ему всегда следует передавать только четное количество аргументов, и в противном случае это приведет к нежелательным результатам. Вот фиктивный пример для контекста: (defun my-caller (&rest args) (while args (call-other-function (pop args) (pop args)))) Когда файл elisp компилируется …

1
Получить содержимое буфера
Так buffer-stringполучает содержимое текущего буфера. Но это не позволяет указывать другие буферы. Как я могу обойти это? Нужно ли что-то вроде, save-window-excursionчтобы это работало?


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

3
Есть ли способ запустить функцию ловушки только один раз?
Контекст Я использую after-make-frame-functionsхук для правильной загрузки тем в конфигурации клиент / сервер emacs . В частности, это фрагмент кода, который я использую для этого (на основе этого SO ответа ): (if (daemonp) (add-hook 'after-make-frame-functions (lambda (frame) (select-frame frame) (load-theme 'monokai t) ;; setup the smart-mode-line and its theme (sml/setup))) …

1
Почему 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 Это …

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

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

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

7
Код Elisp для проверки подключения к интернету
Когда я открываю Emacs, он оценивает мой файл инициализации, который включает в себя обновление моих архивов пакетов через интернет-соединение. Это проблематично, когда у меня нет подключения к Интернету, поэтому мне нужно предотвратить выполнение этого кода при запуске Emacs без подключения к Интернету. Чтобы решить эту проблему, мне интересно, есть ли …
13 elisp  networking 

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

9
Как редактировать elisp, не теряясь в скобках
Я изменяю некоторый код elisp из linum.el: (custom-set-variables '(linum-format 'dynamic)) (defadvice linum-update-window (around linum-dynamic activate) (let* ((w (length (number-to-string (+ (count-lines (point-min) (point-max)) 1)))) (linum-format (concat " %" (number-to-string w) "d "))) ad-do-it)) Я смог исправить ошибку, когда отступ был один за другим, изменив (count-lines (point-min) (point-max))на (+ (count-lines (point-min) …

4
Что делает `symbol-value`?
Документы сделали меня не мудрее Эта функция возвращает значение, хранящееся в ячейке значения символа. Здесь хранится текущее (динамическое) значение переменной. Если переменная не имеет локальной привязки, это просто ее глобальное значение. Если переменная void, сообщается об ошибке void-variable. Какой смысл в значении символа? Где и когда мне нужно это использовать?
13 elisp  symbols 

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.