如何将全局纳米背景设置为黑色

Fre*_*cal 5 command-line nano

我在 Ubuntu 20.04 LTS 上使用 GNU nano 4.8 版。

我将 X11 设置为使用白色作为 xterm 窗口的背景色。我不想更改此设置。看起来 nano 继承了这一点,并使用白色作为其全局背景色。

PHP(和其他语言)的默认语法突出显示似乎假设 nano 编辑器中的背景颜色是某种深色。例如这些行来自php.nanorc

# Function names.
color white "\<[A-Za-z_][A-Za-z_0-9]*\("
Run Code Online (Sandbox Code Playgroud)

使函数名称为白色,这当然在白色背景上是不可读的。

改成这样;

# Function names.
color white,black "\<[A-Za-z_][A-Za-z_0-9]*\("
Run Code Online (Sandbox Code Playgroud)

改善了一点。它现在使函数名称,但只有函数名称,以黑色背景上的白色字体显示。但它看起来也很丑,因为其他所有东西都有白色背景。

有没有办法在 nano 编辑中更改背景以不重新使用终端默认颜色,而是使用黑色?

Rav*_*ina 4

这是我环顾四周时想到的一个解决方案。我们可以使用转义序列来动态更改终端颜色。

在此输入图像描述

为此,我们可以创建一个名为nnanoexample 的函数,并将其存储在某个地方~/.bashrc,这样当我们打开一个新的 bash 实例时,它就会自动获取。

然后使用它:

nnano filename
Run Code Online (Sandbox Code Playgroud)

它首先更改终端的背景颜色,然后black当我们关闭它时,nano它会将其更改为白色。

这是可以进一步改进的功能:

nnano () {

    # Change the terminal foreground to #FFFFFF
    echo -ne "\033]10;#FFFFFF\007"

    # Change the terminal background to #000000
    echo -ne "\033]11;#000000\007"

    nano "$1"

    # Reset the colors
    echo -ne "\033]10;#000\007"
    echo -ne "\033]11;#FFF\007"

}
Run Code Online (Sandbox Code Playgroud)

如果不翻转前景色:

在此输入图像描述

想法就来自这里