« 2017年8月 | トップページ

2017/09/17

Windows上でテキスト文頭にタイムスタンプを自動挿入するスクリプトを使ってすばやいメモとり

Windows環境での、テキストメモをとるときの設定についてです。

ぼくは以前、メモは紙(手帳)を使っていました。今は、データ再利用と数年前の過去記録参照のため、テキストファイルにしています。
ここでは、テキストファイルでメモを取るというのは前提条件として、議論の対象にはしません。
ついでに、アプリ(OneNoteとか紙copiとかKeepとかEvernoteとか)への依存を避けることも前提条件で、議論の対象にはしません。

テキストファイルに文字によるメモをとる、そのためにWindowsでアプリに依存しない汎用的で、とにかくメモを取り始めるまで素早い手順のための設定についてのお話です。

20年前とは異なり、業務上貸与されたPCでは、紙copiをインストールすることも自由とは限りませんし、EvernoteやDropboxのアクセスも制限されているかもしれません。
ぼくはHP200LXを使ってメモをとっていますけれど、これは一般的な環境ではありません。Windows 7やWindows 10の環境はある程度一般的だと思います。

なので、Windows 7/Windows 10で、テキストメモを取るときのなるべく環境に依存せず、かつ手早くメモをとれるごく簡単な環境設定をここでは説明します。

メモ帳の一行目に「.LOG」と入れておくというのが一番近いです。でも、あのタイムスタンプの書式にぼくは耐えられません。
なんで時間が前で日付が後ろなの?普通にそのままソートしないの?改行入れてしまうけど、grepしないの?と思ってしまいます。これは好みではありますので、メモ帳の一行目に.LOGと入れておけばタイムスタンプ付きのメモがとれて、それでかまわない方はWindows標準アクセサリのメモ帳で、一行目に.LOGと入れてお使いください。

じゃあ、どうしているの?という話です。

まず、ぼくが好んでとっているテキストファイルのメモの形式です。

2017/09/16 19:46:39 こんな風に次の行にして、続きを書きます。このため、複数行にわたって図を描くような用途は想定していません。
2017/09/16 19:45:41 複数行ではなく一行の中にメモを書きます。長いときは途中でタイムスタンプ付きで新規行にします。
2017/09/16 19:45:11 新しい内容は上に、古い内容は下になります。逆がよければソートすればよいです。
2017/09/16 19:44:57 こういう内容のメモです。

こんな感じです。

書式としては、


YYYY/MM/DD HH:MM:SS メモ内容

という行を1レコードとしたデータです。
これをこのまま書式整形して印刷するような用途は考えず、必要であれば変形した先で利用します。メモ内容文頭に記号などを入れて分類してもいいのでしょうけれど、それすらほとんどしていません。生データを入れるテキストファイルによるデータベースなので、大事なのは手早く生データを作ることだととらえています。会話をとらえ、蒸発する前にすばやく歪めずにテキストにメモすることが肝要だと思っています。

なので、一瞬でテキスト入力できる状態になっていて、タイムスタンプも自動で入ってくれるのが理想です。もともとHP200LXで構築したやり方ですけれど、Windows 7やWindows 10でも同様にやりたいと思ったわけです。

一瞬でメモのテキストファイルが起動して、一瞬でタイムスタンプが入ってすぐメモを取り始める状態になっているべきだ、それが当たり前だ、と思っています。
タイムスタンプのために、きょう[変換][スペース]いま[変換]とか、ボタンをマウスクリックするとかはありえない、と思っています。そういう意味では、メモ帳の.LOG機能は割と理想に近いものではあるのです。

20170917


ここでは、Windows標準の機能で、

ショートカットキーをメモ用テキストファイルに設定する
タイムスタンプ挿入とカーソル移動のためのスクリプトを作成し、ショートカットキーを設定する

という手順を説明します。スクリプトはWindows標準のWSHであるVBScriptで記述します。


まず、メモ用テキストファイルです。
ポケットひとつの原則に従い、メモ用テキストファイルは1ファイルにするのが楽だと思っています。

