Najlepszy sposób na wstawienie znacznika czasu w Vimie?
EditPad Lite ma fajną funkcję (CTRL-E, CTRL-I), który wstawia znacznik czasu np. "2008-09-11 10: 34: 53" do kodu.
Jaki jest najlepszy sposób na uzyskanie tej funkcjonalności w Vim?
(używam Vima 6.1 na serwerze Linuksowym 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.)
11 answers
Http://kenno.wordpress.com/2006/08/03/vim-tip-insert-time-stamp/
Wypróbowałem, działa na moim Macu:
:r! date
Produkuje:
Thu Sep 11 10:47:30 CEST 2008
To:
:r! date "+\%Y-\%m-\%d \%H:\%M:\%S"
Produkuje:
2008-09-11 10:50:56
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-02 14:21:07
Aby działać wieloplatformowo, po prostu umieść w swoim 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>
Teraz możesz po prostu wcisnąć F3 w dowolnym momencie wewnątrz Vi / Vim i otrzymasz znacznik czasu jak 2016-01-25 Mo 12:44
wstawiony za kursorem.
Aby uzyskać pełny opis dostępnych parametrów sprawdź dokumentację funkcji C strftime () .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-25 11:52:47
Jako rozszerzenie odpowiedzi @Swaroop C H,
^R=strftime("%FT%T%z")
Jest bardziej zwartą formą, która drukuje również strefę czasową (w rzeczywistości różnica w stosunku do UTC, w formie zgodnej z ISO-8601).
Jeśli wolisz używać zewnętrznego narzędzia z jakiegoś powodu,
:r !date --rfc-3339=s
Da ci pełny znacznik czasu zgodny z RFC-3339; użyj ns
zamiast s
dla Precyzji podobnej do Spocka, i przepuść tr ' ' T
, aby użyć dużej litery T zamiast spacji między datą i czasem.
Również możesz go znaleźć warto wiedzieć, że
:source somefile.vim
Będzie czytać w poleceniach z somefile.vim
: w ten sposób można ustawić własny zestaw mapowań itp., a następnie załaduj go, gdy używasz Vima na tym koncie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-12-11 04:54:12
Dlaczego wszyscy używają :r!
? Znajdź pustą linię I wpisz !!date
z trybu komend. Zapisz naciśnięcie klawisza!
[n. b. spowoduje to przekierowanie bieżącego wiersza na standardowe wejście, a następnie zastąpienie wiersza wyjściem polecenia; stąd część "znajdź pustą linię".]
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-12 10:46:06
Zajrzyj do porady poświęconej wstawianiu/aktualizacji znacznika czasu w Vimie.wikia.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-18 16:35:53
:r! data
Możesz dodać format do polecenia date (Man date), jeśli chcesz mieć dokładnie ten sam format i dodać go również jako alias Vima
:r! date + "\ % Y - \ %m - \ % d \%H:\%M:\%S "
, który tworzy format pokazany w przykładzie (data w powłoce nie używa \%, ale tylko %, vim zastępuje % nazwą bieżącego pliku, więc musisz go usunąć).
Możesz dodać mapę w swoim .vimrc, aby umieścić polecenie automatycznie, na przykład, za każdym razem, gdy naciśnij F3:
:map <F3> :r! date +"\%Y-\%m-\%d \%H:\%M:\%S"<cr>
(edytowane z góry :) ) (Edit: Zmień część tekstu na kod, tak aby
<F3>
Mogą być wyświetlane)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-04 11:02:47
Dla uniksowego znacznika czasu:
:r! date +\%s
Możesz również mapować to polecenie do klucza (na przykład F12) w Vimie, jeśli używasz go często:
Włóż to do swojego .vimrc:
map <F12> :r! date +\%s<cr>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-11 08:51:26
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-11-03 19:45:23
Kolejny szybki sposób nieuwzględniony w poprzednich odpowiedziach: type -
!!data
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-04 08:55:46
Z Vim Wikia .
Używam tego zamiast ruszać ręką, aby uderzyć w Klawisz F:
:iab <expr> tds strftime("%F %b %T")
Teraz w trybie wstawiania po prostu wpisz tds i jak tylko nacisnę spację lub powrócę, dostaję datę i piszę dalej.
Wstawiłem tam %b
, bo lubię oglądać nazwę miesiąca. %F
daje mi coś do sortowania według daty. Mogę to zmienić na %Y%m%d
, żeby między jednostkami nie było znaków.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-22 13:46:04
Unix, użycie:
!!date
Windows, użycie:
!!date /t
Więcej szczegółów: zobacz Insert_current_date_or_time
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-19 11:44:38