/chadtree

File manager for Neovim. Better than NERDTree.

Primary LanguagePython

File Manager for Neovim, Better than NERDTree.

Features Illustrated

See full list of screen captures here

I like speed

  • Parallel Filesystem Scan

  • React Like Reconciling Difference Minimizing Rendering engine

  • Never blocks

You can read more about my performance optimization here.

I like power

  • Visual mode selections

  • Create, Copy, Paste, Delete, Rename, gotta do them all

  • Quickfix integration

  • Bookmarks

visual_select.gif

I like 21st century

  • Filtering by glob

  • Follow mode

  • Session support (save open folders to disk, pick up where you left off)

  • Trash support (requires trash or trash-cli)

  • ls -l statistics

  • Correct! handling of symlinks

filtering.gif

I like version control

  • Asynchronous parse git status (untracked, modified, staged)

  • Full support for git submodules

git.gif

I like colours

  • Full $LS_COLOR support! (shows same colours as unix ls & tree commands)

  • Github coloured icons (over 600 colours!)

  • Three different sets of icons out of the box

  • Four built-in themes - nord, solarized, trapdoor, vim-syntax

ls_colours.png

github_colours.png

I like refinement

  • Maintain cursor position on relevant files even when during movements.

  • Maintain selection when copying, moving files

  • Mimetype warning (so you don't accidentally open an image)

  • Validating config parser (notice, I added an extra "dog" param)

mime warn.png

schema error.png

I like documentation

  • Build-in help command in a floating window!

  • Over 1000 lines of meticulous docs covering every option / function!

Use :CHADhelp to view documentation

Use :CHADhelp --web to open documentation in your browser! (If you have one installed)

Install

Minimum version: python: 3.8.2, nvim: 0.4.3, make sure to have virtualenv installed (e.g.: sudo apt install --yes -- python3-venv)

Install the usual way, ie. VimPlug, Vundle, etc

Plug 'ms-jpq/chadtree', {'branch': 'chad', 'do': 'python3 -m chadtree deps'}

You will have to run :CHADdeps when installing / updating. This will install CHADTree's dependencies locally inside chadtree/.vars/runtime.

doing rm -rf chadtree/ will cleanly remove everything CHADTree uses on your computer.

Usage

To toggle CHADTree run command :CHADopen. Set it to a hotkey for convenience.

nnoremap <leader>v <cmd>CHADopen<cr>

To see a list of hot keys:

Either use :CHADhelp keybind or open in browser using :CHADhelp keybind --web

Recommendations

Add a hotkey to clear quickfix list:

nnoremap <leader>l <cmd>call setqflist([])<cr>

If you like this...

Also check out

  • sad, its a modern sed that does previews with syntax highlighting, and lets you pick and choose which chunks to edit.

  • coq.nvim, it's a FAST AS FUCK completion client with shit tons of features.

  • isomorphic-copy, it's a cross platform clipboard that is daemonless, and does not require third party support.

Special Thanks

CHADTree does not define it's own colours beyond some minimal defaults, all themes are imported from other open source projects.

The base icons are imported from the vim-devicon

All emoji icons are imported from the vim-emoji-icon-theme

Some themes are imported from dircolors-solarized

Some themes are imported from nord-dircolors

Some themes are imported from LS_COLORS

Some themes are imported from vim-nerdtree-syntax-highlight