perl-completion.el branch/1.0のソースを更新,

http://svn.coderepos.org/share/lang/elisp/perl-completion/branch/1.0/

にコミットしました。

カスタマイズ変数を幾つか追加したり、メールアドレスのtypoを直したりです。
trunkにコミットしたかったけどテストする時間がなかったので今日はあきらめました。
あと --verbatim オプションつけ忘れたからログの先頭にsvkの情報が入っちゃった。

寝て、起きたら続きをやろう。

デフォルトのキーバインドを割り当てを無効にする

カスタマイズ可能な変数 `plcmp-use-keymap' を nil に設定するとデフォルトのキーバインド割当を行わないようになりました。
グローバルマップに同じキーバインドを定義していて、マイナーモードマップに上書きされてしまう場合に便利だと思います。

以下、設定例です。

(add-hook 'cperl-mode-hook
          (lambda()
            (setq plcmp-use-keymap nil) ; requireより前の段階で設定する
            (require 'perl-completion)
            (perl-completion-mode t)
            ;; plcmp-mode-mapにコマンドを割り当てていく
            (define-key plcmp-mode-map (kbd "C-M-i") 'plcmp-cmd-smart-complete)))

以下は、デフォルトの割当部分の抜粋です。参考までに。

(defvar plcmp-mode-map
  (let ((map (make-sparse-keymap)))
    (when plcmp-use-keymap
      ;; completion
      (define-key map (kbd "C-RET") 'plcmp-cmd-smart-complete)
      (define-key map (kbd "C-<return>") 'plcmp-cmd-smart-complete)
      (define-key map (kbd "C-M-i") 'plcmp-cmd-smart-complete)
      (define-key map (kbd "C-c a") 'plcmp-cmd-complete-arrays)
      (define-key map (kbd "C-c i") 'plcmp-cmd-complete-modules)
      (define-key map (kbd "C-c v") 'plcmp-cmd-complete-variables)
      (define-key map (kbd "C-c f") 'plcmp-cmd-complete-functions)
      (define-key map (kbd "C-c h") 'plcmp-cmd-complete-hashes)
      (define-key map (kbd "C-c m") 'plcmp-cmd-complete-methods)
      (define-key map (kbd "C-c C-c a") 'plcmp-cmd-complete-all)

      ;; doc
      (define-key map (kbd "C-c d") 'plcmp-cmd-show-doc)
      (define-key map (kbd "C-c s") 'plcmp-cmd-show-doc-at-point)
      (define-key map (kbd "C-c M") 'plcmp-cmd-menu)

      ;; other
      (define-key map (kbd "C-c c") 'plcmp-cmd-clear-all-caches)
      (define-key map (kbd "C-c C-c s") 'plcmp-cmd-show-environment)
      (define-key map (kbd "C-c C-c u") 'plcmp-cmd-update-check)
      (define-key map (kbd "C-c C-c d") 'plcmp-cmd-set-additional-lib-directory))
    
    map))

よく使うコマンドは

  • plcmp-cmd-smart-complete (補完)
  • plcmp-cmd-show-doc (ドキュメント)
  • plcmp-cmd-menu (anythingを利用したメニュー)
  • plcmp-cmd-clear-all-caches (補完候補のキャッシュをクリアして最収得)

あたりだと思います。