-2

Задача: показать текущее время пользователю vim.

Это не вопрос вставки времени в документ, что легко можно сделать, например, !!Дата. В моем вопросе пользователь просто хочет знать, который час.

Наименьшее количество нажатий клавиш, по-видимому, связано с выходом из vim или вставкой даты в документ и ее удалением:

  1. Звони в шелл и возвращайся!дата + введите +

  2. Приостановите vim, введите shell и вернитесь: ctrl-z date fg

  3. Вставьте в текущий файл и удалите:: r!дата дд

  4. Введите множество символов и отобразите дату в командной строке:: ec strftime("% c")

Наверняка должна быть более короткая команда для быстрого отображения текущего времени даже без обновления файла .vmrc?

1 ответ1

1

Если мотивация для вас (как вы упоминаете в комментариях) - это сохранение нескольких нажатий клавиш для чего-то, что я часто делаю, альтернативы реализации (как вы перечислите их в своем вопросе) не имеют значения.

Ответ: вы показываете время:

  • с помощью пользовательского сопоставления / команды или
  • внутри :help status-line :help или :help 'titlestring', где она будет периодически обновляться
  • повторяется всякий раз, когда вы отдыхаете (например, на :help CursorHold даже)

Что бы ни подходило вашему варианту использования (например, показывать его только по требованию (потому что вы не хотите тратить впустую экранную недвижимость или находить, что периодически обновляющиеся часы отвлекают внимание), а не показывать это все время).

Для реализации я бы порекомендовал strftime() , поскольку он встроен и не требует дорогостоящего вызова внешней команды. Это может быть так просто, как это:

:nnoremap <silent> <F1> :echo strftime('%c')<CR>

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