2014-09-20 154 views
0

我正在製作一個插件,其中的想法是,如果緩衝區爲空,那麼您將進入插入模式,否則您將保持正常模式。Vim檢測當前緩衝區是什麼類型的緩衝區

當然這很好,但你遇到了一些問題,如果你只是打開Vim,你在默認的空緩衝區,你不想在緩衝區做任何事情?你必須先進入正常模式,然後執行你的魔法。這是不可取的,因爲它需要更多的工作。

所以我的問題是,如何檢測當前緩衝區是否是真實文件,無論它是否存在於文件系統中。

例如,我想檢測緩衝區是否是JS文件,無論是新的還是預先存在的。或者,如果緩衝區是NERDTree緩衝區或插件緩衝區,那麼這種東西。

謝謝。任何幫助表示讚賞。 :)

P.S:對於那些有興趣,這是插件:https://github.com/Greduan/vim-empty-insert

回答

1
if expand('%:p') != '' 
    " do stuff 
endif 

:h %:p:h expand()

順便說一句,對不起,如果這聽起來很粗魯,但我猜許多Vim的長期用戶將自動按一個/當他們進入一個緩衝層i,不假思索它是否存在的驅動器或不。所以你可能要考慮保持功能更一致。

+0

謝謝!這涵蓋了文件系統問題。謝謝! :)是的,你是正確的,人們可能已經習慣了在新文件中輸入插入模式。但有人可能想要這個,我想我可能也是。你永遠不知道,也許有一天它就是你想要的。 :) P.S .:我編輯你的'==#'並將它變成一個'!=',它的工作方式符合我的要求。 :) – greduan 2014-09-21 00:23:31