XTMemo

目次


概要

  • リスト表示と検索で管理するテキストファイルベースのメモソフト
    • メモ内容はタブインデントされたプレーンテキストファイルとして保存
    • リアルタイムに自動保存されるので「保存」というメニューがない
    • タグ(カテゴリ)の使用が可能
      • コロン、カンマ、半角スペースで区切って複数指定可能
    • 一番上のボックスは検索窓(新規メモのタイトル入力ではない)

URL

インストール

  1. 任意のフォルダに展開する
  2. setup.exeを起動してメモファイルの保存先ディレクトリを設定する
    • 同じディレクトリに XTMemo.ini や trash_.txt(ごみ箱)も保存される
    • オンラインストレージ(DropBoxなど)を保存先にするのがたぶんよい
    • USBメモリ上で動作させるには「相対パスに変換」を使用する
  3. 「日付編集プラグイン」を導入する
  4. ショートカットをスタートアップに入れたりする

設定

ツール(T) > XTMemoのオプション(O) による設定

  • メモリストタグのドラッグ&ドロップによるメモの一括移動を許可する をチェック
  • 外部ツール外部エディタ(E) には TeraPad を指定
  • 外部ツールWEBブラウザ(W) には Mozilla Firefox を指定
  • エディタ一般コピーしてリンクされたファイルはメモファイルごとのフォルダに入れる(L) をチェック

メモ

XTMemoのメモファイルをEmacsのorg-mode用ファイル(org形式)に変換するPerlスクリプト

  • 「ChangeLog形式へのエクスポート」を使うと一部の情報が失われるので、保存されたメモファイルを直接変換すること
    #!/bin/perl
    #
    #  Convert XTMemo data text (Shift_JIS) to org-mode text file (UTF-8)
    #
    
    use strict;
    use warnings;
    use utf8;
    use Encode;
    
    my $RE_HEADER = qr{
    		    \A
    		    ( \d{4} ) [/] ( \d{2} ) [/] ( \d{2} )
    		    \s+
    		    ( \d{2} [:] \d{2} )
    		    \s*
    		    ( .+ [:] )?
    		    \s*
    		    ( .* )
    		    \z
    		}xms;
    
    my $RE_CONTENT = qr{
    		     \A
    		     [\t]
    		     ( .* )
    		     \z
    		 }xms;
    
    my $RE_SEPARATOR = qr{
    		       \A
    		       \z
    		   }xms;
    
    print <<END_OF_FILE_HEADER;
    #+TITLE: XTMemo
    #+CATEGORY: XTMemo
    #+STARTUP: content
    #+TODO:
    #+FILETAGS: XTMemo
    END_OF_FILE_HEADER
    
    my $line_no = 0;
    while (my $line = <>) {
      $line_no++;
      Encode::from_to($line, "shiftjis", "utf8");
      chomp $line;
      $line =~ s{\s*\z}{}xms;
    
      if ( $line =~ m{$RE_HEADER}xms ) {
        my ( $year, $month, $day, $hour_min, $tags, $title ) =
          ( $1, $2, $3, $4, $5, $6);
        if (defined $tags) {
          $tags =~ s{\s+}{_}xms;
          $tags = q{ :} . $tags;
        }
        else {
          $tags = q{};
        }
        if (!defined $title or $title =~ m{\A \s* \z}xms) {
          $title = q{NOTITLE};
        }
        print qq{\n* $title$tags\n};
        print qq{  [$year-$month-$day $hour_min]\n};
      }
      elsif ( $line =~ m{$RE_CONTENT}xms ) {
        my ( $content ) = ( $1 );
        print q{  } . $content . qq{\n};
      }
      elsif ( $line =~ m{$RE_SEPARATOR}xms ) {
        # do nothing
      }
      else {
        # default
        Encode::from_to($line, "utf8", "shiftjis");
        warn(qq{Failed to parse [#$line_no]: $line\n});
      }
    }
    
    # --- end of script ---
    

タグ





最終更新:2010年08月08日 15:06