https://github.com/night0721/ccc.nvim
Fork of fm-nvim, Neovim plugin that lets you use ccc and fnf within Neovim.
https://github.com/night0721/ccc.nvim
ccc file-manager lua neovim neovim-plugin nvim
Last synced: about 1 year ago
JSON representation
Fork of fm-nvim, Neovim plugin that lets you use ccc and fnf within Neovim.
- Host: GitHub
- URL: https://github.com/night0721/ccc.nvim
- Owner: night0721
- License: gpl-3.0
- Created: 2024-04-06T23:26:20.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-04-07T00:11:24.000Z (almost 2 years ago)
- Last Synced: 2025-01-25T22:45:21.032Z (about 1 year ago)
- Topics: ccc, file-manager, lua, neovim, neovim-plugin, nvim
- Language: Lua
- Homepage:
- Size: 25.4 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://github.com/night0721/ccc.nvim/stargazers/)
[](http://makeapullrequest.com)
[](https://github.com/night0721/ccc.nvim/pulse)
[](https://github.com/night0721/ccc.nvim/issues/)
[](https://github.com/night0721/ccc.nvim/issues?q=is%3Aissue+is%3Aclosed)
[](https://github.com/night0721/ccc.nvim/blob/master/LICENSE)
[](https://github.com/night0721/ccc.nvim/search?l=lua)
# ccc.nvim
`ccc.nvim` is a fork of Neovim plugin 'fm-nvim' that lets you use your favorite terminal file managers (and fuzzy finders) from within Neovim.
Supported File Managers
- [ccc](https://github.com/night0721/ccc)
Supported Fuzzy Finders
- [fnf](https://github.com/leo-arch/fnf)
Keep in mind that support for fuzzy finding is quite limited and using seperate plugins would be more practical.
1. Partial Support as files cannot be opened.
## Demo and Screenshots:

Screenshots
##### [fnf](https://github.com/leo-arch/fnf)

##### [ccc](https://github.com/night0721/ccc)

## Installation:
- [packer.nvim](https://github.com/wbthomason/packer.nvim):
```lua
use {'night0721/ccc.nvim'}
```
## Configuration:
The following configuration contains the defaults so if you find them satisfactory, there is no need to use the setup function.
```lua
require('ccc').setup{
-- (Vim) Command used to open files
edit_cmd = "edit",
-- See `Q&A` for more info
on_close = {},
on_open = {},
-- UI Options
ui = {
-- Default UI (can be "split" or "float")
default = "float",
float = {
-- Floating window border (see ':h nvim_open_win')
border = "none",
-- Highlight group for floating window/border (see ':h winhl')
float_hl = "Normal",
border_hl = "FloatBorder",
-- Floating Window Transparency (see ':h winblend')
blend = 0,
-- Num from 0 - 1 for measurements
height = 0.8,
width = 0.8,
-- X and Y Axis of Window
x = 0.5,
y = 0.5
},
split = {
-- Direction of split
direction = "topleft",
-- Size of split
size = 24
}
},
-- Terminal commands used w/ file manager (have to be in your $PATH)
cmds = {
ccc_cmd = "ccc",
fnf_cmd = "find . | fnf",
},
-- Mappings used with the plugin
mappings = {
vert_split = "",
horz_split = "",
tabedit = "",
edit = "",
ESC = ""
},
}
```
## Usage:
Any of the following commands are fine...
- Commands
- `:Ccc`
- `:Fnf`
but you can add a directory path w/ the command (doesn't work with `fnf`).
Example:
```
:Ccc ~/.config/nvim/
```
## Q&A
Q: What if I want to open files in splits or tabs?
A: Use any of the default mappings (unless you've changed them)...
- `` for horizontal split
- `` for vertical split
- `` for normal edit
- `` for tabs
Q: Can I run a function once exiting or entering the plugin?
A: Yes you can! Use the following code as a guide...
```lua
local function yourFunction()
-- Your code goes here
end
require('ccc').setup{
-- Runs yourFunction() upon exiting the floating window (can only be a function)
on_close = { yourFunction },
-- Runs yourFunction() upon opening the floating window (can only be a function)
on_open = { yourFunction }
}
```
Q: What if I want to map `` to close the window?
A: You can do this by mapping `` to whatever closes your file manager (note that this may bring up other issues). This can be done with the following code...
```lua
require('ccc').setup{
mappings = {
-- Example for Vifm
ESC = ":q"
}
}
```
Q: Am I able to have image previews?
A: Not yet
Q: Can I use splits instead of a floating window
A: It's possible by changing the "default" option in the "ui" table to "split"