如何只为映射 vim 函数的结果设置颜色?
How to set the color only for the result of mapping vim function?
我的 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>
当我在 vim 编辑器上按 F3 时,它 returns 类似于日期时间。
但是我不知道如何为此设置不同的颜色。
我发现一些其他功能似乎在 https://manpages.debian.org 上执行,但我不确定...有什么想法吗?
您在映射中调用的函数不是外部函数 function/command/whatever:它是一个 Vim 函数,只有 returns 纯文本,没有任何突出显示信息。
这有两个后果:
- 您在该站点上找到的所有联机帮助页都是无关紧要的,
- 你必须自己处理突出显示,在 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}\s\d\{2}:\d\{2}\s\d\{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}\s\d\{2}:\d\{2}\s\d\{2}:\d\{2}/
和link它到默认组:
highlight link MyDate Directory
如果您更喜欢自己处理特定高亮组的视觉属性,可以按照this gist中描述的方法进行操作。
我的 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>
当我在 vim 编辑器上按 F3 时,它 returns 类似于日期时间。 但是我不知道如何为此设置不同的颜色。
我发现一些其他功能似乎在 https://manpages.debian.org 上执行,但我不确定...有什么想法吗?
您在映射中调用的函数不是外部函数 function/command/whatever:它是一个 Vim 函数,只有 returns 纯文本,没有任何突出显示信息。
这有两个后果:
- 您在该站点上找到的所有联机帮助页都是无关紧要的,
- 你必须自己处理突出显示,在 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}\s\d\{2}:\d\{2}\s\d\{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}\s\d\{2}:\d\{2}\s\d\{2}:\d\{2}/
和link它到默认组:
highlight link MyDate Directory
如果您更喜欢自己处理特定高亮组的视觉属性,可以按照this gist中描述的方法进行操作。