EditPad Lite a une fonctionnalité intéressante ( CTRL- E, CTRL- I) qui insère un horodatage, 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, nous sommes nombreux à partager un login, donc je ne veux pas créer d'abréviations dans le répertoire personnel s'il existe un autre moyen intégré pour obtenir un horodatage. )
:r!date "+\%F \%T"
ou:r!date +\%F\ \%T
.Pour le faire fonctionner multi-plateforme, il suffit de mettre ce qui suit dans votre
vimrc
: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 niveau du curseur.Pour une description complète des paramètres disponibles, consultez la documentation de la fonction C strftime () .
la source
:Date
en ajoutant ce qui suit à mon~/.vimrc
fichier de configuration:command! Date put =strftime('%Y-%m-%d')
. Il insère la date sur une nouvelle ligne. n'a pas réussi à faire une version sans nouvelle ligne.Pourquoi tout le monde utilise-
:r!
t-il? Trouvez une ligne vide et tapez à!!date
partir du mode commande. Enregistrez une frappe![nb Ceci conduira la ligne courante dans stdin, puis remplacera la ligne par la sortie de la commande; d'où la partie "trouver une ligne vide".]
la source
En prolongement de la réponse de @Swaroop CH,
est une forme plus compacte qui imprimera également le fuseau horaire (en fait la différence avec UTC, sous une forme conforme à la norme ISO-8601).
Si vous préférez utiliser un outil externe pour une raison quelconque,
vous donnera un horodatage complet conforme à la RFC-3339; utilisez
ns
au lieu des
pour une précision semblable à Spock, et indiqueztr ' ' T
un T majuscule au lieu d'un espace entre la date et l'heure.Vous trouverez peut-être également utile de savoir que
lira 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.la source
:put=strftime(""%FT%T%z")
: r! Date
Vous pouvez ensuite ajouter un format à la commande date (man date) si vous voulez exactement le même format et l'ajouter également en tant qu'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 seulement%, vim remplace% par le nom du fichier actuel, vous devez donc l'échapper).
Vous pouvez ajouter une carte dans votre .vimrc pour qu'il place automatiquement la commande, par exemple, chaque fois que vous appuyez sur F3:
(Modifié ci-dessus :)) (Edit: changez la partie de texte en code, de sorte que
peut être affiché)
la source
Pour un horodatage unix:
Vous pouvez également mapper cette commande à une clé (par exemple F12) dans VIM si vous l'utilisez beaucoup:
Mettez ceci dans votre .vimrc:
la source
À partir de Vim Wikia .
J'utilise ceci au lieu d'avoir à déplacer ma main pour appuyer sur une touche F:
Maintenant, en mode Insertion, il suffit de taper tds et dès que j'appuie sur la barre d'espace ou que je reviens, j'obtiens la date et je continue à taper.
J'ai mis le
%b
là-dedans, car j'aime voir le nom du mois. Le%F
me donne quelque chose à trier par date. Je pourrais changer cela pour%Y%m%d
qu'il n'y ait pas de caractères entre les unités.la source
Unix, utilisez:
Windows, utilisez:
Plus de détails: voir Insert_current_date_or_time
la source
Un autre moyen rapide non inclus dans les réponses précédentes: tapez-
!!Date
la source
Je voulais une commande personnalisée
:Date
(pas un mappage de touches) pour insérer la date à la position actuelle du curseur.Malheureusement, des commandes simples comme
r!date
entraînent une nouvelle ligne. Alors finalement, j'ai trouvé ce qui suit:qui ajoute la chaîne de date / heure à la position du curseur sans ajouter de nouvelle ligne (changement pour
normal a
ajouter après la position du curseur).la source