res/wiki/static/Kickstart.md
Get up and running with Neorg even with zero Neovim knowledge.
</div>To use this configuration, a set of prerequisites must be fulfilled beforehand.
git --version.brew install luarocks.apk: sudo apk add luarocks wgetapt: sudo apt install luarocksdnf: sudo dnf install luarockspacman: sudo pacman -Syu luarocksIf you have any issues like bold/italic not rendering or highlights being improperly applied I encourage you to check out the dependencies document which explains troubleshooting steps for different kinds of terminals.
With that, let's begin!
Open up a Neovim instance and run the following command: :echo stdpath("config").
This will return the path where Neovim expects your init.lua to exist.
Navigate to that directory (create it if it doesn't exist) and create a file
called init.lua there. On Linux this will likely be ~/.config/nvim/init.lua.
Put the following into the init.lua file:
-- Bootstrap lazy.nvim
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not (vim.uv or vim.loop).fs_stat(lazypath) then
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
if vim.v.shell_error ~= 0 then
vim.api.nvim_echo({
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" },
{ out, "WarningMsg" },
{ "\nPress any key to exit..." },
}, true, {})
vim.fn.getchar()
os.exit(1)
end
end
vim.opt.rtp:prepend(lazypath)
-- Set up both the traditional leader (for keymaps) as well as the local leader (for norg files)
vim.g.mapleader = " "
vim.g.maplocalleader = ","
-- Setup lazy.nvim
require("lazy").setup({
spec = {
{
"rebelot/kanagawa.nvim", -- neorg needs a colorscheme with treesitter support
config = function()
vim.cmd.colorscheme("kanagawa")
end,
},
{
"nvim-treesitter/nvim-treesitter",
version = "0.9.3", -- the last supported version
build = ":TSUpdate",
opts = {
ensure_installed = { "c", "lua", "vim", "vimdoc", "query" },
highlight = { enable = true },
},
config = function(_, opts)
require("nvim-treesitter.configs").setup(opts)
end,
},
{
"nvim-neorg/neorg",
lazy = false,
version = "*",
config = function()
require("neorg").setup {
load = {
["core.defaults"] = {},
["core.concealer"] = {},
["core.dirman"] = {
config = {
workspaces = {
notes = "~/notes",
},
default_workspace = "notes",
},
},
},
}
vim.wo.foldlevel = 99
vim.wo.conceallevel = 2
end,
},
},
})
Close and reopen Neovim. Everything should just work!
Open up any .norg file and start typing! You may see an initial error, just hit enter a few times, after
which Neorg should immediately fix itself.