Лучший способ вставить метку времени в Vim?

Эта библиотека синтаксического анализа веса должна решить все подобные проблемы. Мне нравится библиотека, потому что ее довольно легко расширить.

Пример синтаксического анализа:

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") );

86
задан Valery Viktorovsky 20 August 2015 в 22:38
поделиться

8 ответов

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
80
ответ дан Daren Thomas 24 November 2019 в 07:58
поделиться

Чтобы заставить его работать межплатформенный, просто поместите следующее в Ваш 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 () .

106
ответ дан Andreas Haferburg 24 November 2019 в 07:58
поделиться

: r! дата

можно тогда добавить формат к команде даты (дата человека), если Вы хотите тот же самый формат и добавляете это как псевдоним энергии также

: r! дата + "\%Y-\% m-\% d \%H:\%M: \% S"

, Который производит формат, который Вы показали в своем примере (дата в оболочке не использует \%, но просто %, энергия, заменяет % под названием текущий файл, таким образом, необходимо выйти из него).

можно добавить карту в .vimrc для него для помещения команды автоматически, например, каждый раз, когда Вы нажимаете F3:

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

(Отредактированный сверху:)) (Редактирование: текстовая часть изменения для кодирования, так, чтобы

<F3> 

мог быть отображен)

8
ответ дан lukmac 24 November 2019 в 07:58
поделиться

Взгляните к подсказке, выделенной к вставке/обновлению метки времени на vim.wikia.

7
ответ дан Luc Hermitte 24 November 2019 в 07:58
поделиться

Для метки времени Unix:

:r! date +\%s

можно также отобразить эту команду на ключ (например, F12) в VIM при использовании его много:

Помещенный это в Ваш .vimrc:


map  <F12> :r! date +\%s<cr>
4
ответ дан fijter 24 November 2019 в 07:58
поделиться

Я хотел, чтобы пользовательская команда :Date (не отображение ключа) вставила дату в текущей позиции курсора.

, К сожалению, простые команды как r!date результат в новой строке. Таким образом, наконец я придумал следующее:

command Date execute "normal i<C-R>=strftime('%F %T')<CR><ESC>"

, который добавляет дату/строку времени в позиции курсора, не добавляя новой строки (изменяются на normal a, добавляют после позиции курсора).

0
ответ дан 24 November 2019 в 07:58
поделиться
2
ответ дан 24 November 2019 в 07:58
поделиться

В качестве расширения к ответу @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 для этой учетной записи.

9
ответ дан 24 November 2019 в 07:58
поделиться