Convert Figma logo to code with AI

nvim-neorg logoneorg

Modernity meets insane extensibility. The future of organizing your life in Neovim.

6,846
228
6,846
200

Top Related Projects

9,049

Personal Wiki for Vim

Text outlining and task management for Vim based on Emacs' Org-Mode

Markdown Vim Mode

markdown preview plugin for (neo)vim

A Neovim (lua) plugin for working with a markdown zettelkasten / wiki and mixing it with a journal, based on telescope.nvim

Quick Overview

Neorg is a powerful and extensible note-taking and organization tool for the Neovim text editor. It provides a flexible and customizable way to manage your notes, tasks, and other information, with support for a wide range of features and integrations.

Pros

  • Extensible and Customizable: Neorg is built on a modular architecture, allowing you to easily add or remove functionality as needed, and customize the tool to fit your specific needs.
  • Powerful Syntax and Features: Neorg supports a rich set of features, including task management, code blocks, links, and more, all with a powerful and expressive syntax.
  • Tight Integration with Neovim: Neorg is designed to work seamlessly with Neovim, leveraging its powerful features and plugins to provide a smooth and efficient note-taking experience.
  • Active Development and Community: Neorg has an active and engaged community of contributors, ensuring ongoing development, bug fixes, and feature enhancements.

Cons

  • Steep Learning Curve: Neorg's flexibility and power come with a relatively steep learning curve, especially for users new to Neovim or note-taking tools.
  • Performance Concerns: Depending on the size and complexity of your notes, Neorg may experience some performance issues, especially on older or less powerful hardware.
  • Limited Portability: As a Neovim-specific tool, Neorg may not be as accessible to users who prefer other text editors or note-taking applications.
  • Potential Compatibility Issues: Neorg's tight integration with Neovim may lead to compatibility issues with certain Neovim plugins or configurations.

Code Examples

-- Example of a basic Neorg configuration
require('neorg').setup {
  -- Load the "core" module
  load = {
    ["core.defaults"] = {},
    ["core.norg.concealer"] = {},
    ["core.norg.dirman"] = {
      config = {
        workspaces = {
          my_workspace = "~/notes"
        }
      }
    }
  }
}
-- Example of a Neorg module configuration
require('neorg').setup {
  load = {
    ["core.norg.completion"] = {
      config = {
        engine = "nvim-cmp"
      }
    }
  }
}
-- Example of a Neorg command
require('neorg').setup {
  load = {
    ["core.keybinds"] = {
      config = {
        default_keybinds = true,
        neorg_leader = "<Leader>o"
      }
    }
  }
}
-- Example of a Neorg module
require('neorg').setup {
  load = {
    ["modules.external.ui.zen"] = {}
  }
}

Getting Started

To get started with Neorg, follow these steps:

  1. Install Neovim (version 0.5 or later) and the necessary dependencies.
  2. Install the Neorg plugin using your preferred package manager, such as Packer or Vim-Plug.
  3. Create a new Neorg configuration file (e.g., ~/.config/nvim/init.lua) and add the following basic setup:
-- Load the Neorg module
require('neorg').setup {
  -- Load the "core" modules
  load = {
    ["core.defaults"] = {},
    ["core.norg.concealer"] = {},
    ["core.norg.dirman"] = {
      config = {
        workspaces = {
          my_workspace = "~/notes"
        }
      }
    }
  }
}
  1. Open Neovim and create a new Neorg file (e.g., my_notes.norg) in your configured workspace.
  2. Start exploring Neorg's features and customizing the configuration to fit your needs.

For more detailed information and advanced configuration options, refer to the Neorg documentation: https://github.com/nvim-neorg/neorg

Competitor Comparisons

9,049

Personal Wiki for Vim

Pros of Vimwiki

  • Mature and stable project with a large user base
  • Simpler setup and learning curve for beginners
  • Built-in diary functionality

Cons of Vimwiki

  • Limited extensibility compared to Neorg
  • Less powerful markup language
  • Lack of advanced features like task management and project planning

Code Comparison

Vimwiki syntax:

= Header 1 =
== Header 2 ==
* List item
[[Link]]

Neorg syntax:

* Header 1
** Header 2
- List item
{:link:}[Link]

Key Differences

  • Neorg is specifically designed for Neovim, while Vimwiki works with both Vim and Neovim
  • Neorg uses a more powerful and flexible markup language (Norg)
  • Neorg offers better integration with other Neovim plugins and ecosystems
  • Vimwiki has a simpler syntax, making it easier for beginners to get started
  • Neorg provides more advanced features like task management and project planning

Conclusion

Vimwiki is a solid choice for users looking for a simple, stable note-taking solution within Vim or Neovim. Neorg, on the other hand, offers more advanced features and extensibility, making it ideal for power users who want to create a comprehensive personal knowledge management system within Neovim.

Text outlining and task management for Vim based on Emacs' Org-Mode

Pros of vim-orgmode

  • More mature and stable, with a longer development history
  • Closer to the original Emacs Org-mode functionality
  • Works with both Vim and Neovim

Cons of vim-orgmode

  • Less active development and slower updates
  • Limited extensibility compared to Neorg's modular architecture
  • Lacks some advanced features present in Neorg

Code Comparison

vim-orgmode:

" Basic todo item
* TODO Write comparison
** DONE Research repositories
** TODO Draft content

Neorg:

@document.meta
title: Comparison
description: Repository comparison
authors: [Your Name]
@end

* TODO Write comparison
** DONE Research repositories
** TODO Draft content

Key Differences

  • Neorg is built specifically for Neovim, leveraging its advanced features
  • Neorg uses a custom markup language, while vim-orgmode aims to be more compatible with Emacs Org-mode
  • Neorg offers a more modular and extensible architecture
  • vim-orgmode provides a more familiar experience for users transitioning from Emacs Org-mode

Conclusion

Both projects aim to bring Org-mode-like functionality to Vim/Neovim users. vim-orgmode is more established and closer to the original Org-mode, while Neorg offers a modern, Neovim-specific approach with greater extensibility and custom features.

Markdown Vim Mode

Pros of vim-markdown

  • Lightweight and focused solely on Markdown support
  • Extensive syntax highlighting and folding features
  • Compatible with both Vim and Neovim

Cons of vim-markdown

  • Limited to Markdown functionality only
  • Lacks advanced organizational features and task management
  • No built-in support for linking between notes or creating knowledge bases

Code comparison

vim-markdown:

" Enable TOC window auto-fit
let g:vim_markdown_toc_autofit = 1

" Disable folding
let g:vim_markdown_folding_disabled = 1

Neorg:

require('neorg').setup {
  load = {
    ["core.defaults"] = {},
    ["core.concealer"] = {},
    ["core.dirman"] = {
      config = {
        workspaces = {
          notes = "~/notes",
        },
      },
    },
  },
}

Summary

vim-markdown is a lightweight plugin focused on Markdown support, offering excellent syntax highlighting and folding features. It's compatible with both Vim and Neovim, making it a versatile choice for Markdown editing.

Neorg, on the other hand, is a more comprehensive note-taking and organization system built specifically for Neovim. It offers advanced features like workspaces, task management, and linking between notes, making it suitable for creating complex knowledge bases.

While vim-markdown excels in its simplicity and Markdown-specific functionality, Neorg provides a more robust ecosystem for note-taking and personal knowledge management beyond just Markdown support.

markdown preview plugin for (neo)vim

Pros of markdown-preview.nvim

  • Lightweight and focused solely on Markdown preview
  • Real-time preview in browser with automatic refresh
  • Easy to set up and use with minimal configuration

Cons of markdown-preview.nvim

  • Limited to Markdown format only
  • Lacks advanced organization and note-taking features
  • No built-in support for task management or linking between notes

Code Comparison

markdown-preview.nvim:

vim.g.mkdp_auto_start = 1
vim.g.mkdp_browser = 'firefox'
vim.g.mkdp_preview_options = {
    disable_sync_scroll = 0,
}

neorg:

require('neorg').setup {
    load = {
        ["core.defaults"] = {},
        ["core.concealer"] = {},
        ["core.dirman"] = {
            config = { workspaces = { notes = "~/notes" } }
        }
    }
}

Summary

markdown-preview.nvim is a lightweight plugin focused on providing real-time Markdown preview in the browser. It's easy to set up and use but limited to Markdown format. neorg, on the other hand, is a comprehensive note-taking and organization system with support for multiple formats, advanced linking, and task management. neorg offers more features but requires more setup and learning. Choose based on your specific needs: simple Markdown preview or a full-fledged note-taking system.

A Neovim (lua) plugin for working with a markdown zettelkasten / wiki and mixing it with a journal, based on telescope.nvim

Pros of telekasten.nvim

  • Lightweight and focused specifically on Zettelkasten note-taking
  • Easier to set up and configure for users who only need Zettelkasten functionality
  • Integrates well with existing Markdown workflows

Cons of telekasten.nvim

  • Less feature-rich compared to Neorg's comprehensive organizational capabilities
  • Limited to Markdown format, while Neorg offers a custom markup language
  • Smaller community and ecosystem compared to Neorg

Code Comparison

telekasten.nvim:

require('telekasten').setup({
    home = vim.fn.expand("~/zettelkasten"),
    template_new_note = vim.fn.expand("~/zettelkasten/templates/new_note.md"),
})

Neorg:

require('neorg').setup {
    load = {
        ["core.defaults"] = {},
        ["core.concealer"] = {},
        ["core.dirman"] = {
            config = {
                workspaces = {
                    notes = "~/notes",
                }
            }
        }
    }
}

Both plugins offer configuration options, but Neorg's setup is more extensive due to its broader feature set. telekasten.nvim focuses on Zettelkasten-specific settings, while Neorg provides a modular structure for various organizational tools.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Neorg - An Organized Future

Neovim Discord License Usage

Your New Life Organization Tool - All in Lua

Tutorial • Roadmap • Installation • Further Learning
Credits • Support


:warning: Neorg 9.0.0 has introduced some breaking changes! Please see this blog post on what changed.

Summary

Neorg (Neo - new, org - organization) is a Neovim plugin designed to reimagine organization as you know it. Grab some coffee, start writing some notes, let your editor handle the rest.

What is Neorg?

Neorg is an all-encompassing tool based around structured note taking, project and task management, time tracking, slideshows, writing typeset documents and much more. The premise is that all of these features are built on top of a single base file format (.norg), which the user only has to learn once to gain access to all of Neorg's functionality.

Not only does this yield a low barrier for entry for new users it also ensures that all features are integrated with each other and speak the same underlying language. The file format is built to be expressive and easy to parse, which also makes .norg files easily usable anywhere outside of Neorg itself.

A good way of thinking about Neorg is as a plaintext environment which can be adapted to a variety of use cases. If a problem can be represented using raw text, it can be solved using Neorg.

:exclamation: IMPORTANT: Neorg is young software. We consider it stable however be prepared for occasional breaking workflow changes. Make sure to pin the version of Neorg you'd like to use and only update when you are ready.

🌟 Tutorial

A video tutorial may be found on Youtube:

📦 Installation

Neorg's setup process is slightly more complex than average, so we encourage you to be patient :)

Neorg requires Neovim 0.10 or above to function. After you're done with the installation process, run :checkhealth neorg to see if everything's correct!

rocks.nvim

One way of installing Neorg is via rocks.nvim.

Installation snippet.
  • Run :Rocks install rocks-config.nvim (if you don't have it already!).
  • Run :Rocks install neorg.
  • From the root of your configuration (~/.config/nvim/ on unix-like systems), create a lua/plugins/neorg.lua file and place the following content inside:
    require("neorg").setup()
    

For the time being you also need nvim-treesitter installed, but the plugin is not readily available on luarocks yet. To counter this, you also need to run the following:

  • :Rocks install rocks-git.nvim
  • :Rocks install nvim-treesitter/nvim-treesitter
  • Just like the neorg.lua file, create a lua/plugins/treesitter.lua file and place the following content inside:
    require("nvim-treesitter.configs").setup({
      highlight = {
        enable = true,
      },
    })
    

The last three steps will eventually not be required to run Neorg.

neorg-kickstart

Not bothered to set up Neovim on your own? Check out our kickstart config which will get you up and running with Neorg without any prior Neovim configuration knowledge.

lazy.nvim

To install Neorg via lazy, first ensure that you have luarocks installed on your system. On Linux/Mac, this involves installing using your system's package manager. On Windows, consider the Lua for Windows all-in-one package.

Click for installation snippet.
{
    "nvim-neorg/neorg",
    lazy = false, -- Disable lazy loading as some `lazy.nvim` distributions set `lazy = true` by default
    version = "*", -- Pin Neorg to the latest stable release
    config = true,
}

packer.nvim

Neorg can be installed purely via luarocks on packer, pulling in all required dependencies in the process.

It is not recommended to use packer as it is now unmaintained.

Click for installation snippet.
use {
  "nvim-neorg/neorg",
  rocks = { "lua-utils.nvim", "nvim-nio", "nui.nvim", "plenary.nvim", "pathlib.nvim" },
  tag = "*", -- Pin Neorg to the latest stable release
  config = function()
      require("neorg").setup()
  end,
}

Other Plugin Managers

Because of the complexities of luarocks, we are choosing not to support other plugin managers for the time being. It is actively on our TODO list, however!

📚 Further Learning

After you have installed Neorg, we recommend you head over to either the Youtube tutorial series or to the wiki!

Credits

Massive shoutouts go to all the contributors actively working on the project together to form a fantastic integrated workflow:

  • mrossinek - for basically being my second brain when it comes to developing new features and adding new syntax elements
  • danymat - for creating the excellent foundations for the up and coming GTD system

And an extra thank you to:

  • Binx - for making that gorgeous logo for free!
  • bandithedoge - for converting the PNG version of the logo into SVG form

Support

Love what I do? Want to see more get done faster? Want to support future projects? Any sort of support is always heartwarming and fuels the urge to keep going :heart:. You can show support here:

Immense thank you to all of the sponsors of my work!

vsedov   skbolton   molleweide   danymat   purepani   jgregoire   bottd   DingDean   kvodenicharov