vim 模式中使用替换功能时,工作区会偏移

ob 的 vim 模式用起来很爽,但似乎有点 bug。

在 vim 模式中,输入 :%s/查找字符/替换字符/gc 就可以查找替换全文的内容,但 ob 的 vim 模式在使用这个替换功能时,会导致工作区偏移,具体如下图。

这是正常状态下的:

这是执行替换命令后的界面:

中间的工作区被整体左移了。

1 个赞

我也有一樣的情形

1 个赞

暂时可以加这一个CSS片段来解决:

.cm-vim-panel>div>div>span{
    display: flex;
    flex-direction: row;
}
.cm-vim-panel input{
    width: unset !important;
    flex: 1;
}

问题主要在底部那个输入栏,html结构类似:

<span>
     前缀label
     <input style="width:100%"/>
</span>

当使用vim的逐个替换时,这个前缀label会变得很长,而input的宽度被设置成了100%父元素宽度。这导致label和input加起来超过了整个父元素的宽度。
这进一步导致计算整个编辑器位置的时候,编辑器位置相对其父元素有一个向左的偏移。

上面的CSS改为flex布局,让input的宽度只填充剩余宽度,不会超出其父元素。

3 个赞

謝謝 the_tree 大佬
我本來以為這偏移無解,想不到能解決:+1::+1::+1:
Vim黨大喜:grin::grin::grin:
感謝

1 个赞

感谢大佬!:heart::heart::heart: