Ubuntu 20.04终端中的VIM颜色

cyvaqqii  于 2022-11-11  发布在  其他
关注(0)|答案(4)|浏览(466)

在进入错误的兔子洞之后,在Ubuntu 20.04中查看终端的主题时,我意识到我真正需要改变的是vim中的配色方案。我发现它们列在/usr/share/vim/vim 81/colors/.vim中
我不明白的一件事是,Putty似乎有我喜欢的颜色,我习惯了,并且最容易看到,当我输入“:colorscheme”,而一个文件在vim编辑器中打开,它输出“default”。我不明白为什么默认的主题看起来正确,我在PuTTy,而不是在终端。如果我有改变字体家族和大小的选择,在Ubuntu 20.04的PuTTy,我可能只是使用它。因为它是太小,我几乎看不到字体。因此,我需要使用终端。但是,颜色使我很难看到。
我想要的颜色(特别是对于Python,但是putty总是有正确的颜色)是PuTTy在我输入“:colorscheme default”时使用的颜色,但是我想要终端使用这些颜色。
有人知道如何让“终端”显示与PuTTy显示相同的颜色吗?或者有人创建了一个自定义的“
.vim”颜色文件,我可以下载该文件并将其用作VIM中终端的配色方案吗?
终端,使用ViM 81:配色方案=默认:

VIM,使用ViM 81:配色方案=默认:

如果有人能提供一个链接到一个页面,告诉我做什么,或到一个colorscheme.vim文件的终端的VIM,我真的很感激。

kninwzqo

kninwzqo1#

配色方案实质上是一系列Ex命令,如下所示:

highlight Foo cterm=NONE ctermbg=red ctermfg=224 gui=NONE guibg=#ff0000 guifg=#ffdfdf

对于给定加亮组(这里是Foo),其定义:

  • 用于cterm的终端仿真器的文本样式,
  • ctermbg的终端仿真程序的背景色,
  • ctermfg的终端仿真器的前景色,
  • GUI Vim的文本样式为gui
  • GUI Vim的背景颜色为guibg
  • guifg的GUI Vim的前景色。

由于您讨论的是颜色和终端仿真器,因此只有ctermbgctermfg是相关的。
可以为ctermbgctermfg指定不同类型的值,其效果可能因环境而异:

  • 1-15将意味着“在所谓的ANSI调色板中使用给定索引处的颜色”,
  • red将意味着“在所谓的ANSI调色板中使用具有给定名称的颜色”,
  • X1 M13 N1 X将意味着“在所谓的Xterm调色板中使用给定索引224处的颜色”。

有数以千计的自定义配色方案存在和配色方案的作者可能会喜欢一个符号超过其他,混合他们,甚至根本不使用他们,因为他们只关心GVim。“YMMV”是不是一个笑话时,谈论Vim配色方案。
default配色方案所使用的符号主要取决于您的环境,因此环境对外观有很大影响。
例如,如果您的$TERM类似于xterm,Vim假定您的终端仿真器只能显示8-16种颜色,因此它使用第一种表示法。这意味着您看到的颜色都取自您的终端仿真器所谓的ANSI调色板,a)从终端仿真器到终端仿真器会发生变化,B)通常可以由用户进行修改。在这种情况下,对于Vim来说,没有任何办法对最终将使用什么颜色做出任何保证。
如果您的$TERM类似于xterm-256color,Vim假设您的终端模拟器可以显示256种颜色,因此它使用第一种和第三种表示法的混合,这真的很烦人。颜色16-255与颜色0-15相比的最大优势是:a)用户不容易更改它们,和B)可以合理地预期它们在大多数实现它们的终端仿真器上是相同的。恼人的一点是,Vim使用了大量0-15范围内的颜色,这是不可信的,与16-255范围内的颜色组合在一起,这是可以信任的。
最终的结果是default不能期望在没有 * 一些 * 干扰的情况下跨终端仿真器保持一致。
从那里去哪里?
首先,如果您希望 n 个Vim在 n 个终端仿真器中,在 n 个平台上表现相同,那么您至少需要做的是:

  • 确保$TERM匹配,
  • 请确保它实际上是应用了完全相同补丁的完全相同的Vim版本,
  • 请确保所有终端仿真器的颜色0-15完全相同,
  • 而且,既然你提到了字体大小,确保你在任何地方都安装了完全相同的字体,并且所有的终端仿真器都设置为使用完全相同的字体大小。

