我在 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]*\("
使函数名称变成白色,当然在白色背景上是不可读的。
将其改为这样;
# Function names.
color white,black "\<[A-Za-z_][A-Za-z_0-9]*\("
改进了一点。它现在生成了函数名称,但是仅有的函数名称,在黑色背景上用白色字体显示。但它看起来也很丑陋,因为其他所有内容都有白色背景。
有没有办法将 nano edit 中的背景更改为不再使用终端默认颜色,而是改用黑色?
答案1
这是我四处寻找后想到的解决方案。我们可以使用转义序列来动态更改终端颜色。
为此,我们可以创建一个名为nnano
例如的函数并将其存储在某个地方,这样~/.bashrc
当我们打开一个新的 bash 实例时它就会自动被调用。
然后使用它:
nnano filename
它首先改变终端的背景颜色,然后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"
}
如果不翻转前景色:
理念源自这里。
答案2
这不是您真正想要的(深色/黑色背景)。我甚至不确定是否可以做到这一点。因为正如您自己所说,nano
它的颜色是从继承而来的xterm
。尽管您可能能够xterm
在计划运行时使用不同的配置来运行nano
。
不过我相信如果您创建一个.Xresources
包含完整颜色集的文件,那么您就不会遇到任何问题。
这是我的代码。第一部分是为了urxvt
让它看起来更好一点。你可以忽略这些行。注意文件的最后一部分,即指定颜色的部分。
我只是改变了背景和前景色来创建一些与您想要的视觉上相似的东西。
请记住,我的颜色已配置为使用深色背景。您可以更改它们以获得更好的输出。例如,将黄色更改为黑色后:
xrdb -merge ~/.Xresources
编辑“~/Xresources”文件后不要忘记运行 。
URxvt*termName: rxvt-256color
URxvt*font: xft:Menlo:pixelsize=12,xft:Inconsolata\ for\ Powerline:pixelsize=12
URxvt.depth: 0
URxvt*lineSpace: 1
URxvt.letterSpace: -1
URxvt.iso14755: false
URxvt.iso14755_52: false
URxvt*geometry: 90x20
URxvt.scrollBar: false
URxvt*loginShell: true
URxvt.internalBorder: 20
URxvt.perl-ext-common: default,clipboard
URxvt.keysym.Shift-Control-C: perl:clipboard:copy
URxvt.keysym.Shift-Control-V: perl:clipboard:paste
URxvt.clipboard.autocopy: true
! Colors
background: #FFF
foreground: #000
*cursorColor: #9aedfe
*color0: #33303b
*color8: #4f4b58
*color1: #ff5c57
*color9: #ff5c57
*color2: #5af78e
*color10: #5af78e
*color3: #f3f99d
*color11: #f3f99d
*color4: #57c7ff
*color12: #57c7ff
*color5: #ff6ac1
*color13: #ff6ac1
*color6: #9aedfe
*color14: #9aedfe
*color7: #eff0eb
*color15: #eff0eb
以下是来自的照片xterm
: