解释和/或比较Git Grep颜色选项
我正在尝试为我的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设置了什么?到底哪里有
matchContext
和match
指的是什么,也不知道它们与matchSelected
和selected
有何不同
matchSelected
为我搜索的实际文本设置颜色,而asselected
指的是该匹配的行级别(?)上下文
那么,match
在做什么?matchContext
设置了什么?到底哪里有好的,详细的描述
有人吗?以下是链接文档中的内容,稍加修改以使其更好地运行:
context
上下文行中不匹配的文本(使用-A
、-B
或-C
时)
matchContext
在上下文行中匹配文本
matchSelected
在选定行中匹配文本
已选择
选定行中的不匹配文本
(我遗漏了匹配
;我们一会儿再把它放回去)。假设我们运行git grep findme
,这样我们就有了一个搜索词
这三个技术术语如下所示:
- 匹配文本:这应该很明显。我们正在搜索文本字符串
,因此这是该字符串的每次出现。对这些类型的固定字符串进行颜色编码匹配不像对模式那样必要:如果我们在搜索模式,那么查看模式匹配的内容可能特别有用findme
- 背景线:这里的线索是提到三面旗帜。您可以获得“before”上下文(
)、“after”上下文(-B
)或两者(-A
),这基本上意味着,如果您正在搜索-C
,Git发现了这一点,它不仅会打印出包含单词findme
的行,还会打印出该行前后的一些行 请注意,这些前后行中可能没有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
,将取消选择具有匹配项的每一行,并且仅选择不匹配的行。那么现在我们的合作是什么