如果你想坚持使用default,那么检查 * 所有 * 以上选项应该会让你离你想去的地方更近。如果你不能,那么你可以马上给予。
其次,Vim提供了很多现成的可选配色方案,所以你可以尝试一下,看看是否有一个更适合你:

:colorscheme <Tab>

第三,如上所述,你可以尝试一些许多自定义配色方案。要知道,它们可能有不同的功能和不同的要求。

wswtfjt7

wswtfjt72#

Vim的默认颜色是根据16色ANSI调色板指定的。(明亮)的版本。您看到的区别是定义是近似的。例如,颜色1是红色,颜色4是蓝色,但没有人规定红色和蓝色是什么颜色。具体来说,在许多情况下,常规(非亮)黄色是棕色。
如果你想在Ubuntu中设置不同的颜色,你应该能够在终端模拟器的设置中配置它。GNOME终端,它看起来像你正在使用的,应该允许这样做。关于ANSI终端代码的Wikipedia页面包含了关于哪些实际颜色被Map到不同颜色编号的信息。

t3irkdon

t3irkdon3#

多亏了romainl,我让它按照我想要的方式工作。在VIM中,当我输入“:colorscheme”时,它输出“default”,.... a a然而当我输入“:colorscheme default”时,它实际上改变了颜色,使其几乎与PuTTy中的颜色相匹配。然后,我只需要对我的~/.vimrc和~/.vim/syntax/python.vim文件进行一些调整。下面是这些调整...
在我的.vimrc文件中,我必须移动:

syntax on
filetype detect
filetype plugin on

从我的.vimrc文件的底部到几乎最顶部,因为它被一些东西覆盖了。然后,我在上面添加了一行(:colorscheme default(强制它切换到“真实的的”default”)),并在下面添加了5行。现在我的.vimrc包含(在许多其他自定义中):

colorscheme default

syntax on
filetype detect
filetype plugin on

hi Comment ctermbg=black ctermfg=green cterm=None
hi String ctermbg=black ctermfg=1 cterm=None
hi Statement ctermbg=black ctermfg=yellow cterm=None
hi StatusLine ctermbg=0 ctermfg=7
hi StatusLineNC ctermbg=252 ctermfg=238 guibg=#d0d0d0 guifg=#444444

此外,我的python语法文件(位于~/.vim/syntax/python.vim)需要进行以下调整:

hi Statement ctermbg=black ctermfg=yellow cterm=bold
hi pythonStatement ctermbg=black ctermfg=yellow cterm=None
hi Conditional ctermbg=black ctermfg=yellow cterm=None
hi pythonComment ctermbg=black ctermfg=green cterm=None
hi pythonString ctermfg=1 cterm=None
hi pythonQuotes ctermfg=blue cterm=bold

再次,特别感谢上面的回答:romainl在他/她的帮助下,以及上面的自定义,我能够让我在Ubuntu 20. 04终端中的VIM颜色与我习惯的PuTTy中的VIM颜色相匹配。
P.S.我的术语类型是xterm

yzckvree

yzckvree4#

我不确定这是否正是您要找的,但是...我遇到了一个问题,我的终端中的配色方案看起来不像https://vimcolorschemes.com上的预览。
添加以下行solved到~/.vimrc为我解决了问题:

if !has('gui_running')
    set t_Co=256
endif
set termguicolors

相关问题