Chcę napisać funkcję Emacs Lisp, która będzie się włączać flyspell-mode
niezależnie od bieżącego stanu trybu. Funkcja flyspell-mode-on
jest przestarzała. Dokumentacja sugeruje, że pozytywna prefiks argumentem włączy flyspell-mode
, ale niestety działaJak wywołać interaktywną funkcję Emacs Lisp z argumentem prefiksu, z innej funkcji Emacs Lisp?
(flyspell-mode 1)
wyniki w komunikat o błędzie:
Wrong number of arguments: (lambda (flyspell-mode 1)), 0
Gdybym mógł dowiedzieć się, jak nazywają flyspell-mode
z przedrostka argumentu , Wierzę, że mógłbym rozwiązać ten problem.
Najbardziej istotną sekcją, jaką mogę znaleźć w podręczniku Emacs Lisp, jest sekcja "Połączenie interaktywne", która opisuje takie polecenia, jak call-interactively
. Nie jest to zdecydowanie to, czego chcę.
(Ostatecznym Problem usiłuję rozwiązać jest stworzenie hak trybu że włączy tryb niezależnie od jego aktualnego stanu.)
nb Tytuł pytania emacs lisp call function with prefix argument programmatically sprawia, że wydaje się on być powiązany, ale pytanie to dotyczyło utworzenia interaktywnego polecenia, a problem został ostatecznie rozwiązany za pomocą call-interactively
.
EDIT: Ta kwestia jest dyskusyjna; Znalazłem rozwiązanie alternatywne do mojego pierwotnego problemu:
(add-hook 'text-mode-hook
(function (lambda()
(require 'flyspell)
(if flyspell-mode nil (flyspell-mode)))))
Ale nadal chcieliby wiedzieć, jak wywołania funkcji Emacs Lisp z prefiksu, z innej funkcji Emacs Lisp, z nic interaktywnym.
UPDATE: Może powinienem zapytać, dlaczego byłem coraz to komunikat o błędzie ...
Używam emacsa 21, ponieważ emacsen 22 i 23 spowodował pewne straty w niektórych starszych trybach, których używam, ale nie są już utrzymywane. –
@NormanRamsey Wow, to się starzeje. Co do tego, dlaczego otrzymujesz ten komunikat o błędzie, nie ma w nim nic więcej niż funkcja 'flyspell-mode' w twojej wersji, która nie przyjmuje żadnego argumentu i bezpośrednio czyta' current-prefix-arg'; jest to defekt konstrukcyjny poprawiony w późniejszych wersjach. – Gilles