Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/shoumodip/ido.nvim
Simple fuzzy searcher for Neovim
https://github.com/shoumodip/ido.nvim
Last synced: 3 days ago
JSON representation
Simple fuzzy searcher for Neovim
- Host: GitHub
- URL: https://github.com/shoumodip/ido.nvim
- Owner: shoumodip
- License: mit
- Created: 2020-12-14T06:16:16.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2024-10-17T12:51:07.000Z (28 days ago)
- Last Synced: 2024-11-09T01:03:56.280Z (6 days ago)
- Language: Lua
- Homepage:
- Size: 679 KB
- Stars: 40
- Watchers: 3
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ido.nvim
Simple fuzzy searcher for Neovim![Ido](ido.png)
## Install
```vim
Plug 'shoumodip/ido.nvim'
```## Basic Usage
* `ido.start(items, callback, title)`
```lua
require("ido").start({"red", "green", "blue"}, function (v)
print(v)
end)
```| Key | Description |
| -------------------- | -------------------- |
| \ | Quit |
| \ | Quit |
| \ | Accept the query |
| \ | Accept the selection |
| \ | Select next item |
| \ | Select previous item |## Execute
Execute registered ido functions, which are listed below```lua
require("lua").execute()
```## Browse
Navigate the filesystem```lua
require("ido").browse()
```| Key | Description |
| -------------------- | ---------------------------------- |
| \ | Enter directory |
| \ | Parent directory |
| \ | Change directory to current active |## Buffers
Switch between buffers```lua
require("ido").buffers()
```## Colorschemes
Switch between colorschemes```lua
require("ido").colorschemes()
```## Git Files
Open git files, default to Browser outside git repos```lua
require("ido").git_files()
```## Git Grep
Search patterns in git repos```lua
require("ido").git_grep()
```| Key | Description |
| -------------------- | --------------------------------- |
| \ | Save matches to the quickfix list |## Projects
Switch to a project within a directory```lua
require("ido").projects("~/Git") -- Projects base path of choice-- OR --
require("ido").projects() -- Select projects base path via input prompt
```## Man Pages
Open man pages```lua
require("ido").man_pages()
```## Helptags
Open vim helptags```lua
require("ido").helptags()
```## Global Keybindings
Will bind for all Ido runs```lua
local ido = require("ido")ido.bind {
["jk"] = ido.exit,
[""] = ido.next,
[""] = ido.prev,
[""] = ido.accept_item,
}
```## Instance Keybindings
Will bind for the current run only```lua
local ido = require("ido")ido.git_files()
ido.bind {
[""] = function ()
vim.fn.mkdir(ido.get_query())
end
}
```## Custom Window Title
```lua
require("ido").start({"red", "green", "blue"}, print, "Select Colors")
```## Custom Registered Function
Registered functions show up in the `ido.execute` selector as well as in the
`ido` namespace```lua
local ido = require("ido")ido.register("lines", function ()
local lines = vim.api.nvim_buf_get_lines(0, 0, -1, false)
local max = #tostring(#lines)for i in ipairs(lines) do
lines[i] = string.rep(" ", max - #tostring(i))..i..": "..lines[i]
endido.start(lines, function (line)
local index = line:find(":")
if index then
vim.api.nvim_win_set_cursor(0, {tonumber(line:sub(1, index - 1)), 0})
end
end, "Lines")
end)
```This function can now be called with both the following ways
```lua
require("ido").lines()
```OR
```lua
require("ido").execute()
```