やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

日付テキストの入力を短縮したい

よく入力するので。だがホットキー設定できず残念な結果に。

環境

問題

以下のように、ある場面である書式の日時テキストが欲しい。できるだけ簡単に。

書式 用途
%Y%m%d%H%M%S 20001231125959 ファイル名。バージョン値。
%Y-%m-%d %H:%M:%S 2000-12-31 12:59:59 プログラムでシリアライズ可能値。見やすい
%Y年%-m月%-d日 (%w) %-H:%-M分%-S秒 2000年1月2日 (月) 1時2分3秒 テキスト入力補助

理想

IMEで「いま」+ Spaceキー押下すると、任意の書式で日付テキストに変換したい。

たとえばyyyyMMddHHmmss書式でタイムスタンプ文字列が欲しい。

短縮できる根拠は以下。

  • 最短で5打鍵 (i, m, a, space, enter)
    • 対象とする出力先にすぐ書き込める(コピペ等不要)
  • 常時同一入力(今の日時を調べなくて済む)

過去

秀丸ファイラで一発ファイル作成(shスクリプト版) - やってみる

WindowsXPを使っていた時のやつ。

  • 最近はWebアプリでファイル名付けることがある
    • touchコマンドだけでなくxselコマンドも使いたい

既存の方法

方法 問題点
IME Mozcで「きょう」などとする。特定の書式しか使えない
dateコマンド コマンドが面倒。
  • IMEで任意の書式で出力できるよう設定できたら最高だった
    • ATOKならできるらしいが有料

やってみる

  1. dateコマンドで日付を任意書式でecho
  2. xselコマンドでクリップボードにコピー
  3. ホットキー設定

1. 日付を得る

$ date "+%Y%m%d%H%M%S"

echoされた文字列を右クリックでコピー。面倒。

2. 出力先

クリップボード

$ date "+%Y%m%d%H%M%S" | xsel --clipboard --input

短縮形。

$ date "+%Y%m%d%H%M%S" | xsel -bi

ファイル作成。

$ date "+%Y%m%d%H%M%S.md" | xargs touch

ディレクトリ作成。

$ date "+%Y%m%d%H%M%S" | xargs mkdir

コピー操作不要。だがコマンド打ちが面倒。

3. shファイル化

now.sh

#!/bin/sh
date "+%Y%m%d%H%M%S" | xsel --clipboard --input

~/script/now.shなどに配置。だが、パス入力は結局コマンド打ち。面倒。

4. ホットキー設定できなかった……

~/.config/openbox/にあるlxde-pi-rc.xmlに設定する。

    <!-- 2018/02/19 added -->
    <keybind key="C-A-n">
      <action name="Execute">
        <command>date "+%Y%m%d%H%M%S" | xsel -bi</command>
      </action>
    </keybind>

Ctrl + Alt + Nキーでタイムスタンプ文字列をクリップボードにコピーする、はずだった。

再起動してもホットキーは有効にならず。なぜ?

妥協案

ホットキーが設定できないので、妥協案を考えてみた。どれもイマイチ。

A. Mozc変換

Mozcで「きょう」と打ち変換して2018-02-20などに変換する。

  • 打鍵数多い
  • タイムスタンプでない
    • 任意書式にできない

B. 自作スクリプト

自作shスクリプト環境変数パスを通してコマンド打つ。

~/myscript/now.shファイルを作り配置。

#!/bin/sh
date "+%Y%m%d%H%M%S" | xsel -bi

~/.bash_profile環境変数パスを通す。(とにかくターミナル起動時にPATH設定されていればいい)

export PATH=$PATH:~/myscript/

ターミナル起動し、以下のコマンド打つ。

./now.sh

いや、これ結構面倒。

  1. ターミナル起動
  2. ターミナルの窓をアクティブ
  3. ./now.shコマンドを入力
  4. Enterキー押下
  5. 対象箇所にペースト

C. 自作スクリプトIMEに登録

B案よりマシになるが、基本変わらない。./now.shが、いまなど登録した単語にできる点のみが改善点。

  1. ターミナル起動
  2. ターミナルの窓をアクティブ
  3. IME辞書登録した単語を入力
  4. Enterキー押下
  5. 対象箇所にペースト

いちいちターミナル上で実行せねばならないのが面倒。

結論

ホットキー設定できなければ便利にならない……。