#vim #neovim
Вопрос:
У меня есть это на моем vimrc:
nmap <F3> i<C-R>=strftime("%Y-%a-%m-%d %I:%M %R")<CR><Esc>
imap <F3> <C-R>=strftime("%Y-%a-%m-%d %I:%M %R")<CR>
Когда я нажимаю F3 в редакторе vim, он возвращает что-то вроде даты и времени.
Но я не знаю, как я могу установить для этого другой цвет.
Я нашел некоторые другие функции, которые, кажется, делают это на https://manpages.debian.org но я не знаю наверняка… Есть идеи?
Комментарии:
1. Цвет? Но сопоставления просто вставляют текст в буфер, он ничем не отличается от того, если бы вы набрали его самостоятельно.
Ответ №1:
Функция, которую вы вызываете в своем сопоставлении, не является внешней функцией/командой/чем угодно: это функция Vim, которая возвращает только обычный текст без какой-либо информации о выделении.
Это имеет два последствия:
- все справочные страницы, которые вы найдете на этом сайте, не имеют отношения к делу,
- вам придется справиться с этим выделением самостоятельно, в Vim, вне этих сопоставлений.
Во-первых, вы могли бы немного упростить свою пару сопоставлений:
inoremap <F3> <C-R>=strftime("%Y-%a-%m-%d %I:%M %R")<CR>
nmap <F3> i<F3><Esc>
Во-вторых: если это одноразовый выстрел, вам может сойти с рук что-то вроде следующего:
:match Directory /d{4}-w{3}-d{2}-d{2}sd{2}:d{2}sd{2}:d{2}/
который соответствует дате, возвращенной вашим :help strftime()
звонком, и назначает ее Directory
группе выделения по умолчанию (это первое, что пришло на ум):
Видеть :help :match
.
В-третьих, если вы хотите, чтобы это было автоматически, вам придется немного углубиться в подсветку синтаксиса, которая состоит из двух этапов:
- вы определяете синтаксические группы с помощью
:help syntax
, - вы применяете визуальные атрибуты к этим группам с
:help :highlight
помощью .
Предполагая , что вы хотите, чтобы это происходило в буферах с типом foo
файла, вы можете создать ~/.vim/after/syntax/foo.vim
место, где вы можете определить свою собственную группу синтаксиса:
syntax match MyDate /d{4}-w{3}-d{2}-d{2}sd{2}:d{2}sd{2}:d{2}/
и свяжите его с группой по умолчанию:
highlight link MyDate Directory
Если вы предпочитаете самостоятельно обрабатывать визуальные атрибуты этой конкретной группы подсветки, вы можете следовать методу, описанному в этой статье.