nvim-neorg / neorg

Modernity meets insane extensibility. The future of organizing your life in Neovim.
GNU General Public License v3.0
6.08k stars 202 forks source link
lua neorg neovim neovim-plugin nvim org-mode organization
# Neorg - An Organized Future ![Neovim](https://img.shields.io/badge/Neovim%200.8+-brightgreen?style=for-the-badge) ![Discord](https://img.shields.io/badge/discord-join-7289da?style=for-the-badge&logo=discord) ![License](https://img.shields.io/badge/license-GPL%20v3-brightgreen?style=for-the-badge) ![Usage](https://dotfyle.com/plugins/nvim-neorg/neorg/shield?style=for-the-badge) Your New Life Organization Tool - All in Lua [Tutorial](#-tutorial) • [Roadmap](/ROADMAP.md) • [Installation](#-installation) • [Further Learning](#-further-learning)
[Credits](#credits) • [Support](#support)

**:warning: Neorg `8.0.0` has introduced some breaking changes! Please see [this blog post](https://vhyrro.github.io/posts/neorg-and-luarocks/) on how to migrate.** ## 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 :)

After you're done with the installation process, run :checkhealth neorg to see if everything's correct!

[!TIP] If you're having severe difficulties with installing 8.0.0, we encourage you to try the 7.0.0 version instead. You will not have all of the latest features but Neorg will continue to function there.

rocks.nvim

The recommended installation method 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: ```lua 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: ```lua 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

In order to install Neorg via lazy.nvim, you must take a few extra steps - this is because luarocks is a critical component for Neorg to function. See this blog for more information.

[!IMPORTANT] Using luarocks Neorg will install itself and these dependencies with their respective versions:

  • lua-utils.nvim
  • nvim-nio
  • nui.nvim
  • plenary.nvim
  • pathlib.nvim
Click for installation snippet. - Ensure you have [`vhyrro/luarocks.nvim`](https://github.com/vhyrro/luarocks.nvim) installed (**NOTE**: there are additional install steps in that README): ```lua { "vhyrro/luarocks.nvim", priority = 1000, config = true, } ``` - Add the following to your plugin list: ```lua { "nvim-neorg/neorg", dependencies = { "luarocks.nvim" }, 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. ```lua 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 supported 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:

And an extra thank you to:

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   theherk   purepani   tromars   jgregoire   bottd   DingDean   mtrajano