LINUX.ORG.RU

как в emacs lisp различить C-u и 4

 ,


0

1

Когда в emacs комбинация набрана с префиксом C-u в функцию передается числовой аргумент 4. Возникла необходимость отличить эти два случая, чтобы (my-fun 4) и C-u M-x my-fun давали разные результаты. Т.е. я хочу использовать C-u в каком то особом значении отличном от числового. Можно это как-нибудь сделать?



Последнее исправление: annoynimous (всего исправлений: 1)
Ответ на: комментарий от provaton
(defun universal-argument-p ()
  "Передан ли функции `universal-argument'?"
  (and current-prefix-arg
       (listp current-prefix-arg)))

вот к такому решению пришел, прошу проверить на наличие недостатков

arte-at-marte
() автор топика
Ответ на: комментарий от arte-at-marte

Ну раз получилось тогда ладно.
А не логично потому что функции должно быть побоку как ее запускают, она должна зависеть только от входных параметров, а не места/способа откуда запущена. Или нет?

urxvt ★★★★★
()
Ответ на: комментарий от urxvt

А не логично потому что функции должно быть побоку как ее запускают, она должна зависеть только от входных параметров, а не места/способа откуда запущена.

если так мыслить, то любой ввод/вывод - не логично! ^^

arte-at-marte
() автор топика
Ответ на: комментарий от iVS

1. тема относится скорее к emacs lisp, чем к emacs в целом

2. словосочетание emacs lisp будет найдено и в случае поиска по слову emacs

arte-at-marte
() автор топика
Ответ на: комментарий от arte-at-marte

Грустно видеть, когда отсутствует малейшее понимание... Если тебе нужна помощь, указывай стандартный тег. Люди, которые тебе могут помочь, подписываются на сообщения с тегом emacs, а не на ту фигню, что находится у тебя в тегах. Смотри, например, www.linux.org.ru/people/Evgueni/profile

iVS ★★★★★
()
Ответ на: комментарий от urxvt

А не логично потому что функции должно быть побоку как ее запускают, она должна зависеть только от входных параметров, а не места/способа откуда запущена. Или нет?

C-h f called-interactively-p

iVS ★★★★★
()
Ответ на: комментарий от urxvt

а мне кажется, что C-u - типичная разновидность ввода. Eще надо помнить, что есть префикс C-u C-u, которому будет соответствовать 16, C-u C-u C-u и т.д. И в emacs есть множество примеров команд, которые ведут себя по разному, в зависимости от числа этих C-u, но с которыми употреблять числовые аргументы будет бессмысленным. Тот же org-todo, который менят статус. Как Вам запись (org-todo 4), (org-todo 16) и т.д. Вот это уж действительно было бы не логично...

arte-at-marte
() автор топика
Ответ на: комментарий от iVS

прямо таки грустно? ^^

Люди, которые тебе могут помочь, подписываются на сообщения с тегом emacs, а не на ту фигню, что находится у тебя в тегах.

Интересно, буду знать, спасибо. поисковые системы(типо гугла или яндекса) теги рассматривают наравне с остальным текстом?

arte-at-marte
() автор топика
Ответ на: комментарий от arte-at-marte

поисковые системы(типо гугла или яндекса) теги рассматривают наравне с остальным текстом?

Теги ничем особенным не отличаются от текста. Поисковые системы уже давно не опираются на теги, а используют более продвинутые средства. Например, уже давно игнорируется мета тег keywords.

iVS ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.