gpt4 book ai didi

function - 写入新文件时运行 CommandTFlush 命令

转载 作者:行者123 更新时间:2023-12-02 20:07:29 28 4
gpt4 key购买 nike

我试图让 Vim 在写入新文件时运行命令“CommandTFlush”。对于那些不使用 Command-T 插件的人,“CommandTFlush”命令用于重建当前目录中的文件索引。

我想要做的是在文件写入磁盘后运行命令,以便 CommandTFlush 找到该文件并将其添加到其索引中。

我尝试自己编写一个函数,但它要么不触发,要么触发得太快(在文件写入之前,重点是将文件添加到索引):

au! BufWritePre * ks| call NewFilesUpdatesCommandT()
function! NewFilesUpdatesCommandT()
let filename=@%
if !filereadable(filename)
CommandTFlush
endif
endfunction

我怀疑可以通过在 BufWritePre 中设置一些 bool 变量(isTheFileNew)来解决这个问题,然后如果文件刚刚创建,则在 BufWritePost 中执行 CommandTFlush 命令,但我无法弄清楚语法。另一个解决方案可能是从 BufWritePre 回调中设置/取消设置 BufWritePost 回调(如果可能的话)...

有人可以帮我吗? ;)

最佳答案

这是我的解决方案。每当写入文件以及 Vim 窗口获得焦点时,它都会触发 CommandTFlush。当您在 vim 之外创建文件时,这非常有用 - 例如通过在版本控制系统中的分支之间切换。重新进入 Vim 后,新文件将立即在 CommandT 中可用。

augroup CommandTExtension
autocmd!
autocmd FocusGained * CommandTFlush
autocmd BufWritePost * CommandTFlush
augroup END

关于function - 写入新文件时运行 CommandTFlush 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3486747/

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