Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

A file explorer tree for neovim written in lua

License

NotificationsYou must be signed in to change notification settings

numToStr/nvim-tree.lua

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Linting and style checking

Notice

This plugin requiresneovim >=0.5.0.

Install

Install withvim-plug:

" requiresPlug'kyazdani42/nvim-web-devicons'" for file iconsPlug'kyazdani42/nvim-tree.lua'

Install withpacker:

use {'kyazdani42/nvim-tree.lua',requires='kyazdani42/nvim-web-devicons',config=function()require'nvim-tree'.setup {}end}

Setup

Options are currently being migrated into the setup function, you need to runrequire'nvim-tree'.setup() in your personal configurations.Setup should be run in a lua file or in a lua heredoc (:help lua-heredoc) if using in a vim file.Note that options under theg: command should be setBEFORE running the setup function.

-- following options are the defaultrequire'nvim-tree'.setup {-- disables netrw completelydisable_netrw=true,-- hijack netrw window on startuphijack_netrw=true,-- open the tree when running this setup functionopen_on_setup=false,-- will not open on setup if the filetype is in this listignore_ft_on_setup= {},-- closes neovim automatically when the tree is the last **WINDOW** in the viewauto_close=false,-- opens the tree when changing/opening a new tab if the tree wasn't previously openedopen_on_tab=false,-- hijack the cursor in the tree to put it at the start of the filenamehijack_cursor=false,-- updates the root directory of the tree on `DirChanged` (when your run `:cd` usually)update_cwd=false,-- show lsp diagnostics in the signcolumnlsp_diagnostics=false,-- update the focused file on `BufEnter`, un-collapses the folders recursively until it finds the fileupdate_focused_file= {-- enables the featureenable=false,-- update the root directory of the tree to the one of the folder containing the file if the file is not under the current root directory-- only relevant when `update_focused_file.enable` is trueupdate_cwd=false,-- list of buffer names / filetypes that will not update the cwd if the file isn't found under the current root directory-- only relevant when `update_focused_file.update_cwd` is true and `update_focused_file.enable` is trueignore_list= {}  },-- configuration options for the system open command (`s` in the tree by default)system_open= {-- the command to run this, leaving nil should work in most casescmd=nil,-- the command arguments as a listargs= {}  },view= {-- width of the window, can be either a number (columns) or a string in `%`width=30,-- side of the tree, can be one of 'left' | 'right' | 'top' | 'bottom'side='left',-- if true the tree will resize itself after opening a fileauto_resize=false,mappings= {-- custom only false will merge the list with the default mappings-- if true, it will only use your list to set the mappingscustom_only=false,-- list of mappings to set on the tree manuallylist= {}    }  }}
letg:nvim_tree_ignore= ['.git','node_modules','.cache' ]"empty by defaultletg:nvim_tree_gitignore=1"0 by defaultletg:nvim_tree_quit_on_open=1"0 by default, closes the tree when you open a fileletg:nvim_tree_indent_markers=1"0 by default, this option shows indent markers when folders are openletg:nvim_tree_hide_dotfiles=1"0 by default, this option hides files and folders starting with a dot `.`letg:nvim_tree_git_hl=1"0 by default, will enable file highlight for git attributes (can be used without the icons).letg:nvim_tree_highlight_opened_files=1"0 by default, will enable folder and file icon highlight for opened files/directories.letg:nvim_tree_root_folder_modifier=':~'"This is the default. See :help filename-modifiers for more optionsletg:nvim_tree_add_trailing=1"0 by default, append a trailing slash to folder namesletg:nvim_tree_group_empty=1" 0 by default, compact folders that only contain a single folder into one node in the file treeletg:nvim_tree_disable_window_picker=1"0 by default, will disable the window picker.letg:nvim_tree_icon_padding=''"one space by default, used for rendering the space between the icon and the filename. Use with caution, it could break rendering if you set an empty string depending on your font.letg:nvim_tree_symlink_arrow=' >>'" defaults to ' ➛ '. used as a separator between symlinks' source and target.letg:nvim_tree_respect_buf_cwd=1"0 by default, will change cwd of nvim-tree to that of new buffer's when opening nvim-tree.letg:nvim_tree_create_in_closed_folder=0"1 by default, When creating files, sets the path of a file when cursor is on a closed folder to the parent folder when 0, and inside the folder when 1.letg:nvim_tree_refresh_wait=500"1000 by default, control how often the tree can be refreshed, 1000 means the tree can be refresh once per 1000ms.letg:nvim_tree_window_picker_exclude= {\'filetype': [\'notify',\'packer',\'qf'\  ],\'buftype': [\'terminal'\  ]\}" Dictionary of buffer option names mapped to a list of option values that" indicates to the window picker that the buffer's window should not be" selectable.letg:nvim_tree_special_files= {'README.md':1,'Makefile':1,'MAKEFILE':1 }" List of filenames that gets highlighted with NvimTreeSpecialFileletg:nvim_tree_show_icons= {\'git':1,\'folders':0,\'files':0,\'folder_arrows':0,\}"If 0, do not show the icons for one of 'git' 'folder' and 'files'"1 by default, notice that if 'files' is 1, it will only display"if nvim-web-devicons is installed and on your runtimepath."if folder is 1, you can also tell folder_arrows 1 to show small arrows next to the folder icons."but this will not work when you set indent_markers (because of UI conflict)" default will show icon by default if no icon is provided" default shows no icon by defaultletg:nvim_tree_icons= {\'default':'',\'symlink':'',\'git': {\'unstaged':"",\'staged':"",\'unmerged':"",\'renamed':"",\'untracked':"",\'deleted':"",\'ignored':""\  },\'folder': {\'arrow_open':"",\'arrow_closed':"",\'default':"",\'open':"",\'empty':"",\'empty_open':"",\'symlink':"",\'symlink_open':"",\  },\'lsp': {\'hint':"",\'info':"",\'warning':"",\'error':"",\  }\}nnoremap<C-n>:NvimTreeToggle<CR>nnoremap<leader>r :NvimTreeRefresh<CR>nnoremap<leader>n :NvimTreeFindFile<CR>" NvimTreeOpen, NvimTreeClose, NvimTreeFocus and NvimTreeResize are also available if you need themsettermguicolors" this variable must be enabled for colors to be applied properly" a list of groups can be found at `:help nvim_tree_highlight`highlight NvimTreeFolderIcon guibg=blue

