vimで英語の日付を一発で入力

vimで日付を一発で入力する方法は色々あるが、日本語環境だと英語式の日付を入力するには一手間いる様子。

英語でコメントを書いていても、日付が日本式だとあまり嬉しくないので変更できるようにする。

アメリカ式とイギリス式に対応したのを書いたのでメモ。

.vimrcに以下を追加する。

"--- <F6>  タイムスタンプを挿入してinsertモードへ移行 ----
function! GetTimeStampInEnglish(type)
    let wday = strftime("%w")
    let mday = strftime("%m")
    let months = [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Non", "Dec" ]
    let weeks = [ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" ]
    "Japanese
    if a:type == 1
        return strftime("%Y/%m/%d (". weeks[wday] .") %H:%M")
    "Amarican
    elseif a:type == 2
        return strftime(months[mday]."/%d/%Y (". weeks[wday] .") %H:%M")
    "Blighty
    else
        return strftime("%d/". months[mday] ."/%Y (". weeks[wday] .") %H:%M")
    endif
endfunction                                                                                        
nmap <F6> <ESC>i<C-R>=GetTimeStampInEnglish(3)<CR>

補足

ノーマルモードでF6を押すと日付が入力できる。

nmap <F6> <ESC>i<C-R>=GetTimeStampInEnglish(3)<CR>

の引数が1なら日本式、2ならアメリカ式、3ならイギリス式である。

"1
"2015/02/05 (Thu) 18:00

"2
"Mar/05/2015 (Thu) 18:00

"3
"05/Mar/2015 (Thu) 18:00