skk-dev / ddskk

Daredevil SKK (Simple Kana to Kanji conversion program)
GNU General Public License v3.0
195 stars 42 forks source link

emacs-29とddskk masterでisearchを使えば「Lisp error: (void-function nil)」が出ます #210

Closed elizagamedev closed 1 year ago

elizagamedev commented 1 year ago

すみません。日本語がよくできないんです。特にパソコンを使える言葉はほとんど分かりません。

ですけど、タイトルのとおりなんです。emacs -Qをして、それから、

(add-to-list 'load-path "~/ddskk")
(require 'skk-autoloads)
(require 'skk)
(setq skk-isearch-mode-enable 'always
      skk-isearch-start-mode 'hiragana
      default-input-method "japanese-skk"
      debug-on-error t)

をして、isearch-forwardをして、「な」とかを書いてみたら、このbacktraceが出ます。

Debugger entered--Lisp error: (void-function nil)
  nil(97)
  isearch-with-input-method()
  funcall-interactively(isearch-with-input-method)
  command-execute(isearch-with-input-method)
  isearch-process-search-multibyte-characters(97 1)
  isearch-printing-char(97 1)
  funcall-interactively(isearch-printing-char 97 1)
  command-execute(isearch-printing-char)

そのvoid-functioninput-method-functionらしいです。

emacs-29はまだ途中だからこのerrorを直せない場合なら、すみません。

tats commented 1 year ago

(require 'skk-setup) may prevent the issue.

skk-autoloads and skk-setup are required by leim-list.el, otherwise by hand.

tats commented 1 year ago

Ah, it seems skk-setup.el and leim-list.el are not installed with MELPA.

See "Isearch setting" in the source file skk-setup.el.in to setup by hand.

tkita commented 1 year ago

Please also refer to the following documents:

.../READMEs/INSTALL.MELPA.md

elizagamedev commented 1 year ago

Thank you, copying the relevant parts from skk-setup.el into my init.el has resolved the problem. The English readme only mentions setup.el as defining keybindings, but I see now that the Japanese version is very specific about using it for isearch. I will create a PR to update the English text.

However, compared to other Emacs packages, this seems unusual. Perhaps instead there should be a global minor mode skk-isearch-mode which performs the same task of advising functions? If I have time I might try to implement this.

tkita commented 1 year ago

関数 skk-version の値で make 版と melpa 版の区別ができるので、ddskk 起動時に melpa 版に向け「isearch 設定してね」等を促す表示は可能ですね。 時間あるときに実装しておきます。

elizagamedev commented 1 year ago

今の状態より、そんなメッセージが示さればいいと思いますね。まだ先の想像のskk-isearch-modeのほうがやりたいけど、今の日本語の程度が足りないかもしれません