ぼくの場合は、個人用のファイル、仕事用のファイルの2種類がありますけれど、使うPCは個人用なら個人用のファイルひとつですし、仕事用PCでは仕事用ファイルひとつですので、ポケットひとつの原則通りです。

年が変わるとファイルを変えます。正確には、月単位で月単位のバックアップファイルを作り、古い行は削除していきます。年が変わると年をファイル名に入れたファイルに分けてしまいます。年に一つのファイルするのは、ほぼ日手帳が年単位に本棚に並んでいるように、テキストファイルで年単位でフォルダ(ディレクトリ)に並んでいる状態にしておいて、grepで検索をかけたり、年が分かっていたらエディタやビューアでファイルを開いて検索をかけるからです。

MEMO.TXT
MEMO2017.zip
MEMO2016.TXT
MEMO2016.zip
MEMO2015.TXT
MEMO2015.zip

といった感じです。MEMO.TXTを常に編集するファイルにしています。これは別途毎日バックアップをとっています。


なので、MEMO.TXTを起動するショートカットキーを設定します。

ショートカットキーの設定は、
テキストファイル(MEMO.TXT)のショートカットファイル(MEMO.TXT - ショートカット.lnk)を作成する。
ショートカットファイルをデスクトップかスタートメニューにコピーする。
コピー先のショートカットファイルのプロパティを開いてショートカットキーを指定する。
という手順です。

20170916_2
テキストファイルで右クリックして、ショートカットの作成を選びます。デスクトップに置いていいなら送るでデスクトップを選んだら一操作ですみます。

20170916_9

ここでは、CTRL+ALT+Mというショートカットキーを設定しています。
デスクトップは整理しておきたいので、ぼくはスタートメニューフォルダにコピーしています。
たとえば、
C:\Users\[ユーザー名]\AppData\Roaming\Microsoft\Windows\Start Menu
にコピーするということです。エクスプローラーで表示タブの隠しファイルにチェックを入れれば、このフォルダも表示して貼り付けることができます。

20170916_3


20170916_4


20170916_5


つぎに、タイムスタンプ挿入のスクリプトです。
スクリプトの内容は単純で、1行目に行挿入してタイムスタンプを入れ、半角スペースを入れてその1行目末にカーソルを位置してすぐメモをとれる状態にするだけです。

VBScriptは単なるテキストファイルです。メモ帳でも以下のスクリプトを貼り付けて保存し、ファイル名の拡張子を.vbsにします。たとえば、
datetime.vbs
という感じです。


Option Explicit
' 編集中テキストの文頭にタイムスタンプを挿入する。
Dim strNow, objWshShell
strNow = "" & now() & " "
Set objWshShell = WScript.CreateObject("WScript.Shell")
objWshShell.run "cmd /c echo " + strNow + "| clip", 6, 1
WScript.Sleep 30
objWshShell.SendKeys("^{HOME}^v{LEFT}")

このファイルをどこか好きなところに保存しておき、これにショートカットキーを設定します。

「datetime.vbs」をダウンロード

書式は、Windows設定に従っています。
標準では、yyyy/MM/dd HH:mm:ss です。

20170916_21


ショートカットキーの設定は、
VBScriptファイル(datetime.vbs)のショートカットファイル(datetime.vbs - ショートカット.lnk)を作成する。
ショートカットファイルをデスクトップかスタートメニューにコピーする。
コピー先のショートカットファイルのプロパティを開いてショートカットキーを指定する。
という手順です。

先ほどと同様ですね。

20170916_15


ここでは、CTRL+ALT+Dというショートカットキーを設定しています。

ここまでで設定は終わりです。

設定したWindows PCで、

CTRL+ALT+M
を押すと、テキストファイルを標準のテキストエディタで開かれます。
テキストエディタを何もいれていなければ、メモ帳で開かれるかと思います。

CTRL+ALT+D
を押すと、日付時間のタイムスタンプが自動挿入され、メモを打てる状態になります。
新規行でメモをさらに書く時も、
CTRL+ALT+D
を押します。


保存は、お使いのテキストエディタの上書き保存のショートカットキーを押してください。
ぼくの場合はCTRL+Sで上書き保存のエディタを使っています。

