barebone-nvim is meant to be the absolute bare minimum (in my opinion) of what you need to launch your own config. This configuration is mostly boilerplate code that you do not have to edit, you can when you get your bearings. Can also be used as a reference point if you wonder about any parts of the neovim config while getting started.
I tried making it with as much oversight as possible for newer users to see what
is what. Give it a try, open the init.lua
file and scroll through. Hopefully
this will give some more understanding in terms of adding your own later.
In our discord some users were having troubles understanding kickstart and I wanted to try to create something that would fill that spot between complete beginner and kickstart, have it act like a skeleton configuration to get people going. This is still a work in progress, thank you.
- Neovim stable or nightly -> check latest neovim releases.
- Lua-language-server (Recommend manual installation) -> The language server needs to be in PATH.
- Ripgrep, also recommend installing fzf
- A C compiler (zig for Windows)
git clone https://github.com/leet0rz/barebone-nvim ~/.config/nvim
git clone https://github.com/leet0rz/barebone-nvim $HOME\AppData\Local\nvim
Uncomment the following line under treesitter, inside the init.lua file:
-- require('nvim-treesitter.install').compilers = { "zig" }
Recommend using zig as a compiler for treesitter
You can also install zig via chocolatey:
choco install zig
- modified moonlight.nvim
- nvim-autopairs
- telescope.nvim
- oil.nvim
- bufferline.nvim
- nvim-treesitter
- lualine.nvim
- nvim-lspconfig and blink
0=============================================================================================0
Remaps:
0=============================================================================================0
Ctrl + s: Save file
Ctrl + k: Move up 1 page center screen
Ctrl + j: Move down 1 page and center screen
Alt + k: Move one or more lines up
Alt + J: Move one or more lines up
Space + +: Split right
Space + -: Split down
Space + h/j/k/l: Movement in the splits
Shift + Arrow keys: Resize splits
>: Indent selected text
<: Unindent selected text
Space + nh: Remove search highlight
Space + t: New buffer
Tab: Next Buffer
Shift + Tab: Previous buffer
Space + q: Quit buffer
0=============================================================================================0
Remaps for plugins:
0=============================================================================================0
Telescope:
Space + ff: Find files
Space + fg: Live grep
Oil:
Space + o: Run Oil
Enter: Open file/folder
-: Go to parent folder
Commenting:
': Comment/Uncomment one or more lines
Try adding a lua folder where your init.lua is, then create a new file and put
remaps in that file then require it from your init.lua. Basically removing all
the remap configuration, placing it in [THIS IS WHERE YOUR INIT.LUA IS]/lua/remaps.lua
and then placing the command require("remaps")
where your
remaps used to be.
This is a plugin and here is an example of how to add a new plugin, remember this goes inside of lazy, like this:
require("lazy").setup({
{
-- whatever the github repo tells you to copy and paste goes here usually.
},
})
Try adding a different colorscheme and use the vim.cmd call to change it to
something else. use /
and search for moonlight to see how its been setup in
init.lua
This would be considered lua's language server call and config. here is a list of supported language server via lspconfig's repo, look them up before trying to add a new server. Adding a new one would look something like this:
lspconfig.YOURSERVER.setup({
on_attach = custom_attach,
capabilities = capabilities
COPY PASTE SERVER SETTINGS HERE
})
Just make sure its within the confines lpsconfig's config = function()
and
end
. Remember "lspconfig" is a variable: local lspconfig = require('lspconfig')
, on_attach is usually self-defined options or rules you
would like to apply to that language server while capabilities is just
additional capabilities from each of the servers.
If you can think of a remap you would like, try adding a remap: Remember
vim.keymap.set
is in a variable as remap
just to make it easier to create
remaps. These are located beneath settings at the top of the init.lua
file.