在命令行中,如果键入“vim some_directory /”,vim将打开一种文件浏览器,您可以通过向上或向下移动“j”和“k”来浏览目录结构,然后选择用“输入”直到你进入并打开文件。
我想在VimL中为vim编写一个函数,它在子目录中生成一个(现在)任意文件名列表,并以上面提到的那种类似浏览器的形式列出它们,你可以在其中导航到按“j”或“k”列表中的文件,然后按“输入”将其选中(打开,编辑)。
VimL有可能吗?如果是这样,怎么样?请记住,我对实现文件浏览器功能感兴趣,我已经想出了一个文件名列表。
提前致谢!
答案 0 :(得分:1)
在Vim中,这是由 scratch buffers 实现的;即,您使用: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('.')
瞧!