20170916_22

こんな感じで、アプリに依存せず、Windows 7/Windows 10の標準の機能だけで設定できる方法を使い、メモをとる準備ができます。
残念ながら、Windows 10 Sというセキュリティを追求しストアアプリしか動かないエディションが出ているようですので、おそらくこのスクリプトは使えないだろうと思います。

好みのテキストエディタをインストールできるなら、そのテキストエディタのマクロなりでやればいい話です。
ぼくもたとえば秀丸では秀丸のマクロで似たような機能のマクロを登録して使っています。

VBScriptで助かるのは、すべてのアプリで利用できるようになることです。たとえばGoogle Keepにタイムスタンプを入れたいときにWindowsでMS IMEでどうすりゃいいの、などと考えなくてもすみます。

| | コメント (0) | トラックバック (0)

2017/09/10

MyricaフォントのFontX形式、DOS/C用フォントさらに追加

Vzで使うとして、もう少し縦のドット数の違うものも試してみます。

縦18ドット
Vz18


縦20ドット

Vz20


縦22ドット
Vz22

縦24ドット

Vz24

今回追加分も含め、FontX形式に変換したファイルです。
元のフォントファイル一式もアーカイブに入れてあります。


なお、シスマネ(MFONT)用とDOS/C用は、縦のドット数がかぶるとLXFONTではうまく組み込めないので、
排他利用となります。LXFONT.INIも別にしています。


MyricaM_fontx2_20170910.zip

| | コメント (0) | トラックバック (0)

2017/09/07

MyricaフォントのFontX形式、全角幅16ドットのDOS/C用フォント追加

※アーカイブ誤りにつき、差し替えました。(2017/9/9)

Myricaフォントによる、HP100/200LXで24ドットフォントのテキスト表示・編集環境設定はシスマネで横24ドットフォントをmfont経由で利用する前提でした。

すっかりVZユーザーというか、DOS/C上での利用のことを忘れていました。
Vz、Mifes mini、SS Editor、Jedなどのテキストエディタが手になじんでいる場合、DOS/Cで
利用するわけですけれど、LXDSPDの仕様で、フォントの横幅は半角8ドット(全角16ドット)に
制限されます。

縦については自由なので、縦24ドットと縦18ドットのフォントファイルも作って追加しました。


まず、縦横とも16ドットでDOS/C上のVzでの表示です。
Scrn0009


LXDSPD.INIに記述を追加します。例えば、
[init]
-e:zoom -v70 -jp -av

[extend]
low=8,8,8,8,16,8
mid=8,12,8,11,16,11
mid12=8,16,6,12,12,12
14=8,15,8,14,14,14
k14=8,16,7,14,14,14
zoom=8,17,8,16,16,16
h18=8,18,8,18,16,18
h24=8,25,8,24,16,24

のような感じです。

LXVMコマンドで切り替えます。
Scrn0010

横16ドット、縦18ドットの表示です。

Scrn0011


横16ドット、縦24ドットの表示です。


Scrn0013

今回追加分も含め、FontX形式に変換したファイルです。
元のフォントファイル一式もアーカイブに入れてあります。
MyricaM_fontx2_20170905.zip


LXFONT.INIの誤り、フォントのアーカイブ漏れに気付いたため、差し替えです。(2017/9/9)

MyricaM_fontx2_20170909.zip

なお、LXFONT.INIは、シスマネ上のMFONT用と、DOS/C用で、それぞれLXFONT_M.INIとLXFONT_C.INIにファイルを別にしています。


→更新しています。(2017/9/10)
MyricaフォントのFontX形式、DOS/C用フォントさらに追加

| | コメント (0) | トラックバック (0)

2017/09/06

Myricaフォントによる、HP100/200LXで24ドットフォントのテキスト表示・編集環境設定

Myrc08

HP100LX/HP200LXで、大きな文字でのテキスト閲覧・作成のためのフォントを用意して使えるようにしてみます。


Myrc07


32ドットフォントだと美麗な表示を実現できるのですけれど、これまで24ドットフォントはうまく作れていませんでした。

プログラミングフォント Myrica

を試したら、とても美しい表示が実現できました!

せっかくなので、8ドット、11ドット、16ドット、18×24ドット、24ドット、32ドットのフォントファイルを
作成して試してみます。
HME.EXMで表示してみると、

8ドット
Myrc01

11ドット

Myrc02

16ドット

Myrc03

18×24ドット

Myrc04

24ドット

Myrc05

32ドット

Myrc06


各ドット数の半角と全角のフォントファイルを作成し、FUTOMEでボールド化したファイルも作成します。

フォントをLXのフラッシュにコピーし、JKITフォルダのLXFONT.INIを書き換えます。

A:\font\MYRCH08B.FNT
A:\font\MYRCZ08B.FNT
A:\font\MYRCH11B.FNT
A:\font\MYRCZ11B.FNT
A:\font\MYRCH16B.FNT
A:\font\MYRCZ16B.FNT
A:\font\MYRCH18X.FNT
A:\font\MYRCZ18B.FNT
A:\font\MIGUH24X.FNT
A:\font\MYRCH24X.FNT
A:\font\MYRCZ24B.FNT
;A:\font\MIGUH32X.FNT
;A:\font\MYRCH32X.FNT
;A:\font\MYRCZ32B.FNT

のようにしました。小さめのフォントは半角もボールドに、大きいフォントは半角は
ボールド化前のフォントにして、全角はボールドを組み合わせるのが良さそうに
感じました。

32ドットフォントは大きいので、動作確認後コメントアウトします。

MFONT.INIには、18×24ドットファイルの定義業を追加します。

8 8 16 8 8 8 &Genchomo
8 11 16 11 8 11 &Akagi
; 8 14 14 14 8 16 Font&14
8 16 16 16 8 18 1&6dot
12 18 24 18 12 18 &24x18
12 24 24 24 12 24 2&4dot
16 32 32 32 16 32 &32dot
;20 40 40 40 20 40 &40dot

MFONT.INIファイルは c:\_dat か a:\_dat に 置きます。
( 両方にあった場合は c ドライブの方が優先されます)

24ドットフォントでテキストエディタHMM.EXMを使うとき、処理速度が遅くなるのを
回避するため、LXFBUFやCONFIG.SYSでフォントバッファをデフォルトの1KBから
増やします。8KB程度にするなら、CONFIG.SYSでLXFONTを組み込むときに、

device=a:\jkit\lxfont.exe -fa:\jkit\lxfont.ini /B8

のように、/Bオプションに続けてKB数を入れます。/B8とか/B10とか/B12という感じです。


C:\_DAT\HMM.INIで、キーマクロを使っていると、処理速度に効いてきます。

たとえば、C:\_DAT\HMM.INI内で、

KeyMacroD={Home}{Enter}{Home}20{Date}{Left}{Left}{BackSp}{BackSp}{BackSp}{BackSp}{BackSp}{BackSp}{Right}{Right}/{Date}{BackSp}{BackSp}{BackSp} {Time}

のように定義して、[F5][d]でキーマクロを動作させています。

HMM.EXMはファイル指定が独特で、クリップボードにフルパスを渡すか、
C:\_DAT\HMM.INI内で決め打ちでファイル名を書いてしまうか、という
感じです。
;EditFile=clipfile
EditFile=A:\MEMO.TXT

clipfileにした場合は、X-Finderから起動したり、fullpath.exmやgetfile.exmで編集したい
テキストファイル名をクリップボードに入れてから、HMM.EXMを立ち上げる形です。

Myrc12

24×24ドットがMyricaフォントで綺麗に表示されます。

画面表示行数を増やすため、
18×24ドットのフォントを試すと、これもいい感じです。

Myrc11

なかなか満足できる環境が作れました。
細かい文字が見にくい向きにおすすめできます。


FontX形式に変換したファイルです。
元のフォントファイル一式もアーカイブに入れてあります。

MyricaM_fontx2_20170905.zip

→アップデートしました。一部INIファイルの訂正とDOS/C用フォントファイル追加。(2017/9/7)
MyricaフォントのFontX形式、全角幅16ドットのDOS/C用フォント追加


MyricaMフォントのfontx2形式変換
-------------------------------
2017/09/05

これらのファイルは、tomokuniさんによる、
プログラミングフォント Myrica / Estable
https://myrica.estable.jp/

の、MyricaMをHP100/200LXで利用できるように、FontX形式に変換したものです。
Version 2.011.20160403
のMyricaM.TTCが変換元となります。

変換手順は、
Yoshiki Okaさんの
WFONTX.EXE
を32bit版Windowsで動かし、FontX形式に変換しました。
また、Y.Hanaoka(まるは)さんのFUTOME.EXEでボールド化したファイルも
作成し同梱しました。

FontX形式の変換の際、MyricaM Mを元とし、ボールドのチェックを入れ、
半角および全角のFontX形式ファイルを作成しています。
8ドット、11ドット、16ドット、18×24ドット、24ドット、32ドットの
各ファイルを作成しています。

MYRCH08B.FNT  8ドット半角フォント ボールド
MYRCH08X.FNT  8ドット半角フォント
MYRCH11B.FNT  11ドット半角フォント ボールド
MYRCH11X.FNT  11ドット半角フォント
MYRCH16B.FNT  16ドット半角フォント ボールド
MYRCH16X.FNT  16ドット半角フォント
MYRCH18B.FNT  18×24ドット半角フォント ボールド
MYRCH18X.FNT  18×24ドット半角フォント
MYRCH24B.FNT  24ドット半角フォント ボールド
MYRCH24X.FNT  24ドット半角フォント
MYRCH32B.FNT  32ドット半角フォント ボールド
MYRCH32X.FNT  32ドット半角フォント
MYRCZ08B.FNT  8ドット全角フォント ボールド
MYRCZ08X.FNT  8ドット全角フォント
MYRCZ11B.FNT  11ドット全角フォント ボールド
MYRCZ11X.FNT  11ドット全角フォント
MYRCZ16B.FNT  16ドット全角フォント ボールド
MYRCZ16X.FNT  16ドット全角フォント
MYRCZ18B.FNT  16×24ドット全角フォント ボールド
MYRCZ18X.FNT  16×24ドット全角フォント
MYRCZ24B.FNT  24ドット全角フォント ボールド
MYRCZ24X.FNT  24ドット全角フォント
MYRCZ32B.FNT  32ドット全角フォント ボールド
MYRCZ32X.FNT  32ドット全角フォント

以下はサンプル設定ファイルです。ご参考まで。
CONFIG.SYS
HMM.INI
LXFONT.INI
MFONT.INI


ライセンス
----------
2017/09/05

「SIL OPEN FONT LICENSE Version 1.1」によるライセンスです。

ASCII文字は、Inconsolata と同じ SIL OPEN FONT LICENSE Version 1.1 のもとで使用することができます。
ASCII文字以外も、源真ゴシック/Mgen+ と同じ SIL OPEN FONT LICENSE Version 1.1 のもとで使用することができます。
源真ゴシック/Mgen+ には M+ OUTLINE FONTS 由来の文字グリフが含まれています。
SIL OPEN FONT LICENSE Version 1.1 の内容は、アーカイブに同梱の LICENSE_OFL.txt に記載されています。
この日本語訳は、以下から参照することができます。

http://sourceforge.jp/projects/opensource/wiki/SIL_Open_Font_License_1.1
M+ OUTLINE FONTS のグリフは、同梱のファイル LICENSE_M+.txt に記載された自由なM+ FONTS LICENSE に基づき使用しています

Myrica は、Inconsolata と 源真ゴシック を合成したフォントです。
MyricaM は、Inconsolata と Mgen+ を合成したフォントです。
フォントデータに含まれる、Inconsolata 由来の文字グリフの著作権は Raph Levien, Cyreal が所有しています。
フォントデータに含まれる、源ノ角ゴシック由来の文字グリフの著作権は Adobe が所有しています。
源真ゴシック/Mgen+に含まれる、M+ OUTLINE FONTS 由来の文字グリフの著作権は M+ FONTS PROJECT が所有しています。


| | コメント (0) | トラックバック (0)

« 2017年8月 | トップページ