start a new nvim config from scratch
This commit is contained in:
37
CHEATSHEET.md
Normal file
37
CHEATSHEET.md
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
# Neovim cheatsheet for this setup
|
||||||
|
|
||||||
|
|
||||||
|
## Save and exit
|
||||||
|
|
||||||
|
```vim
|
||||||
|
:w -- save file
|
||||||
|
w --
|
||||||
|
<leader>w --
|
||||||
|
|
||||||
|
:wq -- save and exit
|
||||||
|
<leader>wq --
|
||||||
|
|
||||||
|
:q -- exit without saving
|
||||||
|
<leader>q --
|
||||||
|
q --
|
||||||
|
|
||||||
|
:q! -- force to quit without saving
|
||||||
|
<leader>qq --
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## Buffer navigation
|
||||||
|
|
||||||
|
```vim
|
||||||
|
:e <file> -- open a file in a new buffer
|
||||||
|
<leader>e --
|
||||||
|
|
||||||
|
:ls -- list buffers
|
||||||
|
<leader>ls --
|
||||||
|
|
||||||
|
:bnext -- goto next buffer
|
||||||
|
<leader>f --
|
||||||
|
|
||||||
|
:bprevious -- goto previous buffer
|
||||||
|
<leader>d --
|
||||||
|
```
|
||||||
19
README.md
Normal file
19
README.md
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
# Basic neovim configuration
|
||||||
|
|
||||||
|
|
||||||
|
To open [CHEATSHEET.md](./CHEATSHEET.md): `<leader>h`.
|
||||||
|
To open [README.md](./README.md): `<leader>hr`
|
||||||
|
|
||||||
|
|
||||||
|
## Used package
|
||||||
|
|
||||||
|
- [x] kanagawa: color schema
|
||||||
|
- [x] oil: files manager
|
||||||
|
- [x] mini-statusline
|
||||||
|
|
||||||
|
## References
|
||||||
|
|
||||||
|
- https://www.youtube.com/watch?v=g1gyYttzxcI
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
8
lazy-lock.json
Normal file
8
lazy-lock.json
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"kanagawa.nvim": { "branch": "master", "commit": "aef7f5cec0a40dbe7f3304214850c472e2264b10" },
|
||||||
|
"lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" },
|
||||||
|
"mini.icons": { "branch": "main", "commit": "ff2e4f1d29f659cc2bad0f9256f2f6195c6b2428" },
|
||||||
|
"mini.statusline": { "branch": "main", "commit": "e331175f10d9f400b42523b3890841aba202ce16" },
|
||||||
|
"oil.nvim": { "branch": "master", "commit": "7e1cd7703ff2924d7038476dcbc04b950203b902" },
|
||||||
|
"vim-sleuth": { "branch": "master", "commit": "be69bff86754b1aa5adcbb527d7fcd1635a84080" }
|
||||||
|
}
|
||||||
55
lua/config/keymap.lua
Normal file
55
lua/config/keymap.lua
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
vim.keymap.set('n', "-", "<cmd>Oil --float<CR>", { desc ="Enter file explorer (Oil)" })
|
||||||
|
|
||||||
|
vim.keymap.set('n', "w", "<cmd>w<CR>", { desc = "Save" } )
|
||||||
|
vim.keymap.set('n', "<leader>w", "<cmd>w<CR>", { desc = "Save" } )
|
||||||
|
vim.keymap.set('n', "q", "<cmd>q<CR>", { desc = "Quit without saving" } )
|
||||||
|
vim.keymap.set('n', "<leader>q", "<cmd>q<CR>", { desc = "Quit without saving" } )
|
||||||
|
vim.keymap.set('n', "<leader>wq", "<cmd>wq<CR>", { desc = "Save and quit" } )
|
||||||
|
vim.keymap.set('n', "<leader>qq", "<cmd>q!<CR>", { desc = "Force to quit without saving" } )
|
||||||
|
|
||||||
|
|
||||||
|
-- todo: this is not robust... add autocompletion and verify that file exists
|
||||||
|
vim.keymap.set("n", "<leader>e", function()
|
||||||
|
local file_name = vim.fn.input("Open file: ")
|
||||||
|
if file_name ~= "" then
|
||||||
|
vim.cmd(":edit " .. file_name)
|
||||||
|
end
|
||||||
|
end, { desc = "edit a file"})
|
||||||
|
|
||||||
|
vim.keymap.set("n","<leader>ls", "<cmd>ls<CR>", { desc = "list buffers" })
|
||||||
|
vim.keymap.set("n","<leader>f", "<cmd>bnext<CR>", { desc = "goto next buffers" })
|
||||||
|
vim.keymap.set("n","<leader>d", "<cmd>bprevious<CR>", { desc = "goto previous buffers" })
|
||||||
|
vim.keymap.set("n","<leader>c", "<cmd>bd<CR>", { desc = "close buffers" })
|
||||||
|
|
||||||
|
vim.keymap.set("n", "<leader>h", function()
|
||||||
|
local config_path = vim.fn.stdpath('config')
|
||||||
|
local readme_path = config_path .. '/CHEATSHEET.md'
|
||||||
|
local buf = vim.fn.bufadd(readme_path)
|
||||||
|
vim.fn.bufload(buf)
|
||||||
|
local win = vim.api.nvim_open_win(buf, true, {
|
||||||
|
relative = 'editor',
|
||||||
|
width = 80,
|
||||||
|
height = 20,
|
||||||
|
col = (vim.o.columns - 80) / 2,
|
||||||
|
row = (vim.o.lines - 100) / 2,
|
||||||
|
style = 'minimal'
|
||||||
|
})
|
||||||
|
vim.api.nvim_win_set_option(win, 'number', false)
|
||||||
|
end, { desc = "Open CHEATSHEET.md"})
|
||||||
|
|
||||||
|
vim.keymap.set("n", "<leader>hr", function()
|
||||||
|
local config_path = vim.fn.stdpath('config')
|
||||||
|
local readme_path = config_path .. '/README.md'
|
||||||
|
local buf = vim.fn.bufadd(readme_path)
|
||||||
|
vim.fn.bufload(buf)
|
||||||
|
local win = vim.api.nvim_open_win(buf, true, {
|
||||||
|
relative = 'editor',
|
||||||
|
width = 80,
|
||||||
|
height = 20,
|
||||||
|
col = (vim.o.columns - 80) / 2,
|
||||||
|
row = (vim.o.lines - 100) / 2,
|
||||||
|
style = 'minimal'
|
||||||
|
})
|
||||||
|
vim.api.nvim_win_set_option(win, 'number', false)
|
||||||
|
end, { desc = "Open CHEATSHEET.md"})
|
||||||
|
|
||||||
38
lua/config/lazy.lua
Normal file
38
lua/config/lazy.lua
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
-- 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)
|
||||||
|
|
||||||
|
-- Make sure to setup `mapleader` and `maplocalleader` before
|
||||||
|
-- loading lazy.nvim so that mappings are correct.
|
||||||
|
-- This is also a good place to setup other settings (vim.opt)
|
||||||
|
vim.g.mapleader = " "
|
||||||
|
vim.g.maplocalleader = "\\"
|
||||||
|
|
||||||
|
-- Setup lazy.nvim
|
||||||
|
require("lazy").setup({
|
||||||
|
spec = {
|
||||||
|
-- import your plugins
|
||||||
|
{ import = "plugins" },
|
||||||
|
},
|
||||||
|
-- Configure any other settings here. See the documentation for more details.
|
||||||
|
-- colorscheme that will be used when installing plugins.
|
||||||
|
install = { colorscheme = { "kanagawa" } },
|
||||||
|
-- automatically check for plugin updates
|
||||||
|
checker = { enabled = true },
|
||||||
|
})
|
||||||
|
|
||||||
|
require("config.keymap")
|
||||||
|
require("config.options")
|
||||||
26
lua/config/options.lua
Normal file
26
lua/config/options.lua
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
vim.o.number = true -- show line numbers
|
||||||
|
vim.o.relativenumber = true -- show line numbers relative to current line
|
||||||
|
|
||||||
|
vim.o.ignorecase = true
|
||||||
|
vim.o.smartcase = true
|
||||||
|
|
||||||
|
|
||||||
|
-- use vim
|
||||||
|
--vim.o.expandtab = true -- convert tab to spaces
|
||||||
|
--vim.o.shiftwidth = 4
|
||||||
|
|
||||||
|
vim.o.cursorline = true
|
||||||
|
|
||||||
|
vim.o.undofile = true
|
||||||
|
|
||||||
|
vim.o.showmode = false
|
||||||
|
|
||||||
|
vim.o.signcolumn = "yes"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
vim.o.list = true
|
||||||
|
vim.opt.listchars = { tab = '» ', trail = '·', nbsp = '␣' }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
14
lua/plugins/kanagawa.lua
Normal file
14
lua/plugins/kanagawa.lua
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
return {
|
||||||
|
"rebelot/kanagawa.nvim", opt = {},
|
||||||
|
config = function()
|
||||||
|
require("kanagawa").setup({
|
||||||
|
compile = true,
|
||||||
|
|
||||||
|
transparent = true
|
||||||
|
});
|
||||||
|
vim.cmd("colorscheme kanagawa");
|
||||||
|
end,
|
||||||
|
build = function()
|
||||||
|
vim.cmd("KanagawaCompile"); -- this line fail at first install
|
||||||
|
end,
|
||||||
|
}
|
||||||
6
lua/plugins/mini-statusline.lua
Normal file
6
lua/plugins/mini-statusline.lua
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
return {
|
||||||
|
|
||||||
|
'nvim-mini/mini.statusline', version = "",
|
||||||
|
opts={},
|
||||||
|
|
||||||
|
}
|
||||||
11
lua/plugins/oil.lua
Normal file
11
lua/plugins/oil.lua
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
return {
|
||||||
|
'stevearc/oil.nvim',
|
||||||
|
---@module 'oil'
|
||||||
|
---@type oil.SetupOpts
|
||||||
|
opts = {},
|
||||||
|
-- Optional dependencies
|
||||||
|
dependencies = { { "nvim-mini/mini.icons", opts = {} } },
|
||||||
|
-- dependencies = { "nvim-tree/nvim-web-devicons" }, -- use if you prefer nvim-web-devicons
|
||||||
|
-- Lazy loading is not recommended because it is very tricky to make it work correctly in all situations.
|
||||||
|
lazy = false,
|
||||||
|
}
|
||||||
3
lua/plugins/sleuth.lua
Normal file
3
lua/plugins/sleuth.lua
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
return {
|
||||||
|
"tpope/vim-sleuth"
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user