「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 menu
use-local-menu
と同様の使用法ですが,引数には只のメニューではなく,ポップアップメニューを指定してください。nil
を指定するか,引数を省略すると,バッファローカルなポップアップメニューは解除されます。&optional (popup-menu *app-popup-menu*) tag
*app-popup-menu*
のコピーを返します。(let ((popup-menu (copy-popup-menu))) ...)
として使ふことを想定してゐます。&optional buffer
current-menu
のポップアップメニュー版です。mouse-menu-popup
が呼び出された時,最初に実行されるフック変数です。&body body
body
の実行前後で*app-popup-menu*
が変らない様にする為のマクロです。from to
from
の函数定義を,新たなシンボル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
の引数の不一致が原因)