讓我跳進去吧。Vim在標準輸出上打印緩衝區名稱:q
我想要做的只是在退出vim時打印出任何打開的緩衝區的文件路徑。這很有用,因爲我經常在vim腳本中打開其他文件,並使用我編寫的可以通過我的代碼庫搜索特定函數調用的vim腳本。
我想我可以設置一個自動命令,無論是當我打開一個文件或當我離開vim,並使用:ls
的輸出來列出當前打開的所有緩衝區。我遇到的問題是我無法獲得任何輸出以顯示在終端中。我在我的功能嘗試了各種組合:!echo
,但無濟於事。我一直在試圖像下面這樣在我的.vimrc
function! PrintFileName()
:!echo "hello"
:exec "!echo world"
"... etc
endfunction
au BufRead * call PrintFileName()
兩個:!echo foobar
和我:call PrintFileName()
工作,如果我在命令行中做到這一點。我也想我可能不得不使用某種形式的沉默/重繪!所以我不必打進去繼續。
真的,這裏的主要問題是,我看不到從我的函數內部獲取輸出到標準輸出的方式,並且被自動命令調用。
感謝您的任何幫助。
我不能真的想到一個很好的方法來做到這一點,除了用包裝腳本等相當醜陋的黑客...除了Vim處理標準輸出,你也有Vim的終端繪圖代碼干擾。你想要的是在代碼完成清理之後'echo' * – Carpetsmoker
最簡單的方法是將該緩衝區列表保存到一個文件中,然後在你的vim會話終止後'cat'該文件。但我必須承認,我沒有看到任何有用的應用程序。爲什麼要讓vim在緩衝區列表上做些什麼? –
@LucHermitte我經常需要在我剛剛編輯的文件上運行實用程序,並且在終端中有一個列表將非常好。當然,我可以在vim中做到這一點,但是我真的在編輯這些文件,並且在那裏運行並不有用。 – mrfred