w3m

Unnamed repository; edit this file to name it for gitweb.
git clone https://logand.com/git/w3m.git/
Log | Files | Refs | README

README.menu (3485B)


      1 
      2 w3m のメニューについて
      3                                                    (2002/11/27)  坂本 浩則
      4                                                    hsaka@mth.biglobe.ne.jp
      5 
      6 [1] キー操作
      7 
      8   ・一般的なもの
      9 
     10     HELP, INS キー             : メニューの立ち上げ
     11     HELP, INS キー, C-c,       : メニューの消去
     12     RET(C-m, C-j), SPC, →キー : 選択
     13     BS(C-h), DEL(C-?), ←キー  : 戻る
     14     C-n, j, ↓キー             : 下の項目へ
     15     C-p, k, ↑キー             : 上の項目へ
     16     J                          : 項目を上にスクロール
     17     K                          : 項目を下にスクロール
     18     C-a                        : 先頭の項目へ
     19     C-e                        : 最後の項目へ
     20     C-f, C-v                   : 次ページの項目へ
     21     C-b, M-v                   : 前ページの項目へ
     22     C-s, /                     : 項目を下に向かって検索
     23     C-r, ?                     : 項目を上に向かって検索
     24     n                          : 次の項目を検索
     25     N                          : 前の項目を検索
     26     C-z                        : サスペンド
     27 
     28     # INS は通常 ^[[2~ ですが ^[[L(コンソール), ^[[E(PocketBSD) にも
     29       バインドしてあります。
     30 
     31     MenuKeymap, MenuEscKeymap, MenuEscBKeymap, MenuEscDKeymap (menu.c)
     32     で定義
     33 
     34   ・個別のメニュー用
     35 
     36     MenuItem 構造体 (menu.h) の char *keys に設定(複数可能)
     37     上記のキー操作に上書きされます。
     38 
     39 [2] マウス
     40 
     41     ボタン3 : メニューの立ち上げ
     42 
     43    立ち上げ後
     44 
     45     ボタン1/3 (項目)         : 選択
     46         ″      (枠,MENU_NOP)  : 何もしない
     47         ″      (枠外)         : 戻る(メニューの消去)
     48         ″      ( : )          : 次ページまたは前ページの項目へ
     49                                  (長いメニューの場合)
     50         ″      (ドラッグ)     : スクロール
     51 
     52 [3] メニューのカスタマイズ
     53 
     54    ~/.w3m/menu にメニューを定義できます。
     55    メニューは、
     56 
     57      menu MENU_ID
     58       項目
     59         :
     60      end
     61 
     62    として設定します。各項目には、
     63 
     64      func  LABEL FUNCTION KEYS [DATA]	コマンド実行
     65      popup LABEL MENU_ID  KEYS		サブメニュー立ち上げ
     66      nop   LABEL			何もしない(セパレータやタイトル)
     67 
     68    を設定可能です。
     69    例は menu.default や menu.submenu を見てください。
     70    設定できるコマンド(FUNCTION)は README.func を見てください。
     71    MENU_ID として "Main" はメインメニューに、"Select" はバッファ選択
     72    メニューに、"SelectTab" はタブ選択メニューに予約されています。
     73    KEYS はバインドするキーで複数指定可能です。
     74    DATA が設定されていればコマンド(FUNCTION)の引数として使われます。
     75 
     76 [4] 開発について
     77 
     78    メニュールーチンの例は mainMenu(), optionMenu() を見れば分かると思います。
     79    このルーチンと以下の MenuItem 構造体を定義すれば、ほとんどのメニューは、
     80    設定できると思います。
     81 
     82    MenuItem 構造体 (menu.h)
     83 
     84     struct {
     85         int  type;		/* タイプ */
     86         char *label;		/* ラベル */
     87         int  *variable;		/* VALUE_MENU の場合に設定する変数 */
     88         int  value;		/* VALUE_MENU の場合に設定する値 */
     89         void (*func)();		/* 選択された時に実行する関数 */
     90         struct _Menu *popup;	/* サブメニュー */
     91         char *keys;		/* バインドするキー(複数可能) */
     92     } MenuItem;
     93  
     94    タイプ type は以下のものが使用できます。
     95 
     96      MENU_NOP   (1) : なにもしない。選択もできない。
     97                       (タイトルやセパレータ用)
     98      MENU_FUNC  (2) : 関数を実行
     99      MENU_VALUE (4) : 変数(*variable)に値(value)を設定
    100      MENU_POPUP (8) : サブメニューを立ち上げる
    101 
    102      MENU_FUNC と MENU_VALUE は (MENU_FUNC | MENU_VALUE) と
    103      設定することで両方の動作をします。(変数設定が先です)
    104 
    105    設定例は、MainMenuItem (menu.c) や new_option_menu() を見てください。
    106