2012-06-30 1 views
13

私はElispで自分のモードを書いています。これは、基本的に、ミニバッファを介して操作できるデータの行を示す簡単なアプリケーションです。私は、emacsパッケージマネージャのように見えるこれらの行のビューを作成したいと思います。データの列はうまく整列しています。そのようなビューを実装する最良の方法は何ですか?Emacs Lispで列ビューを作成するには?

答えて

18

PHILSからの答えはトラックに私を得ました。しかしチュートリアルやシンプルな例はどこにもないので、作成しました。ここでは、静的なデータを持っており、現在の列のIDを印刷することができ集計・リスト・モード誘導体の例である:

(define-derived-mode mymode tabulated-list-mode "mymode" "Major mode My Mode, just a test" 
    (setq tabulated-list-format [("Col1" 18 t) 
           ("Col2" 12 nil) 
           ("Col3" 10 t) 
           ("Col4" 0 nil)]) 
    (setq tabulated-list-padding 2) 
    (setq tabulated-list-sort-key (cons "Col3" nil)) 
    (tabulated-list-init-header)) 

(defun print-current-line-id() 
    (interactive) 
    (message (concat "current line ID is: " (tabulated-list-get-id)))) 

(defun my-listing-command() 
    (interactive) 
    (pop-to-buffer "*MY MODE*" nil) 
    (mymode) 
    (setq tabulated-list-entries (list 
       (list "1" ["1" "2" "3" "4"]) 
       (list "2" ["a" "b" "c" "d"]))) 
    (tabulated-list-print t)) 
1

あなたが言及したパッケージリスト機能のコードを見ると、tabulated-list-modeから派生したpackage-menu-modeが使用されていることがわかります。

  • M-Xfind-functionRETpackage-menu-modeRET
  • C-Htabulated-list-mode F RET
0

私は、タスクのこの種のすべての時間のための組織・モードを使用します。

既に素晴らしいテーブルがあるので、これは開発の出発点になるはずです。

関連する問題