*nvim-tree.lua* A file explorer written in lua Minimum version of neovim: 0.4.0 Author: Yazdani Kiyan ============================================================================== INTRODUCTION *nvim-tree-introduction* ============================================================================== QUICK START *nvim-tree-quickstart* open the tree with :LuaTreeToggle > nnoremap :LuaTreeToggle lua require 'tree'.toggle() < ============================================================================== COMMANDS *nvim-tree-commands* |:LuaTreeToggle| *:LuaTreeToggle* open or close the tree |:LuaTreeRefresh| *:LuaTreeRefresh* refresh the tree |:LuaTreeFindFile| *:LuaTreeFindFile* The command will change the cursor in the tree for the current bufname. It will also open the leafs of the tree leading to the file in the buffer (if you opened a file with something else than the LuaTree, like `fzf`) ============================================================================== OPTIONS *nvim-tree-options* |g:lua_tree_size| *g:lua_tree_size* width of the window (default to 30) |g:lua_tree_side| *g:lua_tree_side* where the window will open (default to 'left') - 'left' or 'right' |g:lua_tree_ignore| *g:lua_tree_ignore* An array of strings that the tree won't display. Each pattern is passed into the 'ls' function as `--ignore=PATTERN` > example: let g:lua_tree_ignore = [ '.git', 'node_modules' ] |g:lua_tree_show_icons| *g:lua_tree_show_icons* Dictionnary, if your terminal or font doesn't support certain unicode character, the tree UI might be messed up. The following configuration can disable icons per type: > let g:lua_tree_show_icons = { \ 'git': 1, \ 'folders': 1, \ 'icons': 1 \} Can be one of `1` and `0` for each key. By default the tree will try to render the icons. The `icons` key can only work if `vim-devicons` is installed and in your |runtimepath| |g:lua_tree_follow| *g:lua_tree_follow* Can be `0` or `1`. When `1`, will bind |:LuaTreeFindFile| to |BufEnter| Default is 0 |g:lua_tree_auto_open| *g:lua_tree_auto_open* Can be `0` or `1`. When `1`, will bind |VimEnter| to automatically open tree on startup if no files are specified. Default is 0 |g:lua_tree_auto_close| *g:lua_tree_auto_close* Can be `0` or `1`. When `1`, will bind |BufEnter| to automatically close the tree if it's the last window. Default is 0 ============================================================================== INFORMATIONS *nvim-tree-info* |KeyBindings| *nvim-tree-keybindings* - move around like in any vim buffer - '' on '..' will cd in the above directory - typing '.' 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, '' will open the directory - otherwise it will open the file in the buffer near the tree - if the file is a symlink, '' will follow the symlink - type '' will open the file in a vertical split - type '' will open the file in a horizontal split - type '' will open the file in a new tab - Double left click acts like '' - Double right click acts like '.' |g:lua_tree_bindings| *g:lua_tree_bindings* you can change default keybindings by defining this variable. default keybindings will be applied to undefined keys. > let g:lua_tree_bindings = { \ edit: '', \ edit_vsplit: '', \ edit_split: '', \ edit_tab: '', \ cd: '.', \ create: 'a', \ remove: 'd', \ rename: 'r' \ } |Features| *nvim-tree-features* File icons with vim-devicons. Uses other type of icons so a good font support is recommended. If the tree renders weird glyphs, install correct fonts or try to change your terminal. Syntax highlighting uses g:terminal_color_ from colorschemes, fallbacks to ugly colors otherwise. Git integration tells when a file is: - ✗ unstaged or folder is dirty - ✓ staged - ★ new file - ✓✗ partially staged - ✓★ new file staged - ═ merging - ➜ renamed Mouse support defined in |KeyBindings| ============================================================================== HIGHLIGHT GROUPS *nvim-tree-highlight* |lua_tree_highlight| *lua_tree_highlight* All the following highlight groups can be configured by hand. It is not advised to colorize the background of these groups. Example (in your `init.vim`): > highlight LuaTreeSymlink guifg=blue gui=bold,underline < You should have 'termguicolors' enabled, otherwise, colors will not be applied. LuaTreeSymlink LuaTreeFolderName LuaTreeFolderIcon LuaTreeExecFile LuaTreeSpecialFile LuaTreeImageFile LuaTreeMarkdownFile LuaTreeLicenseIcon LuaTreeYamlIcon LuaTreeTomlIcon LuaTreeGitignoreIcon LuaTreeJsonIcon LuaTreeLuaIcon LuaTreePythonIcon LuaTreeShellIcon LuaTreeJavascriptIcon LuaTreeCIcon LuaTreeReactIcon LuaTreeHtmlIcon LuaTreeRustIcon LuaTreeVimIcon LuaTreeTypescriptIcon LuaTreeGitDirty LuaTreeGitStaged LuaTreeGitMerge LuaTreeGitRenamed LuaTreeGitNew There are also links to normal bindings to style the tree itself. Normal EndOfBuffer CursorLine VertSplit CursorColumn vim:tw=78:ts=8:noet:ft=help:norl: