💡 A powerful Neovim plugin for capturing, organizing, and managing your ideas with multiple view modes, tagging system, and advanced search capabilities.
- 🎯 Multiple View Modes: Floating windows, current buffer, or persistent right-side buffer
- 🏷️ Smart Tagging System: Add, remove, and filter ideas by tags
- 🔍 Advanced Search: Fuzzy search through titles and content
- 📁 File Tree Browser: Integrated nvim-tree for easy file navigation
- 🕸️ Graph Visualization: Obsidian-style force-directed graph view of your notes
- 📝 Markdown Support: Full markdown editing with syntax highlighting
- 💾 Auto-save: Changes saved automatically
- 📅 Date-based Organization: Automatic date-based file naming
- 🗂️ Folder Support: Nested organization with subdirectories
- 🎨 Clean Interface: Distraction-free writing environment
{
"CarGDev/ideadrop.nvim",
name = "ideaDrop",
dependencies = {
"nvim-tree/nvim-tree.lua",
"nvim-tree/nvim-web-devicons",
},
config = function()
require("ideaDrop").setup({
idea_dir = "/path/to/your/ideas", -- where your ideas will be saved
})
end,
}use {
"CarGDev/ideadrop.nvim",
requires = {
"nvim-tree/nvim-tree.lua",
"nvim-tree/nvim-web-devicons",
},
config = function()
require("ideaDrop").setup({
idea_dir = "/path/to/your/ideas",
})
end,
}| Option | Type | Default | Description |
|---|---|---|---|
idea_dir |
string | vim.fn.stdpath("data") .. "/ideaDrop" |
Directory where your idea files will be stored |
graph.animate |
boolean | false |
Enable animated graph layout |
graph.show_orphans |
boolean | true |
Show nodes without connections |
graph.show_labels |
boolean | true |
Show node labels by default |
graph.node_colors |
table | nil |
Custom colors by folder/tag |
require("ideaDrop").setup({
idea_dir = "/Users/carlos/Nextcloud/ObsidianVault",
graph = {
animate = false, -- Set true for animated layout
show_orphans = true, -- Show unconnected notes
show_labels = true, -- Show note names
},
})| Command | Description |
|---|---|
:Idea |
Opens today's idea in floating window |
:Idea name |
Opens or creates an idea with the specified name (floating) |
:IdeaBuffer |
Opens today's idea in current buffer |
:IdeaBuffer name |
Opens or creates an idea in current buffer |
:IdeaRight |
Opens today's idea in persistent right-side buffer |
:IdeaRight name |
Opens or creates an idea in right-side buffer |
:IdeaTree |
Opens nvim-tree file browser on the left |
| Command | Description |
|---|---|
:IdeaTags |
Shows tag picker to browse files by tag |
:IdeaAddTag tag |
Adds a tag to the current idea file |
:IdeaRemoveTag tag |
Removes a tag from the current idea file |
:IdeaSearchTag tag |
Searches for files with a specific tag |
| Command | Description |
|---|---|
:IdeaSearch query |
Fuzzy search through idea titles and content |
:IdeaSearchContent query |
Search only in idea content |
:IdeaSearchTitle query |
Search only in idea titles |
| Command | Description |
|---|---|
:IdeaGraph |
Opens the Obsidian-style graph visualization |
:IdeaGraph animate |
Opens graph with animated layout |
:IdeaGraph refresh |
Refreshes the graph data |
:IdeaGraph close |
Closes the graph window |
:IdeaGraphFilter tag tagname |
Opens graph filtered by tag |
:IdeaGraphFilter folder foldername |
Opens graph filtered by folder |
The plugin automatically sets up convenient keymaps:
| Keymap | Command | Description |
|---|---|---|
<leader>id |
:IdeaRight |
Open today's idea in right buffer |
<leader>in |
:IdeaRight |
Open named idea in right buffer |
<leader>it |
:IdeaTree |
Open tree browser |
<leader>is |
:IdeaSearch |
Search ideas |
<leader>ig |
:IdeaTags |
Browse tags |
<leader>if |
:Idea |
Open today's idea in float |
<leader>iG |
:IdeaGraph |
Open graph visualization |
:IdeaRight " Open today's idea in right buffer
:IdeaRight project/vision " Open project/vision.md in right buffer
:IdeaTree " Browse all ideas with nvim-tree:IdeaAddTag #work " Add #work tag to current idea
:IdeaAddTag #personal " Add #personal tag to current idea
:IdeaTags " Browse all tags
:IdeaSearchTag #work " Find all ideas with #work tag:IdeaSearch "machine learning" " Search for "machine learning" in all ideas
:IdeaSearchContent "algorithm" " Search content for "algorithm"
:IdeaSearchTitle "project" " Search titles for "project":IdeaRight meetings/2024-01-15 " Create nested folder structure
:IdeaRight projects/app/features " Organize by project and feature:IdeaGraph " Open the graph view
:IdeaGraph animate " Open with animated layout
:IdeaGraphFilter tag work " Show only notes tagged #work
:IdeaGraphFilter folder projects " Show only notes in projects folderThe plugin includes a powerful tagging system:
- Add tags: Use
#tagformat in your markdown files - Auto-completion: Tags are automatically detected and indexed
- Filter by tags: Browse and filter ideas by tags
- Tag statistics: See how many files use each tag
# My Idea Title
This is my idea content.
#work #project-x #feature #todoThe plugin includes an Obsidian-style graph view that visualizes the connections between your notes.
- Nodes: Each markdown file appears as a node
- Edges: Internal links using
[[Note Name]]syntax create connections - Layout: Uses Fruchterman-Reingold force-directed algorithm
- Positioning: Highly connected nodes drift to center, orphans to periphery
| Key | Action |
|---|---|
h/j/k/l |
Navigate between nodes |
Enter |
Open selected note |
t |
Filter by tag |
f |
Filter by folder |
r |
Reset filter |
L |
Toggle labels |
c |
Center graph |
+/- |
Zoom in/out |
? |
Toggle help |
q/Esc |
Close graph |
R |
Refresh graph |
- Node Size: Scales with degree (number of connections)
- Node Color:
- Blue: Normal nodes
- Purple: High-connectivity nodes (hubs)
- Gray: Orphan nodes (no connections)
- Red: Selected node
- Edges: Thin, semi-transparent lines showing connections
To create links between notes, use wiki-style links in your markdown:
# My Note
This relates to [[Another Note]] and also to [[Projects/My Project]].
Check out [[2024-01-15]] for more context.The graph will automatically detect these links and create visual connections.
- Search through file titles and content
- Real-time results as you type
- Navigate through search results easily
- Search only in the body of your ideas
- Perfect for finding specific concepts or references
- Search only in file names
- Quick way to find specific ideas
The plugin integrates with nvim-tree for seamless file browsing:
- Left-side tree: Opens on the left side of your screen
- File selection: Click or press Enter to open files
- Directory navigation: Browse through your idea folders
- File operations: Create, delete, rename files directly
- Opens ideas in a floating window
- Good for quick notes
- Command:
:Idea
- Opens ideas in the current buffer
- Replaces current content
- Command:
:IdeaBuffer
- Persistent buffer on the right side
- Stays open while you work
- Perfect for ongoing projects
- Command:
:IdeaRight
- Full file tree on the left side
- Integrated with nvim-tree
- Command:
:IdeaTree
- Obsidian-style force-directed graph
- Visualizes note connections via
[[links]] - Interactive filtering and navigation
- Command:
:IdeaGraph
This plugin is built with:
- Lua: Core functionality
- Neovim API: Native Neovim integration
- nvim-tree: File tree browsing
- vim.ui.select: Native picker for search and tag selection
- Markdown: Rich text support
See CHANGELOG.md for a detailed list of changes.
MIT License - feel free to use this plugin in your own projects!
Contributions are welcome! Please feel free to submit a Pull Request.
- Clone the repository
- Install dependencies (nvim-tree, telescope)
- Configure the plugin in your Neovim setup
- Test with the provided commands and keymaps
- Module not found errors: Ensure all dependencies are installed
- Tree not opening: Make sure nvim-tree is properly configured
- Search not working: Verify your idea directory path is correct
- Tags not showing: Check that your idea directory exists and contains markdown files
- Graph showing no connections: Make sure you're using
[[Note Name]]syntax for links - Graph layout looks cramped: Try zooming out with
-or use:IdeaGraph animatefor better initial layout - Graph is slow: Large vaults (500+ notes) may take a moment to compute layout
- Check the configuration examples above
- Ensure all dependencies are installed
- Verify your idea directory path is correct
- Test with the basic commands first
Happy idea capturing! 🚀