18

В vim вы можете выполнять команды с "!». Вы можете комбинировать это с "r", чтобы вставить вывод в ваш текущий буфер.

:р!Дата
Пт Июл 20 09:39:26 SAST 2012

вставит дату в файл.

Теперь, когда я пытаюсь сделать что-то более интересное, например, дату в другом формате +% F. В командной строке

$ date +% F
2012-07-20

В VIM

:р!дата "+% F"
message.to.followup.lstF

Который выводит имя файла и ставит F после него. кое как р!дата "+% F" раскрывается в vim и не запускается в командной строке. Что мне нужно сделать, чтобы запустить его, чтобы он помещал содержимое в vim.

Возможно, у vim есть лучший способ вставить даты в файлы.

3 ответа3

18

Я продолжал экспериментировать, пока не понял, что vim расширяет символ «%». Так что просто избегайте "\%", и все работает так, как я ожидал.

:р!дата "+\% F"
2012-07-20

Теперь я могу поместить даты в файлы, как я хотел бы

:р!дата "+\% F" -d "-2 день"
2012-07-18

17

Vim имеет внутреннюю функцию strftime() . Попробуйте это (в режиме вставки):

<C-r>=strftime('%F')<CR>
7

Другой метод, без экранирования, с использованием system():

system('date +%F')

В режиме INSERT :

<C-r>=system('date +%F')<CR>

В НОРМАЛЬНОМ режиме:

:put=system('date +%F')<CR>

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .