Question

EditPad Lite est une fonctionnalité intéressante (CTRL-E, CTRL-J'), qui insère un timbre de temps par exemple"2008-09-11 10:34:53" dans votre code.

Quelle est la meilleure façon 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 de partager une connexion donc je ne veux pas créer des abréviations dans le répertoire d'accueil si il y a un autre moyen intégré pour obtenir un horodatage.)

Était-ce utile?

La solution

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

Il a essayé, il fonctionne 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

Autres conseils

Pour le faire fonctionner de la croix-plate-forme, il suffit de mettre la ligne suivante dans votre 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>

Maintenant, vous pouvez simplement appuyer sur la touche F3 tout moment à l'intérieur de Vi/Vim et vous obtiendrez un timestamp comme 2016-01-25 Mo 12:44 inséré à l'emplacement du curseur.

Pour une description complète des paramètres disponibles vérifier l' la documentation de la fonction C strftime().

Pourquoi tout le monde à l'aide de :r!?Trouver une ligne vide et tapez !!date de commande-mode.Enregistrer une séquence de touches!

[n.b.Cela va de la pipe de la ligne actuelle en stdin, puis remplacez la ligne avec la sortie de la commande;d'où le "trouver une ligne vide" partie.]

Comme une extension de @Swaroop C H de la réponse,

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

est une forme plus compacte qui sera également imprimer le fuseau horaire (en fait la différence de l'UTC, dans un ISO-8601-conformes à la forme).

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

:r !date --rfc-3339=s

vous donnera une pleine RFC 3339 conforme timestamp;utilisation ns au lieu de s pour Spock-comme la précision et la pipe à travers tr ' ' T l'utilisation d'un capital T au lieu d'un espace entre la date et l'heure.

Aussi, vous pourriez trouver utile de savoir que

:source somefile.vim

va lire dans les commandes de somefile.vim:de cette façon, vous pourriez mettre en place un ensemble de correspondances, etc., et puis le charger lorsque vous utilisez vim sur ce compte.

:r!date

Vous pouvez ensuite ajouter le format de la date de commande (homme-jour) si vous voulez le même format exact et ajouter ce que un de vim alias ainsi

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

Qui produit le format que vous avez montré dans votre exemple (la date dans le shell ne pas utiliser \%, mais seulement %, vim remplace % par le nom du fichier en cours, si vous avez besoin de s'en échapper).

Vous pouvez ajouter une carte à votre .vimrc pour mettre la commande automatiquement, par exemple, à chaque fois que vous appuyez sur la touche F3:

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

(Modifié le de ci-dessus :) ) (Edit:modifier le texte de la partie de code, de sorte que

<F3> 

peut être affiché)

Ont un look à la pointe dédié d'horodatage de l'insertion/mise à jour sur vim.wikia.

Pour un timestamp unix:

:r! date +\%s

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

Mettez ceci dans votre .vimrc:


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

À partir de la Vim Wikia.

Je l'utiliser au lieu d'avoir à bouger ma main pour frapper une touche F:

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

Maintenant en mode Insertion, il suffit de taper tds et dès que j'ai touché la barre d'espace ou retour, je reçois de la date et de continuer à taper.

J'ai mis le %b là, parce que j'aime voir le nom du mois.L' %F donne-moi quelque chose pour trier par date.Je pourrais la remplacer %Y%m%d donc, il n'y a pas de caractères entre les unités.

Un autre moyen rapide n'est pas inclus par les réponses précédentes:type

!!date

Unix,utilisez:

!!date

Windows, utilisez:

!!date /t

Plus de détails:voir Insert_current_date_or_time

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top