我使用以下命令设置状态行:
set laststatus=2
set statusline=%F\ %r\ [Branch\ %{system(\"echo\ -n\ OK\")}]\ %=[Hex=\%02.2B]\ [Column\ %c]\ [Line\ %l/%L]
hi StatusLine ctermbg=black ctermfg=gray
当我滚动鼠标滚轮时,在窗口中打印符号:^[OA
和^[OB
,并且可以清除它们,例如按PgUp / -Down。
我发现状态行的system(...)
部分会导致行为,但我不确定如何修复它。
答案 0 :(得分:1)
是的,问题出在system
。
前缀为|:silent | shell不会被设置为 煮熟的模式。这用于执行命令 不需要用户输入。它避免了流浪人物的表现 在屏幕上需要| CTRL-L |去除。 >
:silent let f = system('ls *.vim')
因此,您可以通过创建使用system
silent
的函数来避免这种情况
set laststatus=2
function! EchoOk()
silent let es = system("echo -n OK")
return es
endfunction
set statusline=%F\ %r\ [Branch\ %{EchoOk()}]\ %=[Hex=\%02.2B]\ [Column\ %c]\ [Line\ %l/%L]
hi StatusLine ctermbg=black ctermfg=gray