我的设置包括vim、iTerm2、tmux和solzed dark配色方案。我将深色的日光化调色板加载到iTerm2中(修改ansi颜色),并且不使用自述文件中提到的退化日光化配色方案(即let g:solarized_termcolors=256
)作为使用调色板的替代方案。一切看起来都很好。
但是,我经常和同事远程配对。人们从iTerm2的其他实例(有时是Terminal) ssh到我的机器。应用程序和创建一个新的tmux会话与我的tmux会话作为他们的基础/父会话。在iTerm2的情况下,它们的设置不包括加载日光化调色板(其中一个完全使用另一个调色板)和设置let g:solarized_termcolors=256
以使用降级的日光化配色方案。如果这是他们想要的,那很好,但是当他们通过ssh/tmux连接到我时,颜色丢失了,而且经常扭曲到难以辨认的地步。
除了让每个人都使用相同的设置外,是否有任何设置组合来解决这个问题?现在建议我使用退化的配色方案,而不是加载solized调色板,这样ansi颜色就不会被修改。这确实有效,但留给我的是退化的单色方案。因为我更喜欢非退化的单色方案,所以我不喜欢采用这种方法。
当在终端中使用时,Vim的solsoled配色方案默认为16种颜色,并且取决于终端模拟器的调色板,因为它使用"Red", "Yellow"…作为ctermfg
和朋友的值。
如果你想让所有地方都有相同的颜色,你显然需要在所有地方都有相同的调色板,因为你的"红色"可能不是别人的"红色"。
我不知道作者写的时候抽了什么烟,但是let g:solarized_termcolors=256
与默认值相比根本没有"降级"。默认值仅使用16种颜色的调色板(取决于终端的调色板,正如我们已经看到的那样),而此选项使其使用与终端无关的256种颜色的调色板。因为配色方案不再依赖于终端仿真器的调色板,颜色实际上"保证"在您的终端仿真器和其他人的终端仿真器上看起来"好"one_answers"相同"。
问题是您的终端仿真器和他们的终端仿真器必须支持256色。今天所有的终端都有,但默认设置通常为16种颜色。一般来说,将256色支持"打开"是很容易的。
但是这个选项是Vim-only。你的提示符、某些命令的输出或者tmux
的TUI 的颜色可能对你的同事来说仍然是"off"的。
自定义设置的能力当然是Vim体验的一个重要方面。但是定制是有代价的。你习惯了很多小事,但面对一个截然不同的环境,你可能会迷路。或者,正如您所发生的那样,您的设置被定制到您的同事无法使用的程度。
结对编程只能工作,如果你和你的结对能够在设置上达成妥协。显然,这种设置可能不完全是你的或他的,但你必须找到一个每个人都同意的结对工作的中间地带。因为您和您的伴侣可能使用不同版本的tmux/vim、不同的shell或不同的终端模拟器,所以最安全的做法是尽可能使用最基本的设置。不幸的是,solalized太脆弱了,远远不够"基本"。