EditPad Lite tiene una característica interesante ( CTRL- E, CTRL- I) que inserta una marca de tiempo, por ejemplo, "2008-09-11 10:34:53" en su código.
¿Cuál es la mejor manera de obtener esta funcionalidad en Vim?
(Estoy usando Vim 6.1 en un servidor Linux a través de SSH. En la situación actual, varios de nosotros compartimos un inicio de sesión, por lo que no quiero crear abreviaturas en el directorio de inicio si hay otra forma incorporada de obtener una marca de tiempo. )
:r!date "+\%F \%T"
o:r!date +\%F\ \%T
.Para que funcione multiplataforma, simplemente ingrese lo siguiente en su
vimrc
:Ahora puede presionar F3 en cualquier momento dentro de Vi / Vim y obtendrá una marca de tiempo como si estuviera
2016-01-25 Mo 12:44
insertada en el cursor.Para obtener una descripción completa de los parámetros disponibles, consulte la documentación de la función C strftime () .
fuente
:Date
agregando la siguiente a mi~/.vimrc
fichero de configuración:command! Date put =strftime('%Y-%m-%d')
. Inserta la fecha en una nueva línea. no logré hacer una versión sin nueva línea.command! Date :normal a<C-R>=strftime('%Y-%m-%d')<CR>
¿Por qué todos usan
:r!
? Busque una línea en blanco y escriba!!date
desde el modo de comando. ¡Ahorre una pulsación de tecla![nb Esto canalizará la línea actual a stdin, y luego reemplazará la línea con la salida del comando; de ahí la parte "encontrar una línea en blanco".]
fuente
Como extensión de la respuesta de @Swaroop CH,
es una forma más compacta que también imprimirá la zona horaria (en realidad, la diferencia con UTC, en una forma compatible con ISO-8601).
Si prefiere utilizar una herramienta externa por algún motivo,
le dará una marca de tiempo completa compatible con RFC-3339; use en
ns
lugar des
para una precisión similar a Spock, ytr ' ' T
utilice una T mayúscula en lugar de un espacio entre la fecha y la hora.También puede resultarle útil saber que
leerá los comandos de
somefile.vim
: de esta manera, puede configurar un conjunto personalizado de asignaciones, etc., y luego cargarlo cuando esté usando vim en esa cuenta.fuente
:put=strftime(""%FT%T%z")
: r! fecha
Luego puede agregar formato al comando de fecha (fecha del hombre) si desea exactamente el mismo formato y agregarlo como un alias de vim también
: r! fecha + "\% Y - \% m - \% d \% H: \% M: \% S"
Eso produce el formato que mostró en su ejemplo (la fecha en el shell no usa \%, sino solo%, vim reemplaza% por el nombre del archivo actual, por lo que debe escapar).
Puede agregar un mapa en su .vimrc para que coloque el comando automáticamente, por ejemplo, cada vez que presione F3:
(Editado desde arriba :)) (Editar: cambie la parte del texto al código, de modo que
se puede mostrar)
fuente
Para una marca de tiempo de Unix:
También puede asignar este comando a una tecla (por ejemplo, F12) en VIM si lo usa mucho:
Pon esto en tu .vimrc:
fuente
De Vim Wikia .
Utilizo esto en lugar de tener que mover mi mano para presionar una tecla F:
Ahora, en el modo Insertar, simplemente escribe tds y tan pronto como presiono la barra espaciadora o regreso, obtengo la fecha y sigo escribiendo.
Pongo el
%b
ahí porque me gusta ver el nombre del mes. El%F
me da algo para ordenar por fecha. Podría cambiar eso para%Y%m%d
que no haya caracteres entre las unidades.fuente
Unix, use:
Windows, utilice:
Más detalles: consulte Insert_current_date_or_time
fuente
Otra forma rápida no incluida en las respuestas anteriores: escriba-
!!fecha
fuente
Quería un comando personalizado
:Date
(no una asignación de teclas) para insertar la fecha en la posición actual del cursor.Desafortunadamente, los comandos sencillos como el
r!date
resultado en una nueva línea. Así que finalmente se me ocurrió lo siguiente:que agrega la cadena de fecha / hora en la posición del cursor sin agregar ninguna línea nueva (cambie para
normal a
agregar después de la posición del cursor).fuente