pages/dotfiles/pack/plugins/start/dirbuf.nvim/README.md

98 lines
3.1 KiB
Markdown
Raw Normal View History

2022-10-11 23:59:29 +00:00
# dirbuf.nvim
A directory buffer for Neovim that lets you edit your filesystem like you edit
text. Inspired by [vim-dirvish] and [vidir].
## Features
* *Intuitive:* Create, copy, delete, and rename files, directories, and more by
editing their lines in the directory buffer. Buffer names are automatically
updated to reflect changes.
* *Minimal:* Works out of the box with no configuration. Default mappings
easily changed.
* *Unobtrusive:* Preserves alternate buffers and navigation history. Switch
between files with `Ctrl-^` (`Ctrl-6`) and jump around your navigation history
with custom `<Plug>` mappings.
* *Safe:* Does not modify the filesystem until you save the buffer. Optionally
request confirmation and dry-run saving.
* *Reliable:* Resolves inter-dependencies in batch renames, including cycles.
* *Polite:* Plays nicely with tree-based file viewers like [nvim-tree.lua],
[fern.vim], and [carbon.nvim].
https://user-images.githubusercontent.com/42009212/162110083-9fd3701f-8ffb-4cf7-9333-d57020a9242e.mp4
## Installation
Requires [Neovim 0.6](https://github.com/neovim/neovim/releases/tag/v0.6.0) or
higher.
* [vim-plug]: `Plug "elihunter173/dirbuf.nvim"`
* [packer.nvim]: `use "elihunter173/dirbuf.nvim"`
### Notes
If you use [`nvim-tree.lua`](https://github.com/kyazdani42/nvim-tree.lua), you
must disable the `:help nvim-tree.update_to_buf_dir` option. Otherwise, Dirbuf
will fail to open directory buffers.
```lua
require("nvim-tree").setup {
update_to_buf_dir = { enable = false }
}
```
## Usage
Run the command `:Dirbuf` to open a directory buffer. Press `-` in any buffer
to open a directory buffer for its parent. Editing a directory will also open
up a directory buffer, overriding Netrw.
Inside a directory buffer, there are the following keybindings:
* `<CR>`: Open the file or directory at the cursor.
* `gh`: Toggle showing hidden files (i.e. dot files).
* `-`: Open parent directory.
See `:help dirbuf.txt` for more info.
## Configuration
Configuration is not necessary for Dirbuf to work. But for those that want to
override the default config, the following options are available with their
default values listed.
```lua
require("dirbuf").setup {
hash_padding = 2,
show_hidden = true,
sort_order = "default",
write_cmd = "DirbufSync",
}
```
Read the [documentation](/doc/dirbuf.txt) for more information (`:help
dirbuf-options`).
## Development
A [Justfile][just] is provided to test and lint the project.
```sh
# Run unit tests
$ just test
# Run luacheck
$ just lint
```
`just test` will automatically download [plenary.nvim]'s test harness and run
the `*_spec.lua` tests in `tests/`.
[carbon.nvim]: https://github.com/SidOfc/carbon.nvim
[fern.vim]: https://github.com/lambdalisue/fern.vim
[just]: https://github.com/casey/just
[nvim-tree.lua]: https://github.com/kyazdani42/nvim-tree.lua
[packer.nvim]: https://github.com/wbthomason/packer.nvim
[plenary.nvim]: https://github.com/nvim-lua/plenary.nvim
[vidir]: https://github.com/trapd00r/vidir
[vim-dirvish]: https://github.com/justinmk/vim-dirvish
[vim-plug]: https://github.com/junegunn/vim-plug