よく入力するので。だがホットキー設定できず残念な結果に。
環境
- 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
コマンドで日付を任意書式でecho
xsel
コマンドでクリップボードにコピー- ホットキー設定
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キー押下
- 対象箇所にペースト
いちいちターミナル上で実行せねばならないのが面倒。
結論
ホットキー設定できなければ便利にならない……。