Pertanyaan Cara terbaik untuk memasukkan stempel waktu di Vim?


EditPad Lite memiliki fitur yang bagus (CTRL-E, CTRL-saya) yang menyisipkan cap waktu misalnya "2008-09-11 10:34:53" ke dalam kode Anda.

Apa cara terbaik untuk mendapatkan fungsi ini di Vim?

(Saya menggunakan Vim 6.1 pada server Linux melalui SSH. Dalam situasi saat ini, sejumlah pengguna berbagi info masuk jadi saya tidak ingin membuat singkatan di direktori home jika ada cara lain untuk mendapatkan stempel waktu. )


75
2017-09-11 08:41


asal


Jawaban:


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

Mencobanya, ia bekerja di mac saya:

:r! date

menghasilkan:

Thu Sep 11 10:47:30 CEST 2008

Ini:

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

menghasilkan:

2008-09-11 10:50:56

66
2017-09-11 08:45



Untuk membuatnya bekerja lintas platform, cukup letakkan yang berikut di Anda 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>

Sekarang Anda dapat menekan F3 kapan saja di dalam Vi / Vim dan Anda akan mendapatkan cap waktu 2016-01-25 Mo 12:44 disisipkan di kursor.

Untuk keterangan lengkap tentang parameter yang tersedia, periksa dokumentasi fungsi C strftime ().


95
2017-09-12 10:13



Sebagai perpanjangan jawaban @Swaroop C H,

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

adalah bentuk yang lebih kompak yang juga akan mencetak zona waktu (sebenarnya perbedaan dari UTC, dalam bentuk yang sesuai dengan ISO-8601).

Jika Anda lebih suka menggunakan alat eksternal untuk beberapa alasan,

:r !date --rfc-3339=s

akan memberi Anda stempel waktu compliant lengkap RFC-3339; menggunakan ns dari pada s untuk presisi Spock-seperti, dan pipa melalui tr ' ' T untuk menggunakan huruf kapital, bukan spasi antara tanggal dan waktu.

Juga Anda mungkin merasa berguna untuk mengetahuinya

:source somefile.vim

akan membaca perintah dari somefile.vim: dengan cara ini Anda dapat mengatur kumpulan kustom, dll., lalu memuatnya ketika Anda menggunakan vim pada akun itu.


9
2018-06-05 04:26



Mengapa semua orang menggunakan :r!? Temukan baris dan jenis kosong !!date dari mode-perintah. Simpan keystroke!

[n.b. Ini akan mem-pipe baris saat ini menjadi stdin, dan kemudian mengganti baris dengan output perintah; maka bagian "cari baris kosong".]


7
2017-10-06 22:19



Lihatlah ke ujung yang didedikasikan ke waktu penyisipan / pembaruan stempel di vim.wikia.


6
2017-09-18 16:35



: r! tanggal

Anda kemudian dapat menambahkan format ke perintah tanggal (tanggal man) jika Anda ingin format yang sama persis dan menambahkan ini sebagai alias vim juga

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

Yang menghasilkan format yang Anda tunjukkan dalam contoh Anda (tanggal di shell tidak menggunakan \%, tetapi hanya%, vim menggantikan% dengan nama file saat ini, sehingga Anda perlu melarikan diri).

Anda dapat menambahkan peta di .vimrc Anda untuk menempatkan perintah secara otomatis, misalnya, setiap kali Anda menekan F3:

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

(Diedit dari atas :)) (Edit: ubah bagian teks menjadi kode, jadi itu

<F3> 

dapat ditampilkan)


6
2017-09-11 08:48



Untuk stempel waktu unix:

: r! tanggal + \% s

Anda juga dapat memetakan perintah ini ke kunci (misalnya F12) di VIM jika Anda menggunakannya banyak:

Masukkan ini di .vimrc Anda:


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

4
2017-09-11 08:51



Skrip timestamp


2
2017-11-03 19:45