質問

EditPad Lite には優れた機能があります (CTRL-E, CTRL-) タイムスタンプを挿入します。「2008-09-11 10:34:53」をコードに入力します。

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

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

役に立ちましたか?

解決

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

他のヒント

クロスプラットフォームで動作させるには、次のコードを 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() のドキュメント.

なんでみんな使ってるの :r!?空行を見つけて入力します !!date コマンドモードから。キーストロークを保存してください!

[注記]これにより、現在の行が標準入力にパイプされ、その行がコマンド出力に置き換えられます。したがって、「空白行の検索」の部分です。]

@Swaroop C Hの回答の拡張として、

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

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

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

:r !date --rfc-3339=s

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

また、次のことを知っておくと役に立つかもしれません

:source somefile.vim

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

: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> 

表示可能)

専用のヒントをご覧ください タイムスタンプの挿入/更新まで vim.wikia で。

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

:r! date +\%s

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

これを .vimrc に入れます。


map  <F12> :r! date +\%s<cr>

から ヴィム・ウィキア.

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

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

挿入モードでは「tds」と入力するだけで、スペースバーを押すかリターンキーを押すとすぐに日付が表示され、入力を続けます。

私はそれを置きました %b 月の名前を見るのが好きなので。の %F 日付順に並べ替えるものを与えてくれます。それを次のように変更するかもしれません %Y%m%d したがって、ユニット間に文字はありません。

以前の回答には含まれていない別の簡単な方法:タイプ-

!!日付

Unix、使用:

!!date

Windows の場合は、以下を使用します。

!!date /t

詳細:参照 現在の日付または時刻を挿入

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top