EditPad Lite ma fajną funkcję ( CTRL- E, CTRL- I), która wstawia znacznik czasu, np. "2008-09-11 10:34:53" do twojego kodu.
Jaki jest najlepszy sposób na uzyskanie tej funkcjonalności w Vimie?
(Używam Vima 6.1 na serwerze Linux przez SSH. W obecnej sytuacji wielu z nas ma wspólny login, więc nie chcę tworzyć skrótów w katalogu domowym, jeśli jest inny wbudowany sposób na uzyskanie znacznika czasu. )
:r!date "+\%F \%T"
lub:r!date +\%F\ \%T
.Aby to działało na wielu platformach, po prostu umieść następujące informacje w swoim
vimrc
:Teraz możesz po prostu nacisnąć F3 w dowolnym momencie w Vi / Vim, a otrzymasz znacznik czasu, taki jak
2016-01-25 Mo 12:44
wstawiony przy kursorze.Pełny opis dostępnych parametrów znajduje się w dokumentacji funkcji C strftime () .
źródło
:Date
poprzez dodanie następujących do mojego~/.vimrc
pliku konfiguracyjnego:command! Date put =strftime('%Y-%m-%d')
. Wstawia datę w nowym wierszu. nie udało się stworzyć wersji bez nowej linii.command! Date :normal a<C-R>=strftime('%Y-%m-%d')<CR>
Dlaczego wszyscy używają
:r!
? Znajdź pustą linię i wpisz w!!date
trybie poleceń. Zapisz naciśnięcie klawisza![nb Spowoduje to potokowanie bieżącej linii do stdin, a następnie zastąpi wiersz wynikiem polecenia; stąd część „znajdź pustą linię”.]
źródło
Jako rozszerzenie odpowiedzi @Swaroop CH,
jest bardziej zwartą formą, która również drukuje strefę czasową (w rzeczywistości różnicę w stosunku do UTC, w formacie zgodnym z ISO-8601).
Jeśli z jakiegoś powodu wolisz korzystać z narzędzia zewnętrznego,
poda pełny znacznik czasu zgodny z RFC-3339; użyj
ns
zamiasts
dla precyzji podobnej do Spocka, i potokuj,tr ' ' T
aby użyć dużej litery T zamiast spacji między datą i godziną.Może się przydać również ta wiedza
wczyta polecenia z
somefile.vim
: w ten sposób możesz ustawić niestandardowy zestaw mapowań itp., a następnie załadować go, gdy używasz vima na tym koncie.źródło
:put=strftime(""%FT%T%z")
: r! data
Możesz następnie dodać format do polecenia daty (data man), jeśli chcesz dokładnie ten sam format i dodać go również jako alias vima
: r! data + "\% Y - \% m - \% d \% H: \% M: \% S"
To tworzy format, który pokazałeś w swoim przykładzie (data w powłoce nie używa \%, ale tylko%, vim zastępuje% nazwą bieżącego pliku, więc musisz go zmienić).
Możesz dodać mapę do swojego .vimrc, aby automatycznie wstawiała polecenie, na przykład za każdym razem, gdy naciśniesz F3:
(Edytowałem z góry :)) (Edycja: zmień część tekstu na kod, tak że
można wyświetlić)
źródło
Dla uniksowego znacznika czasu:
Możesz również zmapować to polecenie do klawisza (na przykład F12) w VIM, jeśli często go używasz:
Umieść to w swoim .vimrc:
źródło
Z Vim Wikia .
Używam tego zamiast poruszać ręką, aby nacisnąć klawisz F:
Teraz w trybie wstawiania wystarczy wpisać tds i jak tylko naciśnę klawisz spacji lub wrócę, otrzymuję datę i piszę dalej.
Wstawiam
%b
tam, bo lubię widzieć nazwę miesiąca.%F
Daje mi coś do sortowania według daty. Mogę to zmienić, aby%Y%m%d
między jednostkami nie było żadnych postaci.źródło
Unix, użyj:
Windows, użyj:
Więcej szczegółów: zobacz Insert_current_date_or_time
źródło
Kolejny szybki sposób nieuwzględniony w poprzednich odpowiedziach: wpisz
!!data
źródło
Chciałem, aby niestandardowe polecenie
:Date
(nie mapowanie klawiszy) wstawiało datę w bieżącej pozycji kursora.Niestety proste polecenia, takie jak
r!date
powodują powstanie nowej linii. Więc w końcu wymyśliłem:który dodaje ciąg daty / czasu w pozycji kursora bez dodawania nowego wiersza (zmień na
normal a
dodanie po pozycji kursora).źródło