ガラパゴスタ

楽する。楽しむ。生み出す。

テキストエディタでタスク管理を行うということ

私は軽くて扱いやすいテキストが大好きです。テキストエディタでテキストをただただ書いていたいです。タスク管理のツールはしばしばブラウザやアプリで画面遷移と多数のフォームを伴いますが、煩わしくてたまりません。

私のこの思いは、タスク管理を続けてからも変わらないようです。そこで、思い切って「テキストエディタでタスク管理する」というアプローチを真面目に突き詰めてみることにしました。

まだ完全ではありませんが、ここまでの成果をまとめておきます。

TET とは

便宜上、テキストエディタでタスク管理を行うことを Text Editor based Task management ということで TET(テット) と名付けます。

TET の例

TET のイメージを紹介します。拙作のタスク管理ツール Tritask です。

f:id:stakiran:20180801210514j:plain

テキストエディタ秀丸エディタ)上でタスクを編集します。文章を書く要領でバリバリ編集できます。日付操作や並び替えなどはマクロや外部スクリプトに頼り、エディタからメニュー項目やショートカットキーで簡単に呼び出せるようにしてあります。

TET が生まれた背景

既存のタスク管理ツールの問題点

既存のタスク管理ツールの特徴として「リッチな画面」「タスク編集時に画面遷移と多数のフォームを要する」「ブラウザや専用のアプリから使う」などがあります。

多数のタスクを頻繁に更新する 場合、これら特徴は非常に煩わしいものとなります。いちいち画面遷移して、多数のフォームにも遷移して、表示にも時間がかかって……と、やってられません。

もちろん、中には使いやすいツールもありますが、「多数のタスクを頻繁に更新する」場合は、やはり操作の煩わしさが目につきます。もっと楽に更新したいものです。それこそテキストエディタでテキスト書き並べるくらい簡単かつ手軽に。

多数のタスクを頻繁に更新する?

ここで何度か言及した「多数のタスクを頻繁に更新する」という前提。この前提には同意できる方、できない方がいらっしゃると思いますが、本記事ではこの前提をベースに話を進めます。

私が思うに、タスク管理とは プログラミングや小説執筆やブログ執筆みたいにバリバリ書く ものです。思いついたタスクはインボックスや明日以降のスペースに書きますし、プロジェクトを細分化する時も細分化したタスクをどんどん書き込みます。また、実行順序や配置先(デイリータスクリストなのか明日のタスクリストなのかインボックスなのか等)を変えるという並び替え作業もあります。

とにかくたくさん編集します。そこがデジタルなタスク管理ツールの恩恵です。 脳内だけじゃなくて文章という形で外に出しながら試行錯誤・検討・整理する とでも言えばいいでしょうか。

そして、このような運用を支えるために、タスク管理ツールはタスクを楽に編集できるものではなくてはなりません。既存のタスク管理ツールは、煩雑な画面遷移と入力フォームにより、この点に反します。何百というタスクを編集する気にはなれません。

テキストエディタで編集するというアイデア

では「楽にタスクを編集できる」とはどういうことでしょう。

私は タスクをテキストとして記述する ことだと思います。小説でも、プログラミングでも、ブログでも、結局はテキストエディタを使ってテキストで書きます。タスクも同じことだと思うのです。

もちろん、ただテキストを書くだけだとタスク管理はしづらいです。たとえば以下のような手間があります。

  • 実行日はどうやって書くの?いちいち手打ちはだるくない?
  • プロジェクトやコンテキストはどうやってつけるの?どうやってフィルタリングするの?
  • ルーチンタスクはどうやるの?手でコピペして作り直すのはだるいよ?
  • ……

これら手間のかかる操作を支援する機能は必要でしょう。

幸いにも テキストエディタは拡張性が高く、マクロやら外部プログラムやらとの連携が行えるので、工夫すれば支援は可能 です。

これが Text Editor based Task management ―― TET です。

一例

拙作のタスク管理ツール Tritask は TET の一例です。

秀丸エディタというテキストエディタで動作します。私が試行錯誤して生み出した、一つの解となります。

  • タスクの編集は、テキストをそのまま編集するだけ
  • 追加や複製、ルーチンタスクなど「手作業が面倒な操作」は省力化しています
    • ショートカットキーやメニュー項目選択などから一発で実行する等

TET により得られるもの

文章をバリバリ書くように、タスクをバリバリ書けるようになります。

TET により失うもの

ベースはテキストエディタなので、画面が伴う操作や視認性には弱いです。

たとえば、以下は行うことができません。

  • 列をクリックしてソートする
  • 入力値を選択肢から選ぶ
  • 日付をカレンダーから選択する
  • 見やすいようにカラフルに表示する
  • タスクをかんばんのようにカード状で表示する
  • ……

上記のような「タスク管理ツール側が担保してくれていた操作」に頼っていた場合は、かなりの痛手となります。

TET の弊害をどう解消するか

上記弊害はどのように解消すればいいのでしょうか。

方法1. フォーマットを定める

完全なフリーフォーマットだと運用しづらいので、ある程度定めるのが良いでしょう。

文章の執筆でも「アウトラインで区切る」「改行や空行はこのタイミングで入れる」「会話文はカギ括弧で囲む」など定まっていますし、プログラミングでも文法が決まっていますよね。

ちなみに拙作 Tritask では以下のようにしています。

  • 一行に一タスクを書く
  • 一タスクのフォーマットは
    • M YYYY/MM/DD DOW TASK_DESCRIPTION
    • M はソート用マーク
    • YYYY/MM/DD DOW は実行日と曜日
    • TASK_DESCRIPTION はタスク内容

フォーマットを定めることで 視認性が向上 します。見通しが良くなります。また後述しますが 省力化の仕組みで扱いやすく もなります(プログラミングをする方でないとピンと来ない説明ですみません)。

方法2. テキストエディタの機能を駆使してカバーする

テキストエディタには「マクロ」「スクリプト」といった機能拡張の仕組みがあります。これを使えば、ある程度は楽できます。

たとえば拙作 Tritask では「タスクを開始する」という操作があります。これは開始時刻欄に 12:34 のように現在時刻を書くことを意味するのですが、手作業でやるとなると、

  • 開始時刻欄にカーソルを持っていく
  • 現在時刻を見る
  • 入力する

という手順が必要で、とてもだるいです。

これを、Tritask ではテキストエディタの機能を使って楽しています。秀丸エディタのマクロ機能には「カーソルを指定位置に持っていく」「現在時刻を文字列で取得する」「ポップアップメニューを表示する」「ショートカットキーで指定マクロを呼び出す」などの命令があります。これらを組み合わせると、

  • ショートカットキーを押すだけで開始時刻を入力する

が可能になります。キー一発です(厳密には Alt + A → S の二段階ですが)。だいぶ楽できてますよね。

……ただし、これを行うためには、方法1 にてフォーマットを定めておく必要があります。(プログラミングの話題になりますが)そうしないと、マクロ/スクリプト側でどこをどのように辿ればいいかが一意に定まらず上手く実装できません。

方法3. 外部ツールを自製して連携する

※プログラミングが必要な話が続いてすみません。

しかし方法2では「テキストエディタがサポートしてない処理」が必要なことを実現できません。たとえば「選択したタスクの実行日付を明日に更新する」処理は、日付時刻計算が絡む複雑な処理となります。テキストエディタの機能だけでは苦しいでしょう。

では、どうやるかというと、

  • タスクを書いたテキストを読み込んで、必要な操作を行うツールを作る
  • そのツールをテキストエディタから呼び出せるように整える

こうします。

Tritask では Python スクリプトを使っています。秀丸エディタではできないことはそっちに書いています。それで、秀丸エディタからスクリプトを呼び出すようにして連携させています。

TET を行うために必要なモノ

TET を行うために必要なツール、スキル、資質などをまとめてみました。

テキストを書くことに抵抗が無いこと

TET は 「タスク管理はタスク(を表す文字列)をバリバリ編集するものである」 という前提のもとに成り立っています。大量にテキストを書くことになりますので、書くことに抵抗が無いという素養が求められます。

日常的に文章を書いている方なら問題はないでしょう。しかし「チャットやメール一つ書くのも煩わしい」「できるだけ書きたくない」といった方には厳しいでしょう。

テキストエディタ

TET で用いるのはテキストエディタですが、エディタなら何でも良いというわけではありません。

特に上述した弊害を回避するための方法2, 3あたりを実現するためには、それなりに高機能なエディタが必要です。といってもメモ帳やメモアプリのような貧弱なエディタでなければ、おおよそ備わっているはずです。

(余談) ちなみに Word などの文書管理ソフトウェアや、Excel のような表計算ソフトウェアはおすすめしません。これらはテキストエディタではありません。テキストエディタとはテキスト(多くは拡張子 .txt のテキストファイルと思います)を扱える、軽いエディタのことです。Word や Excel は、テキストよりもリッチなデータを扱うソフトウェアです。見た目はカラフルですが、動作は重たいので、TET で想定する「ガシガシ編集する」には至れません。

(余談) 以前 タスクリスト作成時にテキストエディタを使う理由 - タスク管理に恋してる という記事を書きました。TET のイメージを掴む一例になると思います。

プログラミングスキル

上述した弊害を回避するための方法2, 3を実現するためには マクロを使いこなし、ツールを作成するプログラミングスキルが必要となります。……ハードル高いですね。

おわりに

本記事ではテキストエディタでタスク管理を行う Text Editor based Task management 、通称 TET(テット) について紹介しました。いかがでしたでしょうか。

テキストエディタ使いの皆さまの参考になれば幸いです。