「localpop」は,バッファ毎に異なるポップアップメニュー(右クリックメニュー)を実現するxyzzy用の拡張LISPです。
mouse-menu-popupを上書きするといふ行儀の悪い方法を使用してゐるので,思はぬ副作用が出るかもしれません。
(require "localpop") などと追記します。インストール方法の逆をやって下さい。
use-local-menuの使用法と同様に,use-local-popup-menuを使って次の様にします。
(require "localpop")
;;; ポップアップメニューの定義 (xyzzy referenceから拝借)
(defvar *my-apps-popup-menu*
(let ((popup-menu (copy-popup-menu)))
(add-menu-separator popup-menu 'my-apps-popup)
(add-popup-menu
popup-menu
(define-popup-menu
(:item nil "行番号(&L)"
'toggle-line-number)
(:item nil "スクロールバー(&B)"
'toggle-vscroll-bar)
(:item nil "モードライン(&M)"
'toggle-mode-line)
(:item nil "ファンクションキー(&F)"
'toggle-function-bar)
(:item nil "折り返し(&T)"
'toggle-fold-line)
(:item nil "読み取り専用(&R)"
'toggle-read-only))
"設定(&B)")
popup-menu))
#|
;;; 現在のバッファ独自のポップアップメニューを使ふやうにする
(use-local-popup-menu *my-apps-popup-menu*)
;;; バッファ独自のポップアップメニューを止める
(use-local-popup-menu)
|#
;;; text-modeの時に先のポップアップメニューを使ふやうにする
(defun use-my-apps-popup-menu ()
(interactive)
(use-local-popup-menu *my-apps-popup-menu*))
(add-hook '*text-mode-hook* 'use-my-apps-popup-menu)
&optional menuuse-local-menuと同様の使用法ですが,引数には只のメニューではなく,ポップアップメニューを指定してください。nilを指定するか,引数を省略すると,バッファローカルなポップアップメニューは解除されます。&optional (popup-menu *app-popup-menu*) tag*app-popup-menu*のコピーを返します。(let ((popup-menu (copy-popup-menu))) ...)として使ふことを想定してゐます。&optional buffercurrent-menuのポップアップメニュー版です。mouse-menu-popupが呼び出された時,最初に実行されるフック変数です。&body bodybodyの実行前後で*app-popup-menu*が変らない様にする為のマクロです。from tofromの函数定義を,新たなシンボルtoにコピーします。シンボルにquote(')は不要です。mouse-menu-popupをmouse-menu-popup-globalにバックアップするのに用ゐてゐます。書庫に含まれる全てのファイルに於いて,私,空拇が作った部分は,著作権放棄とします。
Public Domain: Please feel free to reproduce or edit (except quotation)
current-popup-menuを追加。apps-popupが働かなくなるバグを修正。(mouse-menu-popupとmouse-menu-popup-globalの引数の不一致が原因)