web-dev-qa-db-ja.com

日付をvimに挿入する方法

Vimでは「!」でコマンドを実行できます。これを「r」と組み合わせて、出力を現在のバッファーに挿入できます。

:r!date
2012年7月20日金曜日09:39:26 SAST

ファイルに日付を挿入します。

今、私が日付のようなもっと面白いことを別のフォーマット+%Fでやろうとすると。コマンドラインで

$日付+%F
2012-07-20

Vimで

:r!date "+%F"
message.to.followup.lstF

これにより、ファイルの名前が配置され、その後にFが配置されます。 r!date "+%F"がvimで展開され、コマンドラインで実行されていない方法。それを実行してコンテンツをvimに入れるにはどうすればよいですか?.

多分vimは日付をファイルに挿入するためのより良い方法を持っています。

23
nelaaro

Vimには内部のstrftime()関数があります。 (挿入モードで)これを試してください:

<C-r>=strftime('%F')<CR>
21
Heptite

Vimが「%」文字を拡張していることがわかるまで実験を続けました。したがって、「\%」をエスケープするだけで、すべてが期待どおりに機能します。

:r!date "+ \%F"
2012-07-20

今、私は私がしたいようにファイルに日付を入れることができます

:r!date "+ \%F" -d "-2日"
2012-07-18

19
nelaaro

system()を使用した、エスケープせずに別のメソッド:

system('date +%F')

[〜#〜] insert [〜#〜]モードの場合:

<C-r>=system('date +%F')<CR>

[〜#〜] normal [〜#〜]モードの場合:

:put=system('date +%F')<CR>
10
romainl