nvim-tree.lua/doc/nvim-tree-lua.txt
kiyan 07da8a7242 feat/fix: add rename cmd, fix rename error
- add <C-r> binding to omit the filename on rename (option is
  full_rename).
- call `silent! write!` on rename to avoid the `overwrite existing file`
  error when saving the buffer.
2021-02-22 20:54:53 +01:00

350 lines
10 KiB
Plaintext

*nvim-tree.lua* A file explorer written in lua
Minimum version of neovim: 0.4.0
Author: Yazdani Kiyan <yazdani.kiyan@protonmail.com>
==============================================================================
INTRODUCTION *nvim-tree-introduction*
This file explorer doesn't work on windows and requires neovim `nightly`
==============================================================================
QUICK START *nvim-tree-quickstart*
open the tree with :NvimTreeToggle
>
nnoremap <C-n> :NvimTreeToggle<CR>
lua require 'nvim-tree'.toggle()
<
==============================================================================
COMMANDS *nvim-tree-commands*
|:NvimTreeOpen| *:NvimTreeOpen*
opens the tree
|:NvimTreeClose| *:NvimTreeClose*
closes the tree
|:NvimTreeToggle| *:NvimTreeToggle*
open or close the tree
|:NvimTreeRefresh| *:NvimTreeRefresh*
refresh the tree
|:NvimTreeFindFile| *:NvimTreeFindFile*
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 NvimTree, like `fzf` or
`:split`)
|:NvimTreeClipboard| *:NvimTreeClipboard*
Print clipboard content for both cut and copy
==============================================================================
OPTIONS *nvim-tree-options*
|g:nvim_tree_width| *g:nvim_tree_width*
width of the window (default to 30)
|g:nvim_tree_side| *g:nvim_tree_side*
where the window will open (default to 'left')
- 'left' or 'right'
|g:nvim_tree_ignore| *g:nvim_tree_ignore*
An array of strings that the tree won't load and display.
useful to hide large data/cache folders.
>
example: let g:nvim_tree_ignore = [ '.git', 'node_modules' ]
|g:nvim_tree_show_icons| *g:nvim_tree_show_icons*
Dictionary, 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:nvim_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 `nvim-web-devicons`
is installed and in your |runtimepath|
(https://github.com/kyazdani42/nvim-web-devicons)
|g:nvim_tree_icons| *g:nvim_tree_icons*
You can set icons for:
- The git status.
- The default icon that shows when no icon is found for a file
or if you are not using icons.
- Symlinks. If an icon is not provided, the `default` icon is used.
>
let g:nvim_tree_icons = {
\ 'default': '',
\ 'symlink': '',
\ 'git': {
\ 'unstaged': "✗",
\ 'staged': "✓",
\ 'unmerged': "",
\ 'renamed': "➜",
\ 'untracked': "★"
\ },
\ 'folder': {
\ 'default': "",
\ 'open': "",
\ empty = "",
\ empty_open = "",
\ 'symlink': "",
\ }
\ }
|g:nvim_tree_git_hl| *g:nvim_tree_git_hl*
You can enable file highlight for git attributes by setting this property.
This can be used with or without the icons.
|g:nvim_tree_follow| *g:nvim_tree_follow*
Can be `0` or `1`. When `1`, will update the cursor to update to the correct
location in the tree on |BufEnter|.
Default is 0
|g:nvim_tree_auto_open| *g:nvim_tree_auto_open*
Can be `0` or `1`. When `1`, will open the tree when the package is loaded.
It's not relying on VimEnter anymore.
Default is 0
|g:nvim_tree_auto_close| *g:nvim_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
|g:nvim_tree_auto_ignore_ft| *g:nvim_tree_auto_ignore_ft*
Don't auto open the tree on specific filetypes.
Useful when you don't want to open tree on plugins like 'Startify'
Default is {}
>
example: let g.nvim_tree_auto_ignore_ft = {'startify', 'dashboard'}
|g:nvim_tree_quit_on_open| *g:nvim_tree_quit_on_open*
Can be `0` or `1`. When `1`, will close the tree when a file is opened.
Applies to: `preview`, `edit`, `edit_vsplit`, `edit_split`, `edit_tab`.
Default is 0
|g:nvim_tree_disable_keybindings| *g:nvim_tree_disable_keybindings*
Can be `0` or `1`. When `1`, will disable all keybindings by the plugin.
|g:nvim_tree_bindings| as well as default bindings will not take effect.
Default is 0
|g:nvim_tree_indent_markers| *g:nvim_tree_indent_markers*
Can be `0` or `1`. When `1`, will display indent markers when folders are open
Default is 0
|g:nvim_tree_hide_dotfiles| *g:nvim_tree_hide_dotfiles*
Can be `0` or `1`. When `1`, will hide dotfiles, files or folders which start
with the `.` character.
Default is 0
|g:nvim_tree_root_folder_modifier| *g:nvim_tree_root_folder_modifier*
In what format to show root folder. See `:help filename-modifiers` for
available options.
Default is `:~`
|g:nvim_tree_tab_open| *g:nvim_tree_tab_open*
Can be 0 or 1. When 1, will open the tree when entering a new tab if the
tree was previously open.
Default is 0
|g:nvim_tree_width_allow_resize| *g:nvim_tree_width_allow_resize*
Can be 0 or 1. When 1, it will not resize the tree to it's original width
when opening a new file.
Default is 0
|g:nvim_tree_hijack_netrw| *g:nvim_tree_hijack_netrw*
Can be 0 or 1. When 1, disable netrw buffers when nvim-tree start but keeps
existing netrw functionnalities accross buffers (like `gx`).
1 by default.
|g:nvim_tree_disable_netrw| *g:nvim_tree_disable_netrw*
Can be 0 or 1. When 1, completely disable netrw and all related
functionnalities.
1 by default.
==============================================================================
INFORMATIONS *nvim-tree-info*
|KeyBindings| *nvim-tree-keybindings*
- move around like in any vim buffer
- '<CR>' on '..' will cd in the above directory
- typing '<C-]>' will cd in the directory under the cursor
- typing '<BS>' will close current opened directory or parent
- type 'a' to add a file
- type 'r' to rename a file
- type `<C-r>` to rename a file and omit the filename on input
- type 'x' to add/remove file/directory to cut clipboard
- type 'c' to add/remove file/directory to copy clipboard
- type 'p' to paste from clipboard. Cut clipboard has precedence over copy
(will prompt for confirmation)
- type 'd' to delete a file (will prompt for confirmation)
- type ']c' to go to next git item
- type '[c' to go to prev git item
- type '-' to navigate up one directory
- 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
- '<C-v>' will open the file in a vertical split
- '<C-x>' will open the file in a horizontal split
- '<C-t>' will open the file in a new tab
- '<Tab>' will open the file as a preview (keeps the cursor in the tree)
- 'I' will toggle visibility of folders hidden via |g:nvim_tree_ignore|
- 'R' will refresh the tree
- Double left click acts like '<CR>'
- Double right click acts like '<C-]>'
|g:nvim_tree_bindings| *g:nvim_tree_bindings*
you can change default keybindings by defining this variable.
default keybindings will be applied to undefined keys.
>
let g:nvim_tree_bindings = {
\ edit: ['<cr>', 'o'], // Multiple keys provided via list
\ edit_vsplit: '<c-v>',
\ edit_split: '<c-x>',
\ edit_tab: '<c-t>',
\ close_node: ['<s-cr>', '<bs>'],
\ cd: '<c-]>',
\ preview: '<Tab>',
\ create: 'a',
\ remove: 'd',
\ rename: 'r',
\ cut: 'x',
\ copy: 'c',
\ paste: 'p',
\ prev_git_item: '[c',
\ next_git_item: ']c',
\ dir_up: '-',
\ }
|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 the correct fonts.
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
- ✓ ★ ✗ new file staged and has unstaged modifications
- ═ merging
- ➜ renamed
Mouse support defined in |KeyBindings|
==============================================================================
HIGHLIGHT GROUPS *nvim-tree-highlight*
|nvim_tree_highlight| *nvim_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 NvimTreeSymlink guifg=blue gui=bold,underline
<
You should have 'termguicolors' enabled, otherwise, colors will not be
applied.
NvimTreeSymlink
NvimTreeFolderName
NvimTreeRootFolder
NvimTreeFolderIcon
NvimTreeEmptyFolderName
NvimTreeExecFile
NvimTreeSpecialFile
NvimTreeImageFile
NvimTreeMarkdownFile
NvimTreeIndentMarker
NvimTreeLicenseIcon
NvimTreeYamlIcon
NvimTreeTomlIcon
NvimTreeGitignoreIcon
NvimTreeJsonIcon
NvimTreeLuaIcon
NvimTreePythonIcon
NvimTreeShellIcon
NvimTreeJavascriptIcon
NvimTreeCIcon
NvimTreeReactIcon
NvimTreeHtmlIcon
NvimTreeRustIcon
NvimTreeVimIcon
NvimTreeTypescriptIcon
NvimTreeGitDirty
NvimTreeGitStaged
NvimTreeGitMerge
NvimTreeGitRenamed
NvimTreeGitNew
There are also links to normal bindings to style the tree itself.
Normal
EndOfBuffer
CursorLine
VertSplit
CursorColumn
There are also links for file highlight with git properties
These all link to there Git equivalent
NvimTreeFileDirty
NvimTreeFileStaged
NvimTreeFileMerge
NvimTreeFileNew
NvimTreeFileRenamed
vim:tw=78:ts=8:noet:ft=help:norl: