gpt4 book ai didi

vim - 在 vsplit 中打开可编辑文件但在 vimscript 中保持原始位置

转载 作者:行者123 更新时间:2023-12-04 15:14:20 27 4
gpt4 key购买 nike

我正在尝试编写一个插件来制作 system调用它根据当前缓冲区生成一个文件,然后在 vsplit 中打开生成的文件,或者如果已经打开,它会在源文件更改时更新它。

我已经得到了它生成文件并打开/更新拆分的代码,但问题是当它第一次打开拆分时焦点转到拆分,当它更新源文件上的光标位置时跳转到页面顶部。

这是我正在尝试的,任何帮助将不胜感激。

execute 'keepjumps silent ! ' . s:cmd . ' ' . s:src_file . ' > ' . s:dst_file

if exists("s:outputbufnr") && bufexists(s:outputbufnr)
execute 'keepjumps ' . bufwinnr(s:outputbufnr)
else
" execute "keepjumps vnew " s:dst_file
execute "keepjumps rightbelow vertical new " . s:dst_file
let s:outputbufnr=bufnr(s:dst_file)
endif

从我虽然 keepjumps应该将光标返回到其先前的位置,但是,情况似乎并非如此。

最佳答案

这听起来像是 vim 中预览窗口的完美使用。当您在预览窗口 ( :pedit /path/to/file ) 中打开文件时,焦点不会从当前窗口移开。您还可以在需要时直接跳转到预览窗口 wincmd P如果你需要。您还可以使用 :pclose 从任何地方关闭预览窗口。 .如果文件已更改并且您想查看更新,您可以仅 :pedit /path/to/file再次获取更新。

另一个小好处,即使您在预览窗口中有一个文件,您仍然可以使用普通的 :q 退出 vim。而不是 :qa .

关于vim - 在 vsplit 中打开可编辑文件但在 vimscript 中保持原始位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10433560/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com