2013-02-08

VoodooPad で GTD 2回目

VoodooPadGTD っぽいことをやってみるハナシの2回目です。

前回は、voodoopad-gtd の導入と簡単な使い方について書きました。
で、ちょっと古いプラグインなので、導入するためにちょっとだけスクリプトを修正しました。

今回は、またちょこっとスクリプトを変更します。

やりたいことは2つ。
  1. Markdown のリストに対応
    ページのデフォルトフォーマットが Markdown になっている場合、プラグインが生成する @todo ページ、 @done ページ、および @later ページの内容を、Markdown のリストにする
  2. ショートカットキーを変更する

1. Markdown のリストに対応

voodoopad-gtd は、@todo: タグや @done: タグ 、@later: タグをつけた箇所の内容をリストにしたページを生成してくれますが、その内容は単なる改行区切りのプレーンテキストです。
Markdown を使用しているなら、リスト形式にするだけでちょっと見やすくなります。

以下の 3 ファイル全て、同じ箇所を変更します。
  • Update @todo List.py
  • Update @done List.py
  • Update @later List.py

変更内容は、こんなかんじ。
  def main(windowController, *args, **kwargs):
-     theList = ""
+     theList = [""]
      document = windowController.document()
    if line.find(tag_name) >= 0:
-     theList += page.displayName() + line.partition(tag_name)[2] + "\n"
+     theList.append(page.displayName() + line.partition(tag_name)[2])
- theList += "\n\n--\nUpdated at " + time.strftime("%d %b %Y %H:%M",time.localtime())
  page = document.createNewPageWithName_(tag_name)
- page.setDataAsString_(theList)
+ separator = "\n* " if page.uti().find("markdown") >= 0 else "\n"
+ page.setDataAsString_(separator.join(theList) + "\n\n--\nUpdated at "
+   + time.strftime("%d %b %Y %H:%M",time.localtime()))
  document.openPageWithTitle_(tag_name)
* スペースの都合で、タブ幅は圧縮してます。
手抜きしてるので先頭に空行が入っちゃいますが、むしろ見やすくていいので、放置です。

2. ショートカットキーを変更する

デフォルトでは "@todo:" 、"@done:" 、および "@later:" タグの挿入は、それぞれ "Control + t" 、"Control + d" 、"Control + l" に割り当てられています。
ところが、Emacs キーバインドを使い慣れてる人にとって、これらはどれも非常に都合が悪いです。
まるで狙ったかのように、多用するキーストロークばかり潰されています。
そこで、ショートカットキーを変更したいと思います。
"@todo:" タグの挿入は、デフォルトでは"@todo"リストページの生成に割り当てられるショートカット "Control + Shift + t" に割り当て、リストページ生成は "Control + Command + Shift + t" に割り当てます。
"@done" タグ、"@later" タグについても同様です。

変更するファイルはそれぞれ2つです。
  • TODO
    • Insert @todo.py
    • Update @todo List.py
  • DONE
    • Insert @done.py
    • Update @done List.py
  • LATER
    • Insert @later.py
    • Update @later List.py

変更箇所は、
  VPShortcutMask = "control"
- VPShortcutKey = "t"
+ VPShortcutKey = "T"
  
  import AppKit

  VPShortcutKey = "T"
- VPShortcutMask = "control"
+ VPShortcutMask = "control command"
  
  import AppKit
です。
DONE 、LATER についても、変更内容は同様です。

見れば察しがつくと思いますが、"VPShortcutKey" がショートカットキーの指定で、"VPShortcutMask" がモディファイアキーの指定です。
"VPShortcutMask" に指定できる値は
  • "control" 、または "ctrl"
  • "command"
  • "option" 、 "opt" 、または "alt"
  • "shift"
で、スペースで区切ります。
Shift キーについては、"VPShortcutMask" で指定してもいいですが、上記の変更内容のように、"VPShortcutKey" に大文字を指定することであらわすこともできます。
自分で使いやすいショートカットを割り当ててください。

ほんのちょっとした変更ですが、ぐっと使いやすくなると思います。


0 件のコメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...