リスト管理メソッド Lisna について
背景
TODOリスト、チェックリスト、買い物リストなどリストは身近なものである。そんなリスト(特にTODOリスト)の運用方法やツール・サービスは多岐に渡っており、ビジネスマンやライフハッカーはいつも頭を悩ませている。
リスト管理メソッド
リスト管理メソッドとは、それらリストを管理・運用するための体系である。
こう言うとTODO リストを管理する todo.txt や GitHub 上で Task List など「タスク管理」を思い浮かべるかもしれないが、リスト管理は必ずしもタスク管理をするとは限らない。言い方を変えると タスク管理とは無関係なリスト管理も存在する。
リスト管理というとすぐタスク管理に結び付けられてしまうのが世の常だが、そのせいでリスト管理というものをタスクという観点でしか見ることができていない。タスク以外の性質を持つリストもあるというのに。
リスト管理とは、タスクだけに依存しない、もっと汎用的にリストを管理することである。そしてリスト管理メソッドはそれを実現するための方法だ。
リスト管理メソッド「Lisna」
Lisna というリスト管理メソッドがある。これは リスト(LISt)を並び替える(NA-ra-bi-ka-e)、つまりはソートする ことをベースとしたリスト管理手法である。
必要なのは二つ、
- テキストファイル
- テキストファイルを行単位でソートするツール(スクリプトやエディタの機能でもよい)
これだけだ。
運用としては、
- テキストファイルに 一行一項目 でリストを書く
- その際、ソートしたら意味のある並びになるように書く
- 適当なタイミングでソートする
このようになる。「意味のある並び」とは何かというと、各自が勝手に決めればいいのである。ただソートとは昇順 or 降順で並び替える操作であるから、各項目の行頭の文字列を工夫すれば意図通りの並びにできる、というだけの話だ。
たとえば優先度を導入したい場合、仮に A-E まで 5 段階を設けたとして、各項目の先頭に「A ほげほげ」とか「B ふがふが」などと書く。その後、昇順でソートしてやると、優先度が最も高いA, B, C というふうに優先度順で並んでくれる。これは優先度順という並びを実現している。
Lisna の最大の特徴は ソートをかますだけでリストが整理される という気軽さだ。運用者はテキストにリストをガシガシ書いて、テキトーにソートをかますだけでいい。それだけでリストはいつもキレイに保たれる。もちろん、そうなるように書き方を規定するのは運用者自身であり、その作業は慣れるまでは大変かもしれないが。
Lisna の実装
Lisna をどのように実装するかについては色んな前提や方法があるだろう。ここでは一つだけ取り上げる。
前提:
- テキストエディタ上でリストを書く
- 指定したテキストファイルを昇順ソートするだけのスクリプトがある
- テキストエディタの延長上でソートを呼び出したい
実装(というよりは「必要な要件」になっているが):
- Lisna リストを扱うテキストファイルは lisna ファイルとする(例: kaimono.lisna)
- Lisna リストはテキストエディタ上で編集する
- テキストエディタの「外部コマンド呼び出し」機能で、今開いてる Lisna リストをソートさせるスクリプトを呼び出すようにする
- テキストエディタには「外部から更新された時にそれを検出し、再読み込みする機能」がある(これが無いとスクリプト側でソートした結果をエディタ上で反映できない)
具体例:
- テキストエディタ: 秀丸エディタ
- スクリプト: Python2
- 外部コマンド呼び出し: 秀丸エディタマクロを使えば可能&キー割り当てでキーボードショートカット呼び出しも可能
- 外部更新検出: 可能(動作環境 > ファイル > 排他制御2 より)
Lisna の具体例
上記具体例を実装したサンプルを GitHub にアップした。
他には拙作のタスク管理メソッド Tritask も、少々フォーマットは煩雑であるが Lisna の一種と言えるだろう。
また、テキストのリストではなくエクセルではあるものの TaskChute も同類かもしれない。TaskChute は各行を昇順で並び替えると意味のある並びになるように設計されている。
おわりに
かなり自己満の散文ではあるが、Lisna というアイデアについてまとめてみた。が、要するにテキストをソートしているだけなので、当たり前のことを小難しく述べているだけかもしれない。
それでも私は、Lisna には、リスト管理に革命をおこすポテンシャルがあるのではないかと思っている。調査や研究は続けるつもりだ。