7.5 KiB
Neorg Guide: Organized Note-Taking for Neovim
Neorg is a powerful tool for structured note-taking, project and task management, time tracking, and more, all within Neovim. This guide will help you get started with the basics and highlight advanced features.
Getting Started
To start using Neorg:
-
Make sure
luarocks
is installed on your system:sudo pacman -S luarocks # Or using yay if it's not in the main repos # yay -S luarocks
-
Create your first Neorg file:
:e notes.norg
-
Initialize your workspace directories if they don't exist:
mkdir -p ~/notes ~/work/notes ~/personal/notes ~/projects/notes
Key Concepts
Workspaces
Workspaces are directories where your Neorg files are stored. Your configuration includes:
notes
: Your general notes (~/notes)work
: Work-related notes (~/work/notes)personal
: Personal notes (~/personal/notes)projects
: Project-specific notes (~/projects/notes)
Keybinding Structure
All Neorg keybindings start with <Leader>n
(usually \n
or <Space>n
depending on your leader key) to avoid conflicts with your existing bindings.
Navigation & Workspaces
<Leader>nw
- Open workspace selector<Leader>nn
- Switch to notes workspace<Leader>nwp
- Switch to personal workspace<Leader>nl
- Return to last workspace
Journal
<Leader>nj
- Open today's journal<Leader>nyt
- Open yesterday's journal<Leader>ntm
- Open tomorrow's journal<Leader>nwd
- Go to day view in journal<Leader>nwm
- Go to month view in journal
Document Manipulation
<Leader>ntt
- Generate table of contents<Leader>ni
- Inject metadata<Leader>nm
- Update metadata<Leader>nc
- Toggle concealer<Leader>nil
- Insert link<Leader>nid
- Insert date
Export Commands
<Leader>nem
- Export to Markdown
Advanced List Manipulation
<Leader>nu
- Iterate to next list type (cycle through bullet types/numbers)<Leader>np
- Iterate to previous list type
Basic Syntax
* Heading 1
** Heading 2
*** Heading 3
- Unordered list
- Nested item
- More nesting
1. Ordered list
2. Second item
~ Definition list
Term 1 :: Definition 1
Term 2 :: Definition 2
~
( ) Undone task
(x) Completed task
(?) Pending task
(!) Important task
(-) Pending task
(=) Recurring task
(+) On hold task
`inline code`
@code lua
print("Hello from Neorg!")
@end
{https://github.com/nvim-neorg/neorg}[Link to Neorg]
> This is a quote
> It can span multiple lines
$ E = mc^2 $ -- Inline math
@math
f(x) = \int_{-\infty}^\infty
\hat f(\xi)\,e^{2 \pi i \xi x}
\,d\xi
@end
Command Reference
Common Commands
Command | Description |
---|---|
:Neorg workspace notes |
Switch to notes workspace |
:Neorg journal today |
Open today's journal |
:Neorg toc |
Generate a table of contents |
:Neorg export to-markdown |
Export current file to markdown |
:Neorg toggle-concealer |
Toggle the concealer on/off |
:Neorg return |
Return to the last workspace |
Advanced Commands
Command | Description |
---|---|
:Neorg inject-metadata |
Add metadata to current document |
:Neorg update-metadata |
Update document metadata |
:Neorg journal template |
Create/edit journal template |
:Neorg keybind all |
Show all available keybindings |
:Neorg modules list |
List all loaded modules |
:Neorg generate-workspace-summary |
Generate workspace summary |
Advanced Features
Journal Management
Your journal is configured with a flat structure in the ~/notes/journal
directory:
:Neorg journal today # Open today's journal
:Neorg journal yesterday # Open yesterday's journal
:Neorg journal tomorrow # Open tomorrow's journal
Use <Leader>nj
for quick access to today's journal.
Export Options
Export to different formats for sharing:
:Neorg export to-markdown " Basic markdown export
:Neorg export to-markdown all " Export with all extensions
The export includes version info with timestamps in the filename format.
Table of Contents
Generate and use a table of contents with <Leader>ntt
or :Neorg toc
.
The TOC is interactive - you can navigate to any section by selecting it.
Presenter Mode
Turn your notes into presentations:
:Neorg presenter start " Start presenter mode
Navigate slides with:
j/k
or arrow keys - Next/previous slideq
- Exit presenter
Tips for Best Experience
📌 Note: A comprehensive keybinding reference is available in the file:
/home/kali/.config/nvim/lua/custom/plugins/neorg_keymaps_reference.md
-
Create workspace directories before using them:
mkdir -p ~/notes ~/work/notes ~/personal/notes ~/projects/notes
-
Set conceallevel for a better visual experience:
:set conceallevel=2
-
Use the journal for daily notes and tracking with the
<Leader>nj
shortcut. -
Follow links by placing cursor on a link and pressing
<Enter>
. -
Export to other formats when needed to share your notes with
<Leader>nem
. -
Use folding to collapse and expand sections:
za
- Toggle fold under cursorzR
- Open all foldszM
- Close all folds
-
Use custom keybindings to streamline your workflow - all under the
<Leader>n
prefix. -
Check Neorg health if you encounter issues:
:checkhealth neorg
-
Use calendar navigation for journal entries:
:Neorg journal calendar
Navigate with arrow keys and press Enter on a date.
-
Create summaries of your notes:
:Neorg generate-summary
Advanced Document Structure
Metadata
Add metadata to documents for better organization:
@document.meta
title: Project Planning
description: Strategic planning document for Q3 2025
authors: [your_name]
categories: [planning, strategy]
created: 2025-06-09
version: 1.0
@end
Cross-Linking
Create links between your notes:
{:my-other-file:}[Link to another file]
{:my-other-file:*some-heading}[Link to specific heading]
{* My Heading}[Link to heading in current file]
Advanced Tasks
Track tasks with metadata:
(x) Completed task #project @tag <2025-06-01>
( ) Upcoming task #work @important <2025-06-15>
(!) Critical task with ^high^ priority
Code Execution
Some code blocks can be executed directly from Neorg:
@code lua runnable
print("Hello from Neorg!")
@end
Use <Leader>re
to run the code block under your cursor.
Customization
Your Neorg setup is configured with:
- Diamond icon preset for better visuals
- Custom keybindings under
<Leader>n
prefix - Four configured workspaces
- Enhanced journal capabilities
Refer to the full configuration in /home/kali/.config/nvim/lua/custom/plugins/neorg.lua
for more details.
:Neorg export to-markdown
## Compatibility
Neorg is designed to work alongside your existing Neovim setup without conflicts. All keymaps are scoped to `.norg` files to avoid conflicts with other plugins.
## Learning More
Visit the [Neorg Wiki](https://github.com/nvim-neorg/neorg/wiki) for comprehensive documentation on all modules and features.