答案1
图片似乎显示了这些功能在职的:
- 颜色(也许)
- 光标寻址 (某物将光标移动到正确的位置)
- 选项卡(未知:如果终端声称支持硬件选项卡但根本不支持,则第二行将从左边距开始)
但第二行就是问题所在。 Vim 可以尝试将光标从大括号处直接向下移动(使用换行符),然后得到回车/换行符。这可以解释这个空间,vim 做了这种类型的优化screen.c
:
else if (plan == PLAN_NL)
{
if (noinvcurs)
screen_stop_highlight();
while (screen_cur_row < row)
{
out_char('\n');
++screen_cur_row;
}
screen_cur_col = 0;
}
在你的stty
设置,那就是onlcr
:
onlcr (-onlcr)
Map (do not map) NL to CR-NL on output.
这似乎是正常关闭的。您的其中一项stty
设置可能会混淆 vim(或屏幕),因此结果如图所示。
例如,在快速检查中我这样做了(使用文字制表符)
$ stty ocrnl
$ cat >foo
$ cat >foo <<EOF
if(a) {
/*then b */
}
EOF
$ vim foo
并看到这个(证明 vim 可能会被设置混淆ocrnl
):
if(a) {
/*then b */
}
但是然后(退出 vim)并且
$ stty -ocrnl
$ vim foo
节目
if(a) {
/*then b */
}
就其价值而言,vi-like-emacs 在这种情况下做了正确的事情。