2012-06-07 35 views
1

從命令行中,如果您鍵入「vim some_directory /」,vim將打開一種文件瀏覽器,您可以通過向上或向下移動「 j「和」k「,然後用」enter「選擇,直到打開並打開一個文件。Vim(腳本)L文件瀏覽器/超級鏈接

我想寫一個vim的vim函數,它在你的子目錄中生成一個(現在的)任意文件名列表,並以上面提到的那種類似於文件瀏覽器的形式列出它們,在那裏你可以導航按「j」或「k」並通過按「enter」選擇它(打開它,以編輯)到列表中的文件。

VimL可以嗎?如果是這樣,怎麼樣?請記住,我對實現文件瀏覽器功能很感興趣,我已經想出了獲取文件名的列表。

在此先感謝!

+0

這聽起來很像[NERDtree](http://www.vim.org/scripts/script.php?script_id=1658)。你看過嗎? –

+0

是的,它非常相似,但是NERDtree並不一定提供我所需要的相同功能。我想讓我的插件顯示就像NERDtree一樣!我正在瀏覽nerdtree源代碼,看看我是否可以弄清楚。 – nct25

+0

好吧,看看NERDtree代碼讓我覺得這比我真正感興趣的進入lol要複雜得多。一個小的切線然後...與vimscript如何打開一個新的窗口,在NERDtree的方式呢? – nct25

回答

1

在Vim中,這是通過臨時緩衝區實現的;即用:new打開一個新的緩衝區,用Vimscript(:normal i...:call setline(1, "foo"))和:setlocal nomodifiable填充它。

通常情況下,也應用了以下設置:

:setlocal buftype=nofile bufhidden=wipe nobuflisted noswapfile 

要實施的行動,用:map <buffer>定義特殊映射,只是對於臨時緩衝區,如

:nnoremap <buffer> <CR> :echo "you selected: " getline('.') 

瞧!