私はElispで自分のモードを書いています。これは、基本的に、ミニバッファを介して操作できるデータの行を示す簡単なアプリケーションです。私は、emacsパッケージマネージャのように見えるこれらの行のビューを作成したいと思います。データの列はうまく整列しています。そのようなビューを実装する最良の方法は何ですか?Emacs Lispで列ビューを作成するには?
13
A
答えて
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-X
find-function
RETpackage-menu-mode
RET - C-H
tabulated-list-mode
F RET
0
私は、タスクのこの種のすべての時間のための組織・モードを使用します。
既に素晴らしいテーブルがあるので、これは開発の出発点になるはずです。
関連する問題