ショートカットキーで strftime 関数を実行する
Vim で以下の設定をしておくと、ショートカットキーで 2014-01-27
のような本日の日付を挿入することができます。
ここでは、Ctrl-D
→ Ctrl-D
というキーコンビネーションに割り当てていますが、任意の組み合わせに変更することができます。
imap
とnmap
の両方で定義しているので、挿入モードのときも、ノーマルモードのときも、ショートカットキーを入力して日付の挿入を行うことができます。<silent>
を入れることで、コマンドラインのエコーを防いでいます。<C-R>=
というのは、その後ろに記述した式を実行して展開するためのイディオムです(=
は Expression register を示しており、詳細は:help i_Ctrl-R
で確認できます)。
日付の挿入を頻繁に実行するのであれば、F1
キーのような単独キーに割り当てるようにすれば、さらに手軽に実行できるようになります。
ちなみに、F1
キーはデフォルトではヘルプの起動 (:help
) のショートカットキーとして設定されているため、上記のように設定すると、F1
キーでヘルプを起動することはできなくなります(まったく問題ないと思いますが)。
また、キーシーケンスの都合で、Ctrl-1
といった Ctrl
キーと数字キーの組み合わせはうまく動作しません。
strftime 関数のフォーマット一覧
Vim の strftime
のフォーマット文字列で使用できる記号 (%Y
など)は、C 言語の strftime
関数と同様のものです。
なので、Linux 環境や macOS 環境であれば、下記のようにして C 言語の man ページで詳細を確認できます。
下記はフォーマット文字列と、その出力の例です。
呼び出し方 | 実行結果 |
---|---|
strftime("%Y-%m-%d") | 2018-10-28 |
strftime("%Y-%m-%d (%a)") | 2018-10-28 (日) |
strftime("%Y-%m-%d %H:%M:%S") | 2018-10-28 20:46:18 |
strftime("%c") | 日 10/28 20:52:24 2018 |
strftime("%Y %b %d %X") | 2018 10 28 20時53分37秒 |
- 年
%Y
: 4桁の年 (例:2018
)%y
: 2桁の年(例:18
)
- 月
%m
: 2桁の月(01
〜12
)%B
: 月の名前(米国ではDecember
、日本では12月
など)%b
: 月の略称(米国ではDec
、日本では12
など)
- 日
%d
: 2桁の日付 (例:28
)
- 曜日
%A
– 曜日の名前(米国ではSunday
、日本では日曜日
など)%a
– 曜日の略称(米国ではSun
、日本では日
などになる)
- 時
%H
– 24時間表示の時(00
〜23
)
- その他
%X
– 時刻の標準的な表示(米国では20:53:37
、日本では20時53分37秒
など)%c
– 日付+時刻の標準的な表示(米国ではSun Oct 28 20:52:24 2018
、日本では日 10/28 20:52:24 2018
など)
簡単に strftime
の出力を確認してみたいときは、:echo
コマンドを使うのが便利です。
:echo strftime("%c")
あるいは、インサートモードで Ctrl-R
→ =strftime("%c")
と入力して、カーソル位置に実行結果を挿入することもできます。