#4921·fzf

`:FZF!` no longer follows dynamic `g:terminal_ansi_colors` changes

Author: ccjmneCreated Sep 17, 2026Updated Sep 17, 2026

My terminal, and Vim, change colour schemes between dark/light at runtime; these changes get propagated to Vim's embedded terminals via:

const ansi = {
    dark:  ['#45475a', '#f38ba8', '#a6e3a1', '#f9e2af', '#89b4fa', '#cba6f7', '#94e2d5', '#a6adc8', '#585b70', '#f37799', '#89d88b', '#ebd391', '#74a8fc', '#c892ee', '#6bd7ca', '#bac2de'],
    light: ['#5c5f77', '#d20f39', '#40a02b', '#df8e1d', '#1e66f5', '#8839ef', '#179299', '#acb0be', '#6c6f85', '#de293e', '#49af3d', '#eea02d', '#456eff', '#9c48fc', '#2d9fa8', '#bcc0cc'] }
au ColorScheme * g:terminal_ansi_colors = ansi[&background]

While :FZF! is already open:

  • fzf 0.67.0: colours update with the terminal theme
  • fzf 0.74.4: colours remain from the previous theme
  • :FZF (w/o bang) still behaves correctly

The regression appears caused by the new nested terminal path:

terminal -> vim terminal buffer -> fzf

Since fzf 0.74.4, :FZF! in Vim runs in a terminal buffer inside a temporary tab, whereas it used to use the outer terminal directly.

Could the Vim integration either propagate runtime theme changes to the fzf terminal or provide a supported option to retain the old blocking fullscreen behaviour?

Environment:

fzf 0.74.4
vim 9.2 with +terminal and +termguicolors

Ref: #4897