Эта библиотека синтаксического анализа веса должна решить все подобные проблемы. Мне нравится библиотека, потому что ее довольно легко расширить.
Пример синтаксического анализа:
var caseOne = Date.parseDate("Jul 8, 2005", "M d, Y");
var caseTwo = Date.parseDate("2005-07-08", "Y-m-d");
И форматирование обратно в строку (вы заметите, что оба случая дают точно такой же результат):
console.log( caseOne.dateFormat("M d, Y") );
console.log( caseTwo.dateFormat("M d, Y") );
console.log( caseOne.dateFormat("Y-m-d") );
console.log( caseTwo.dateFormat("Y-m-d") );
http://kenno.wordpress.com/2006/08/03/vim-tip-insert-time-stamp/
Испытал его, это работает над моим Mac:
:r! date
производит:
Thu Sep 11 10:47:30 CEST 2008
Это:
:r! date "+\%Y-\%m-\%d \%H:\%M:\%S"
производит:
2008-09-11 10:50:56
Чтобы заставить его работать межплатформенный, просто поместите следующее в Ваш 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>
Теперь можно просто нажать F3 любое время в Vi/Vim, и Вы получите метку времени как 2016-01-25 Mo 12:44
вставленный в курсоре.
Для полного описания доступных параметров проверяют документация функции C strftime () .
: r! дата
можно тогда добавить формат к команде даты (дата человека), если Вы хотите тот же самый формат и добавляете это как псевдоним энергии также
: r! дата + "\%Y-\% m-\% d \%H:\%M: \% S"
, Который производит формат, который Вы показали в своем примере (дата в оболочке не использует \%, но просто %, энергия, заменяет % под названием текущий файл, таким образом, необходимо выйти из него).
можно добавить карту в .vimrc для него для помещения команды автоматически, например, каждый раз, когда Вы нажимаете F3:
:map <F3> :r! date +"\%Y-\%m-\%d \%H:\%M:\%S"<cr>
(Отредактированный сверху:)) (Редактирование: текстовая часть изменения для кодирования, так, чтобы
<F3>
мог быть отображен)
Взгляните к подсказке, выделенной к вставке/обновлению метки времени на vim.wikia.
Для метки времени Unix:
:r! date +\%s
можно также отобразить эту команду на ключ (например, F12) в VIM при использовании его много:
Помещенный это в Ваш .vimrc:
map <F12> :r! date +\%s<cr>
Я хотел, чтобы пользовательская команда :Date
(не отображение ключа) вставила дату в текущей позиции курсора.
, К сожалению, простые команды как r!date
результат в новой строке. Таким образом, наконец я придумал следующее:
command Date execute "normal i<C-R>=strftime('%F %T')<CR><ESC>"
, который добавляет дату/строку времени в позиции курсора, не добавляя новой строки (изменяются на normal a
, добавляют после позиции курсора).
В качестве расширения к ответу @Swaroop C H
^R=strftime("%FT%T%z")
представляет собой более компактную форму, которая также выводит часовой пояс (на самом деле отличие от UTC в форме, совместимой с ISO-8601).
Если вы по какой-то причине предпочитаете использовать внешний инструмент,
:r !date --rfc-3339=s
предоставит вам полную метку времени, совместимую с RFC-3339; используйте нс
вместо с
для точности, как у Спока, и пропустите через tr '' T
, чтобы использовать заглавную T вместо пробела между датой и временем.
Также вам может быть полезно знать, что
:source somefile.vim
будет читать команды из somefile.vim
: таким образом вы можете настроить собственный набор сопоставлений и т. Д., А затем загрузить его, когда вы используете vim для этой учетной записи.