Xeebi

home categories feeds

Vim で timestamp を挿入

Vim でタイムスタンプ挿入なんていうありふれたネタ.

jekyll を使って記事を書く場合,_posts 以下の markdown とかの先頭にヘッダを書くわけだ. 形式は YAML, jekyll では Front-matter として 解説がされている

形式は例えばこうだ.

---
layout: post
title:  "Vim で timestamp を挿入"
date:   2014-06-19 00:21:34 UTC+9
categories: vim
---

この date がどういう形式を許してるのか詳らかでないが(後で調べよう),最初のサンプルに記載されていたこの形式なら間違いはなく, この日付を一発で挿入したい.

:h strftime

strftime({format} [, {time}])        *strftime()*
    The result is a String, which is a formatted date and time, as
    specified by the {format} string.  The given {time} is used,
    or the current time if no time is given.

一般の strftime と同じ気分でつかって良いらしいので話は早い. こういう形式を使いたいのは今のところ jekyll 使う時が専らな気がするので(普段日付書くなら 19Jun2014 の形式が好み),filetype 指定してやりましょう. マップは何でもいいけど…バッティングの可能性を考えるのと覚えるのがめんどくさいので安直に ,tim,time あたりで行こう. \, はなんとなく気分的にしか使い分けてない….

こうなる

autocmd FileType markdown nnoremap <buffer> ,tim a<C-r>=strftime("%Y-%m-%d %H:%M:%S UTC+9")<CR><Esc>

実際に使うときは勿論 augroup を適切につかいましょう.i じゃなくて a にしたのは行末で使うことが多そうだから.

Jekyll でものを書きやすいような vim の環境づくりを少しづつ進められたらいいなと思っていて, 例えば highlight python みたいなのは emmet つかって便利しかけている.もうちょっと詰められたら紹介する予定.

あと .md とか .markdown っていってもふつうの markdown だったり jekyll だったり github flavoured だったりするからやりづらい.