我試圖讓Vim在新文件寫入時運行命令'CommandTFlush'。對於那些不使用Command-T插件的用戶,「CommandTFlush」命令用於重建當前目錄中的文件索引。當寫入新文件時運行CommandTFlush命令
我想要做的是將文件寫入磁盤後運行命令,以便CommandTFlush將找到該文件並將其添加到它的索引。
我試着寫一個函數自己,但要麼不火也太快火災(該文件被寫入之前,整個的一點是添加的文件索引):
au! BufWritePre * ks| call NewFilesUpdatesCommandT()
function! NewFilesUpdatesCommandT()
let [email protected]%
if !filereadable(filename)
CommandTFlush
endif
endfunction
我懷疑它可以通過在BufWritePre中設置一些布爾型var(isTheFileNew)來解決,然後在BufWritePost中執行CommandTFlush命令(如果該文件剛剛創建),但我無法弄清楚語法。另一種解決方案可以設置/取消BufWritePre回調中的BufWritePre回調,如果可能的話...
有人能幫我一下嗎? ;)
在你的自動命令開始時有什麼'ks |'在做什麼?無法在vim幫助中找到它。 – ZyX 2010-08-15 10:01:10
找到了。爲什麼你要標記你的位置,如果你的功能不移動光標? – ZyX 2010-08-15 10:05:37
真的不知道。這只是一個糟糕的複製/粘貼作業,基於我在#[email protected]獲得的一些指針。還沒有弄清楚如何從幫助文件中獲得幫助。我在Vim的第三天在這裏;) – peterfarsinsen 2010-08-15 10:08:25