よく入力するので。だがホットキー設定できず残念な結果に。
環境
- Raspberry Pi 3 Model B
問題
以下のように、ある場面である書式の日時テキストが欲しい。できるだけ簡単に。
| 書式 | 例 | 用途 |
|---|---|---|
%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コマンド | コマンドが面倒。 |
やってみる
dateコマンドで日付を任意書式でechoxselコマンドでクリップボードにコピー- ホットキー設定
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. 自作スクリプト
~/myscript/now.shファイルを作り配置。
#!/bin/sh date "+%Y%m%d%H%M%S" | xsel -bi
~/.bash_profileで環境変数パスを通す。(とにかくターミナル起動時にPATH設定されていればいい)
export PATH=$PATH:~/myscript/
ターミナル起動し、以下のコマンド打つ。
./now.sh
いや、これ結構面倒。
- ターミナル起動
- ターミナルの窓をアクティブ
./now.shコマンドを入力- Enterキー押下
- 対象箇所にペースト
C. 自作スクリプトをIMEに登録
B案よりマシになるが、基本変わらない。./now.shが、いまなど登録した単語にできる点のみが改善点。
- ターミナル起動
- ターミナルの窓をアクティブ
- IME辞書登録した単語を入力
- Enterキー押下
- 対象箇所にペースト
いちいちターミナル上で実行せねばならないのが面倒。
結論
ホットキー設定できなければ便利にならない……。