A file explorer tree for neovim written in lua
Go to file
2020-02-20 21:45:04 +01:00
.github better git format and parsing 2020-02-19 16:46:25 +01:00
doc start adding docs 2020-02-20 21:45:04 +01:00
lua add some options for the user and info in the readme 2020-02-20 21:16:13 +01:00
plugin add some options for the user and info in the readme 2020-02-20 21:16:13 +01:00
LICENSE init plugin 2020-02-04 19:59:14 +01:00
README.md add mice info 2020-02-20 21:28:23 +01:00

A File Explorer For Neovim Written In Lua

Notice

  • I am working on this plugin to learn lua, neovim's api and create a file explorer with features i need.
  • This plugin does not work on windows.

Install

Install with vim-plug:

Plug 'kyazdani42/nvim-tree.lua'

Setup

let g:lua_tree_side = 'right' | 'left'  "left by default
let g:lua_tree_size = 40  "30 by default

nnoremap <C-n> :LuaTreeToggle<CR>
nnoremap <leader>n :LuaTreeRefresh<CR>

KeyBindings

  • move around like in any vim buffer
  • <CR> on .. will cd in the above directory
  • <C-[> will cd in the directory under the cursor
  • type a to add a file
  • type r to rename a file
  • type d to delete a file (will prompt for confirmation)
  • if the file is a directory, <CR> will open the directory
  • otherwise it will open the file in the buffer near the tree
  • if the file is a symlink, <CR> will follow the symlink
  • type <C-v> will open the file in a vertical split
  • type <C-x> will open the file in a horizontal split
  • Double left click acts like <CR>
  • Double right click acts like <C-[>

Features

  • Open file in current buffer or in split with FzF like bindings (CR, C-v, C-x)
  • File icons with vim-devicons
  • Syntax highlighting (exa like)
  • Change directory with C-[
  • Add / Rename / delete files
  • Git integration
  • Mouse support

Screenshot

alt text

TODO

  • add docs
  • fix coloring when no dev icons
  • cd command to move faster accross the fs if needed
  • quickly find file in the directory structure
  • use libuv functions instead of touch and mkdir in create_file() and allow file creation with path like foo/bar/baz
  • tree should always stay on the left no matter what