1

在命令行中,如果你输入 "vim some_directory/",vim 会打开一个文件浏览器,你可以通过使用 "j" 和 "k" 向上或向下移动来浏览你的目录结构,然后使用 "enter" 选择" 直到你找到并打开一个文件。

我想在 VimL 中为 vim 编写一个函数,它会在您的子目录中生成一个(目前)任意文件名列表,并以上述文件浏览器的形式列出它们,您可以在其中导航到一个文件通过按“j”或“k”并通过按“enter”选择它(打开它,进行编辑)来选择列表。

VimL 有可能吗?如果是这样,怎么做?请记住,我对实现文件浏览器功能感兴趣,我已经想出获取文件名列表。

提前致谢!

4

1 回答 1

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('.')

瞧!

于 2012-11-07T15:20:27.167 回答