Note: Active development has moved to https://code.sitosis.com/rudism/telescope-vinegar.nvim
A modified version of Telescope.nvim's built-in file browser with behavior inspired by vim-vinegar and vim-filebeagle.
File browser opens in the current buffer's directory in normal mode by default.
-
goes up a level to the parent directory/
enters insert mode to search files+
prompts for a new file name to createh
toggles whether hidden files are displayed or not
Install with packer (or similar equivalent package manager):
use 'rudism/telescope-vinegar.nvim'
Bind this to a key (I recommend -
) and execute it to open the file browser in the current file's directory:
require('telescope').extensions.vinegar.file_browser()
The following config maps -
to the file browser, disables netrw
, and automatically opens the file browser when you launch nvim with a directory as the file argument (uses plenary.nvim).
-- add keybinding
vim.api.nvim_set_keymap('n', '-',
'<cmd>lua require("telescope").extensions.vinegar.file_browser()<cr>',
{noremap = true})
-- disable netrw
vim.g['loaded_netrw'] = 1
-- create function to open file browser when opening a directory
_G.browse_if_dir = function()
if require('plenary.path'):new(vim.fn.expand('%:p')):is_dir() then
local buf = vim.api.nvim_get_current_buf()
vim.api.nvim_buf_set_option(buf, 'buftype', 'nofile')
vim.api.nvim_buf_set_option(buf, 'buflisted', false)
vim.api.nvim_buf_set_option(buf, 'swapfile', false)
vim.api.nvim_buf_set_option(buf, 'bufhidden', 'hide')
require('telescope').extensions.vinegar.file_browser()
end
end
-- autocommand to run the above function when launching
vim.api.nvim_command('au VimEnter * call v:lua.browse_if_dir()')