我尝试在网上应用各种配色方案.无论我选择何种方案,背景都保持白色,即使应用方案的屏幕截图显示背景应该是彩色的.
在某些方案中,某些背景会改变颜色,但包含文本的线条的空间右侧仍为白色.
我在Mac上使用Vim 7.2.我刚开始搞乱非gui应用程序,所以一切都应该是开箱即用的.
终端窗口的整体设置是否与它有关?
运行macvim时,一切看起来都不错.它只有从终端启动vim时才看起来很奇怪..
cpt*_*oop 43
我在.vimrc中有这个,它在使用PuTTY时解决了这个问题.
set t_Co=256
set background=dark
colorscheme mustang
highlight Normal ctermbg=NONE
highlight nonText ctermbg=NONE
Run Code Online (Sandbox Code Playgroud)
在.vimrc中的ctermbg设置之前加载colorscheme很重要,因为它们需要覆盖colorscheme设置的相同设置.这也意味着你不能在Vim运行时切换colorscheme并期望它工作.
Dav*_*idG 14
在linux中我有export TERM=xterm-256color
我的.bashrc
.这导致vim看起来像这样(设置后set t_Co=256
):
当我从我的线上删除该线.bashrc
并打开一个新的终端(exec bash
没有这样做)这就是我得到的:
终端通常限制为256种颜色,而GUI仅受桌面环境颜色深度的限制,通常为2 ^ 32.
因此即使周围有很多vim配色方案,它们通常也是为GUI而设计的,并不适用于终端版本.
如果你看一下vim.org上的配色方案,通常会提到GUI或256.所以你必须根据上下文选择使用哪个.
要将GUI方案转换为终端,您可以使用以下插件: CSApprox.
您还可以根据上下文使用不同的colorscheme,在.vimrc中添加以下内容:
if has("gui_running")
colorscheme [using any color you want]
else
colorscheme [using 256 colors]
endif
Run Code Online (Sandbox Code Playgroud)
我认为问题可能是colorscheme改变默认颜色的方式.我看了一些仅仅通过以下方式设置默认值的colorschemes:
set background=light
Run Code Online (Sandbox Code Playgroud)
要么
set background=dark
Run Code Online (Sandbox Code Playgroud)
不确定那些有什么限制.我不认为那些在终端工作.
在任何情况下,您都应该能够使用"正常"突出显示在终端中手动设置背景.在colorscheme文件中的大多数'hi'命令之前将其插入一个位置,它应该提供它们将使用的默认值.例如:
hi Normal ctermbg=White ctermfg=Black guifg=Black guibg=White
Run Code Online (Sandbox Code Playgroud)
将ctermfg(彩色终端前景)和ctermbg(彩色终端背景)更改为您想要的任何颜色(或者您希望在colorscheme中看到但现在看不到的任何颜色).(请记住,如果colorscheme已经有hi Normal的设置,那么这可能不是你的问题.)
对于ctermbg和ctermfg你可以输入颜色名称,但我认为只有相当有限的数字:Black DarkBlue DarkGreen DarkCyan DarkRed DarkMagenta棕色,DarkYellow LightGray,LightGrey,灰色,灰色DarkGray,DarkGrey Blue,LightBlue Green,LightGreen青色,LightCyan Red ,LightRed Magenta,LightMagenta黄色,浅黄色
否则,您应该能够使用0到255之间的数字代替颜色名称.或者这个脚本给出了粗略的想法,让你看看如何设置使用更多的颜色名称: 带有颜色设置的Vim脚本
此外,还有许多脚本可以帮助您使用或转换为gui编写的colorschemes,以便与cterm一起使用.例如,:
Does the overall settings for the terminal window have something to do with it?
Run Code Online (Sandbox Code Playgroud)
也许,但我很确定正确编写的Vim colorscheme会覆盖你所做的任何终端设置.至少他们在Windows和Ubuntu上为我做...
小智 5
您需要添加set termguicolors
到 ~/.vimrc
我测试了t_Co=256
其他选项,但没有一个有效,仅set termguicolors
之后你可以使用命令set bg=light
或set bg=dark
查看女巫一个看起来更好(一些 vim 配色方案接受这两个选项)。
以下是与 termguicolors 兼容的终端列表:https://gist.github.com/XVilka/8346728#now-supporting-true-color
终端窗口的整体设置是否与此有关?
是的,终端参数会覆盖 vim 参数(至少在 OSX 和 iTerm 中)。例如,我在 /Users/[用户名]/.bashrc 中有以下脚本
setBackground() {
osascript -e "tell application \"iTerm\"
set current_terminal to (current terminal)
tell current_terminal
set current_session to (current session)
tell current_session
set background color to $1
end tell
end tell
end tell"
}
vim() {
(setBackground "{65025,65025,65025}" &)
(exec vim $*)
}
Run Code Online (Sandbox Code Playgroud)
上面重新映射终端 vim 命令以在执行 vim 之前执行背景颜色更改。背景颜色函数是applescript(我从某处复制了脚本......)。它适用于 iTerm。我相信您可以调整它以与终端一起使用(苹果产品+苹果脚本 - >应该工作)。
br,
尤哈
归档时间: |
|
查看次数: |
61426 次 |
最近记录: |