可以删除 Notepad++ 样式吗?(我的意思是样式配置器的语言颜色样式)

6 bash notepad++ colors

我在 Notepadd ++ 中使用 Unix .sh文件时遇到以下问题:

如果整个文档的内容用heredoc命令包装,则整个文档将以一种颜色着色。例如:

**<< 'EOF0'**

Content of the document --- All of which will be dyed in a single color.

**EOF0**
Run Code Online (Sandbox Code Playgroud)

图片示例:

1 - 没有定界符:

在此输入图像描述


2 - 使用定界符:

在此输入图像描述


为什么我刚才描述的情况是有问题的:

当使用很长的脚本时,由于一个(heredoc)命令,所有内容都以一种单一颜色着色,这可能会很烦人,当您知道在一天结束时,使用多个命令会更舒服-color 文档,就像没有此命令一样。

我试图解决它:

我试图去Settings > Style configurator > Language --- Bash那里以某种方式完全删除 HERE DELEM && HERE Q,但我在 GUI 中没有找到这样的方法。

我的问题:

如何从 Notepad++ 中删除这两种样式(或任何其他样式),以便它们不会影响 .sh 文档中文本的颜色?(在我的例子中是 .sh 文件)?

我只是不让这样的包装器(heredocs 是文本包装器)以任何颜色着色...我只是想完全删除它们的“本机”Notepad++ 风格...

Rak*_*lam 4

您试图实现的目标格式化样式并不容易实现(但是,是的,以更困难的方式是可能的),但您也可以通过一个简单的技巧来解决您的问题。我在这里讨论两者。

为什么它不能直接实现:

如果您转到Notepad++Windows 中的目录,您将找到一个名为SciLexer.dll. 该文件是根据 Notepad++ 的原始源代码构建的。Bash代码检测命令的方式heredoc硬编码在此文件内。并且该文件不能由用户直接编辑。

那么如何编辑SciLexer.dll

我们知道这Notepad++是一个开源软件,我们可以SciLexer.dll根据他们给定的源代码自己构建。但要做到这一点,一个人应该对编程语言有很好的了解,否则他可能会把所有这些事情搞砸。在这里您可以找到完整的源代码Notepad++以及SciLexer.dll如何构建它们的详细说明。因此,如果您对编程有很好的了解,您一定可以在那里阅读他们的教程,您会LexBash.cxxscintilla>lexers目录中找到一个名为的文件,您可以编辑该文件以删除heredoc检测部分并根据该教程重建文件。最后你会得到新的SciLexer.dllSciLexer.dll如果您将其替换为目录中的当前内容Notepad++,它将像魅力一样发挥作用。

现在的问题是,如果由于缺乏编程知识或时间不够而无法完成所有这些事情,那么还有其他方法吗!!!!可能不是,但我找到了一个技巧,您可以用它来部分解决您的问题。

它会像你想象的那样工作吗:

正如你所说:

我试图去Settings > Style configurator > Language --- Bash 那里以某种方式完全删除 HERE DELEM && HERE Q,但我在 GUI 中没有找到这样的方法。

显然,在 GUI 中没有选项可以删除这些属性,但我们可以删除这些属性。为此,在 Windows 中您必须转到此目录:

%AppData%\Notepad++(将目录复制粘贴到 Windows 资源管理器地址栏)

在该目录中您将找到一些xml文件。我们需要的是stylers.xml. 因此,请使用Notepad++或其他好的文本格式和编辑工具找到并打开它,因为默认的 Windows 记事本会弄乱格式。在该文件中搜索bash. 你会发现类似这样的东西:

这些是文件内样式的所有属性Bash。最后两行描述了HERE DOC. 因此,您可能会考虑删除这些行并保存文件。这样,您将不再在 Notepad++ 的 GUI 中看到您提到的上述两个选项。但不要这样做。

实际上,他们会从 Bash 脚本中删除HERE DELIMHERE Q格式化样式Notepad++,但不会解决您的问题。因为,正如我之前所说,heredoc格式化样式是硬编码在SciLexer.dll. 因此,当您删除这些属性时,Notepad++仍然可以检测heredoc命令,并且由于它找不到适当的格式样式,因此它将覆盖默认样式,这意味着所有行都将为黑色。因此你的问题无法按照你的想法得到解决。

一个简单的技巧可以部分解决您的问题:

Notepad++ 可以访问近 52 种编程语言的格式化风格,但并不是每个人都需要所有这些。因此,我的技巧是编辑另一种具有类似格式样式的语言来处理Bash文件。我发现它NSIS使用与 几乎相同的格式样式Bash。因此,在打开文件后编辑或编写一个.sh或其他文件时,只需选择语言为。BashNotepad++NSIS

这样就可以解决问题,但您可以看到关键字仍然是黑色,我们需要将其涂成蓝色。所以我们必须将 的关键字替换NSIS为 的关键字Bash。要再次执行此操作,请转到目录:

%AppData%\Notepad++(将目录复制粘贴到 Windows 资源管理器地址栏)

这次,我们需要名为langs.xml. 所以使用打开它Notepad++。搜索bash。你会发现类似这样的东西:

将该部分复制到其他地方。nsis现在再次在该文件中搜索langs.xml。你会发现类似这样的东西:

现在最后nsis用之前复制的部分替换该部分,如下所示:

并保存文件。现在,重新启动 Notepad++ 并查看更改。希望它能对您有所帮助。在这种方法中你会发现的问题是带 $符号的变量与其他颜色没有区别。但也许这不是一个大问题。希望能帮助到你。干杯。