Le meilleur moyen d’insérer l’horodatage dans Vim?

EditPad Lite a une fonctionnalité intéressante ( CTRLE , CTRLI ) qui insère un horodatage, par exemple “2008-09-11 10:34:53” dans votre code.

Quel est le meilleur moyen d’obtenir cette fonctionnalité dans Vim?

(J’utilise Vim 6.1 sur un serveur Linux via SSH. Dans la situation actuelle, un certain nombre d’entre nous partageons un identifiant. )

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

Essayé, ça marche sur mon mac:

:r! date 

produit:

 Thu Sep 11 10:47:30 CEST 2008 

Ce:

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

produit:

 2008-09-11 10:50:56 

Pour que cela fonctionne sur plusieurs plates-formes, il suffit de mettre ce qui suit dans votre vimrc :

 nmap  i=strftime("%Y-%m-%d %a %I:%M %p") imap  =strftime("%Y-%m-%d %a %I:%M %p") 

Maintenant, vous pouvez simplement appuyer sur F3 à tout moment dans Vi / Vim et vous obtiendrez un horodatage comme 2016-01-25 Mo 12:44 inséré au curseur.

Pour une description complète des parameters disponibles, consultez la documentation de la fonction C strftime () .

Comme extension de la réponse de @Swaroop CH,

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

est une forme plus compacte qui imprime également le fuseau horaire (en fait la différence par rapport à l’UTC, dans un formulaire conforme à la norme ISO-8601).

Si vous préférez utiliser un outil externe pour une raison quelconque,

 :r !date --rfc-3339=s 

vous donnera un horodatage complet conforme à la norme RFC-3339; Utilisez ns au lieu de s pour une précision de type Spock, et faites passer à travers tr ' ' T pour utiliser un T majuscule au lieu d’un espace entre la date et l’heure.

Vous pourriez aussi trouver utile de savoir que

 :source somefile.vim 

lit les commandes de somefile.vim : de cette façon, vous pouvez configurer un ensemble personnalisé de mappages, etc., puis le charger lorsque vous utilisez vim sur ce compte.

Pourquoi tout le monde utilise-t-il :r! ? Recherchez une ligne vide et tapez !!date from command-mode. Enregistrer une frappe!

[nb Cela conduira la ligne en cours dans stdin, puis remplacera la ligne par la sortie de la commande; d’où la partie “trouver une ligne blanche”.]

Jetez un coup d’œil à la pointe dédiée à l’insertion / mise à jour d’horodatage sur vim.wikia.

: r! rendez-vous amoureux

Vous pouvez ensuite append un format à la commande date (man date) si vous voulez exactement le même format et l’append comme alias vim

: r! date + “\% Y – \% m – \% d \% H: \% M: \% S”

Cela produit le format que vous avez montré dans votre exemple (la date dans le shell n’utilise pas \%, mais juste%, vim remplace% par le nom du fichier actuel, vous devez donc y échapper).

Vous pouvez append une carte dans votre fichier .vimrc pour que celle-ci mette la commande automatiquement, par exemple, chaque fois que vous appuyez sur F3:

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

(Édité par le haut :)) (Edit: change la partie texte en code, de sorte que

  

peut être affiché)

Pour un horodatage unix:

 : r!  date + \% s

Vous pouvez également mapper cette commande à une clé (par exemple F12) dans VIM si vous l’utilisez beaucoup:

Mettez ceci dans votre .vimrc:

 map  :r! date +\%s