Cómo insertar la fecha en vim


23

En vim puedes ejecutar comandos con "!". Puede combinar eso con "r" para insertar la salida en su búfer actual.

: r! fecha
vie 20 jul 09:39:26 SAST 2012

insertará la fecha en un archivo.

Ahora cuando trato de hacer algunas cosas más interesantes como la fecha con un formato diferente +% F. En la línea de comando

$ fecha +% F
2012-07-20

En vim

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

Que sale pone el nombre del archivo y pone F después de él. de alguna manera, la r! date "+% F" se está expandiendo en vim y no se ejecuta en la línea de comandos. ¿Qué necesito hacer para ejecutar eso y poner el contenido en vim?

Quizás vim tiene una mejor manera de insertar fechas en los archivos.



Aquí hay otra respuesta válida usando <F3>. Tendrá que modificar su vimrcpara obtener cualquier formato de fecha que desee, automatizado .
nilon

Respuestas:


21

Vim tiene una strftime()función interna . Pruebe esto (en modo de inserción):

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

1
Estoy eligiendo su respuesta, ya que es la forma más vim de hacer las cosas.
nelaaro

1
Y en modo normal esto es lo mismo (inserte la fecha en la posición actual ): "=strftime("%F")<CR>P(Fuente: vim.wikia.com/wiki/Insert_current_date_or_time )
erik

19

Seguí experimentando hasta que descubrí que vim estaba expandiendo el carácter "%". Así que simplemente escapa "\%" y todo funciona como esperaba.

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

Ahora puedo poner fechas en archivos como me gustaría

: r! date "+ \% F" -d "-2 día"
18/07/2012


1
+1 Que puedes usar con otros programas que dateno sean, y por lo tanto, es más fácil de recordar que el algo interno "strftime".
matemáticas

10

Otro método, sin escapar, usando system():

system('date +%F')

En modo INSERTAR :

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

En modo NORMAL :

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

1
<Cr> es muy útil, desearía haber pasado más tiempo leyendo la ayuda en vim.
nelaaro

1
Nunca es demasiado tarde.
romainl
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.