解释和/或比较Git Grep颜色选项

解释和/或比较Git Grep颜色选项,git,colors,config,git-config,git-grep,Git,Colors,Config,Git Config,Git Grep,我正在尝试为我的Git定制颜色 在阅读了全文之后,我找到了我想要设置的选项 除了Grep,一切都很好。 我意识到,我过去没有真正使用过它 我想用相同的调色板为它设置颜色,但我无法测试其中的一些 我不知道matchContext和match指的是什么,也不知道它们与matchSelected和selected有何不同 matchSelected为我搜索的实际文本设置颜色,而asselected指的是该匹配的行级别(?)上下文 那么,match在做什么?matchContext设置了什么?到底哪里有

我正在尝试为我的Git定制颜色

在阅读了全文之后,我找到了我想要设置的选项

除了Grep,一切都很好。 我意识到,我过去没有真正使用过它

我想用相同的调色板为它设置颜色,但我无法测试其中的一些

我不知道
matchContext
match
指的是什么,也不知道它们与
matchSelected
selected
有何不同

matchSelected
为我搜索的实际文本设置颜色,而as
selected
指的是该匹配的行级别(?)上下文

那么,
match
在做什么?
matchContext
设置了什么?到底哪里有好的,详细的描述


有人吗?

以下是链接文档中的内容,稍加修改以使其更好地运行:

context

上下文行中不匹配的文本(使用
-A
-B
-C
时)

matchContext

在上下文行中匹配文本

matchSelected

在选定行中匹配文本

已选择

选定行中的不匹配文本

(我遗漏了
匹配
;我们一会儿再把它放回去)。假设我们运行
git grep findme
,这样我们就有了一个搜索词

这三个技术术语如下所示:

  • 匹配文本:这应该很明显。我们正在搜索文本字符串
    findme
    ,因此这是该字符串的每次出现。对这些类型的固定字符串进行颜色编码匹配不像对模式那样必要:如果我们在搜索模式,那么查看模式匹配的内容可能特别有用

  • 背景线:这里的线索是提到三面旗帜。您可以获得“before”上下文(
    -B
    )、“after”上下文(
    -A
    )或两者(
    -C
    ),这基本上意味着,如果您正在搜索
    findme
    ,Git发现了这一点,它不仅会打印出包含单词
    findme
    的行,还会打印出该行前后的一些行

    请注意,这些前后行中可能没有
    findme
    ,但它们可能会

  • 选定行:Git有点隐藏了这意味着什么,但基于上面的内容,这是相当容易猜测的:我们在搜索单词
    findme
    ,它出现在一些行中。因此,这些行被选中,这将它们与其中没有
    findme
    的任何上下文行区分开来;这些行未被选中。(但见下文!)

下面是一个搜索单词
的示例。Git将把
涂成红色,否则默认情况下不着色,所以我运行了:

git -c color.grep.selected=green grep -C 2 -n or
它添加行号并使用
selected=green
。不幸的是,我无法让StackOverflow为我的代码添加颜色,因此我将在Git使用绿色时使用粗体,在Git使用红色时使用斜体:

pfod.py-11-

pfod.py-12-这基本上是一个类和一个orderedict的混合体,

pfod.py:13:or,有点像一个只包含数据的类。当

pfod.py-14-class已创建,如果未创建,则其所有字段均设置为无

pfod.py-15-已初始化

在这里,我们在两边有两条未选择的线,没有任何颜色;中间的一条选择线,在一条所选行内有两次出现<代码>或<代码>。 在某些情况下,仅作为上下文的行实际上具有匹配项:

pfod.py-47-自身[字段]=None

pfod.py-48-如果len(kwargs):

pfod.py:49:raise TypeError('意外的kwargs%s'%kwargs.keys())

pfod.py-50-如果len(args):

pfod.py:51:raise TypeError('未使用的参数%r'%tuple(参数))

pfod.py-52-

pfod.py-53-def
\uu getattr\uuu
(self,attr):

在这里,我们在外边缘有两条未选择的线,然后两条选择的线之间有一条未选择的线。这意味着也可以选择上下文行!它们可以有非匹配文本和匹配文本。这有一点特别奇怪,因为如果上下文行有匹配项,它就会成为选中的行,那么为什么会有
matchContext
?如果上下文行具有匹配项,则它将更改为选定行

通常情况下,设置
color.grep.matchContext
不会有任何效果,因为如果上下文行中存在匹配项,则它将变为选定行,并且
color.grep.matchContext
不再适用。但是当使用
-v
时,一切都被交换了。这是定义(尽管不是很好)所选术语的地方:

-v
-反向匹配

选择不匹配的行

也就是说,grep的
-v
选项反转行选择。通常,查找匹配意味着选中了该行,因此您将获得
选中的
(默认值=无,但我在上面设置了
绿色
)和
匹配选中的
(默认值=“粗体红色”)颜色。但是使用
-v
,将取消选择具有匹配项的每一行,并且仅选择不匹配的行。那么现在我们的合作是什么