97

EditPad Lite には、「2008-09-11 10:34:53」などのタイムスタンプをコードに挿入する優れた機能 ( CTRL- ECTRL- ) があります。I

Vim でこの機能を取得する最良の方法は何ですか?

(私は SSH 経由で Linux サーバー上で Vim 6.1 を使用しています。現在の状況では、私たちの多くがログインを共有しているため、タイムスタンプを取得する組み込みの方法が他にある場合は、ホーム ディレクトリに省略形を作成したくありません。 )

4

11 に答える 11

122

クロスプラットフォームで動作させるには、以下を に追加しますvimrc:

nmap <F3> i<C-R>=strftime("%Y-%m-%d %a %I:%M %p")<CR><Esc>
imap <F3> <C-R>=strftime("%Y-%m-%d %a %I:%M %p")<CR>

これで、Vi/Vim 内でいつでも F3 を押すだけ2016-01-25 Mo 12:44で、カーソルに挿入されたようなタイムスタンプを取得できます。

使用可能なパラメーターの完全な説明については、C 関数 strftime() のドキュメントを確認してください。

于 2008-09-12T10:13:57.647 に答える
92

http://kenno.wordpress.com/2006/08/03/vim-tip-insert-time-stamp/

試してみましたが、私のMacで動作します:

:r! date

生成:

Thu Sep 11 10:47:30 CEST 2008

これ:

:r! date "+\%Y-\%m-\%d \%H:\%M:\%S"

生成:

2008-09-11 10:50:56
于 2008-09-11T08:45:50.843 に答える
17

なんでみんな使ってるの:r!?空白行を見つけて、!!dateコマンド モードから入力します。キーストロークを節約!

[nb これにより、現在の行が stdin にパイプされ、その行がコマンド出力に置き換えられます。したがって、「空白行を見つける」部分です。]

于 2011-10-06T22:19:12.863 に答える
9

@Swaroop C Hの回答の延長として、

^R=strftime("%FT%T%z")

は、タイム ゾーンも出力する、よりコンパクトな形式です (実際には、ISO-8601 準拠の形式での UTC との差)。

何らかの理由で外部ツールを使用したい場合は、

:r !date --rfc-3339=s

完全な RFC-3339 準拠のタイムスタンプを提供します。nsスポックのような精度の代わりに使用し、日付と時刻の間のスペースの代わりに大文字の T を使用するためにsパイプスルーします。tr ' ' T

また、次のことを知っておくと役立つ場合があります。

:source somefile.vim

からコマンドを読み込みますsomefile.vim: このようにして、マッピングなどのカスタム セットを設定し、そのアカウントで vim を使用しているときにそれをロードできます。

于 2010-06-05T04:26:18.380 に答える
9

:r! 日にち

まったく同じ形式が必要な場合は、date コマンド (man date) に形式を追加し、これを vim エイリアスとして追加することもできます。

:r! 日付 +"\%Y-\%m-\%d \%H:\%M:\%S"

これにより、例で示した形式が生成されます(シェルの日付は\%を使用せず、%のみを使用します。vimは%を現在のファイルの名前に置き換えるため、エスケープする必要があります)。

.vimrc にマップを追加して、たとえば F3 を押すたびにコマンドを自動的に配置できます。

:map <F3> :r! date +"\%Y-\%m-\%d \%H:\%M:\%S"<cr>

(上から編集しました:))(編集:テキスト部分をコードに変更して、

<F3> 

表示できます)

于 2008-09-11T08:48:17.237 に答える
6

Vim Wikiaから。

F キーを押すために手を動かす代わりに、これを使用します。

:iab <expr> tds strftime("%F %b %T")

挿入モードでは、tds と入力するだけで、スペース バーを押すかリターンするとすぐに、日付を取得して入力を続けます。

%b月の名前を見るのが好きなので、そこにを入れました。は%F、日付でソートするものを提供します。%Y%m%dユニット間にキャラクターがいないように変更するかもしれません。

于 2014-03-22T13:28:55.973 に答える
4

Unix、使用:

!!date

Windows、使用:

!!date /t

詳細: Insert_current_date_or_timeを参照

于 2014-07-19T11:44:38.887 に答える
4

UNIX タイムスタンプの場合:

:r! 日付 +\%s

このコマンドを頻繁に使用する場合は、VIM のキー (F12 など) にこのコマンドをマップすることもできます。

これを .vimrc に入れてください:


map  <F12> :r! date +\%s<cr>
于 2008-09-11T08:51:26.557 に答える
0

以前の回答に含まれていない別の簡単な方法: type-

!!日にち

于 2012-07-04T08:55:46.460 に答える