KeyBindings

Default actions

  • <CR> oro on.. will cd in the above directory
  • <C-]> will cd in the directory under the cursor
  • <BS> will close current opened directory or parent
  • typea to add a file. Adding a directory requires leaving a leading/ at the end of the path.

    you can add multiple directories by doing foo/bar/baz/f and it will add foo bar and baz directories and f as a file

  • typer to rename a file
  • type<C-r> to rename a file and omit the filename on input
  • typex to add/remove file/directory to cut clipboard
  • typec to add/remove file/directory to copy clipboard
  • typey will copy name to system clipboard
  • typeY will copy relative path to system clipboard
  • typegy will copy absolute path to system clipboard
  • typep to paste from clipboard. Cut clipboard has precedence over copy (will prompt for confirmation)
  • typed 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 to the parent directory of the current file/directory
  • types to open a file with default system application or a folder with default file manager (if you want to change the command used to do it see:h nvim-tree.setup undersystem_open)
  • 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 (if the target is a file)
  • <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|
  • H will toggle visibility of dotfiles (files/folders starting with a.)
  • R will refresh the tree
  • Double left click acts like<CR>
  • Double right click acts like<C-]>

Settings

Thelist option inview.mappings.list is a table of

-- key can be either a string or a table of string (lhs)-- cb is the callback that will be called-- mode is normal by defaultlocallist= {  {key= {"<CR>","o"},cb=":lua some_func()<cr>",mode="n"}}EOF

These are the default bindings:

localtree_cb=require'nvim-tree.config'.nvim_tree_callback-- default mappingslocallist= {  {key= {"<CR>","o","<2-LeftMouse>"},cb=tree_cb("edit") },  {key= {"<2-RightMouse>","<C-]>"},cb=tree_cb("cd") },  {key="<C-v>",cb=tree_cb("vsplit") },  {key="<C-x>",cb=tree_cb("split") },  {key="<C-t>",cb=tree_cb("tabnew") },  {key="<",cb=tree_cb("prev_sibling") },  {key=">",cb=tree_cb("next_sibling") },  {key="P",cb=tree_cb("parent_node") },  {key="<BS>",cb=tree_cb("close_node") },  {key="<S-CR>",cb=tree_cb("close_node") },  {key="<Tab>",cb=tree_cb("preview") },  {key="K",cb=tree_cb("first_sibling") },  {key="J",cb=tree_cb("last_sibling") },  {key="I",cb=tree_cb("toggle_ignored") },  {key="H",cb=tree_cb("toggle_dotfiles") },  {key="R",cb=tree_cb("refresh") },  {key="a",cb=tree_cb("create") },  {key="d",cb=tree_cb("remove") },  {key="r",cb=tree_cb("rename") },  {key="<C-r>",cb=tree_cb("full_rename") },  {key="x",cb=tree_cb("cut") },  {key="c",cb=tree_cb("copy") },  {key="p",cb=tree_cb("paste") },  {key="y",cb=tree_cb("copy_name") },  {key="Y",cb=tree_cb("copy_path") },  {key="gy",cb=tree_cb("copy_absolute_path") },  {key="[c",cb=tree_cb("prev_git_item") },  {key="]c",cb=tree_cb("next_git_item") },  {key="-",cb=tree_cb("dir_up") },  {key="s",cb=tree_cb("system_open") },  {key="q",cb=tree_cb("close") },  {key="g?",cb=tree_cb("toggle_help") },}

You can toggle the help UI by pressingg?.

Features

  • Open file in current buffer or in split with FzF like bindings (<CR>,<C-v>,<C-x>,<C-t>)
  • File icons with nvim-web-devicons
  • Syntax highlighting (exa like)
  • Change directory with.
  • Add / Rename / delete files
  • Git integration (icons and file highlight)
  • Lsp diagnostics integration (signs)
  • Indent markers
  • Mouse support
  • It's fast

Screenshots

alt textalt textalt text

About

A file explorer tree for neovim written in lua

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published

Languages

  • Lua100.0%

[8]ページ先頭

©2009-2025 Movatter.jp