vimに日付を挿入する方法


23

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

:r!date
Fri Jul 20 09:39:26 SAST 2012

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

今、異なるフォーマット+%Fで日付のようなもっと面白いことをしようとしています。コマンドラインで

$ date +%F
2012-07-20

ヴィムで

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

これにより、ファイルの名前が付けられ、その後にFが付けられます。r!date "+%F"がvimで展開され、コマンドラインで実行されない方法。それを実行して内容をvimに入れるために何をする必要がありますか。

たぶん、vimには日付をファイルに挿入するより良い方法があります。



<F3>を使用した別の有効な応答を次に示します。あなたは、あなたを変更する必要がありますvimrc取得するためにあなたが好きな日付フォーマット、自動化を
ニロン

回答:


21

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

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

1
私はあなたの答えを物事をするための最もvimのような方法として選んでいます。
ネラロ

1
そして、中に通常モード、これは(の挿入日付と同じである現在の位置): "=strftime("%F")<CR>P(出典:vim.wikia.com/wiki/Insert_current_date_or_time
エリック・

19

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

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

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

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


1
+1他のプログラムでも使用できるためdate、internat "strftime" -thingよりも覚えやすい。
数学

10

エスケープせずに使用する別の方法system()

system('date +%F')

INSERTモード:

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

ではNORMALモード:

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

1
<Cr>は非常に便利です。vimでヘルプを読むのにもっと時間を費やしたかったのですが。
ネラアロ

1
遅すぎることはない。
ロメインル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.