Skip to content

Fork of fm-nvim, Neovim plugin that lets you use ccc and fnf within Neovim.

License

Notifications You must be signed in to change notification settings

night0721/ccc.nvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub Stars PRs Welcome Last Commit GitHub Open Issues GitHub Closed Issues GitHub License 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

Supported Fuzzy Finders

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:

Demo

Screenshots

fnf

ccc

Installation:

Configuration:

The following configuration contains the defaults so if you find them satisfactory, there is no need to use the setup function.

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 = "<C-v>",
		horz_split = "<C-h>",
		tabedit    = "<C-t>",
		edit       = "<C-e>",
		ESC        = "<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)...

  • <C-h> for horizontal split
  • <C-v> for vertical split
  • <C-e> for normal edit
  • <C-t> 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...

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 <ESC> to close the window?

A: You can do this by mapping <ESC> to whatever closes your file manager (note that this may bring up other issues). This can be done with the following code...

require('ccc').setup{
	mappings = {
		-- Example for Vifm
		ESC        = ":q<CR>"
	}
}

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"

About

Fork of fm-nvim, Neovim plugin that lets you use ccc and fnf within Neovim.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages