EasyMotion 不会覆盖文本,我认为这是不可能的。它的作用在以下函数(源代码)中定义:
function! EasyMotion#helper#VarReset(var, ...) "{{{
if ! exists('s:var_reset')
let s:var_reset = {}
endif
if a:0 == 0 && has_key(s:var_reset, a:var)
" Reset var to original value
" setbufvar( or bufname): '' or '%' can be used for the current buffer
call setbufvar('%', a:var, s:var_reset[a:var])
elseif a:0 == 1
" Save original value and set new var value
let new_value = a:0 == 1 ? a:1 : ''
" Store original value
let s:var_reset[a:var] = getbufvar("", a:var)
" Set new var value
call setbufvar('%', a:var, new_value)
endif
endfunction "}}}
因此它会保存每个替换的字符并在之后恢复它们。我没有看过 indentLine 但它可能会做智能列表字符,因为 indentchar 下从来没有文本。
无论如何,我并不是一般的插件或 vim 专家。我只是写这个答案,因为我认为有更简单的方法来实现你想要的。例如,您可以使用某种颜色突出显示边界线,或更改活动分割的背景。还有一个用于调暗非活动拆分的插件:https ://github.com/blueyed/vim-diminactive