add nvim config
This commit is contained in:
parent
a197579c4d
commit
e356b4fa8e
4 changed files with 103 additions and 1 deletions
|
@ -148,6 +148,7 @@
|
||||||
nixpkgs-fmt.enable = true;
|
nixpkgs-fmt.enable = true;
|
||||||
statix.enable = true;
|
statix.enable = true;
|
||||||
shellcheck.enable = true;
|
shellcheck.enable = true;
|
||||||
|
stylua.enable = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
./ssh.nix
|
./ssh.nix
|
||||||
./sway.nix
|
./sway.nix
|
||||||
./thunar.nix
|
./thunar.nix
|
||||||
./vim.nix
|
./nvim
|
||||||
./xmonad
|
./xmonad
|
||||||
./zathura.nix
|
./zathura.nix
|
||||||
./zsh.nix
|
./zsh.nix
|
||||||
|
|
|
@ -24,6 +24,19 @@ in
|
||||||
vimdiffAlias = true;
|
vimdiffAlias = true;
|
||||||
withNodeJs = true;
|
withNodeJs = true;
|
||||||
withPython3 = true;
|
withPython3 = true;
|
||||||
|
extraLuaConfig = builtins.readFile ./init.lua;
|
||||||
|
plugins = with pkgs.vimPlugins; [
|
||||||
|
catppuccin-nvim
|
||||||
|
dashboard-nvim
|
||||||
|
neogit
|
||||||
|
noice-nvim
|
||||||
|
nui-nvim # for noice-nvim
|
||||||
|
nvim-treesitter.withAllGrammars
|
||||||
|
nvim-web-devicons # for dashboard-nvim
|
||||||
|
plenary-nvim # for telescope, neogit
|
||||||
|
telescope-nvim
|
||||||
|
which-key-nvim
|
||||||
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
88
modules/programs/nvim/init.lua
Normal file
88
modules/programs/nvim/init.lua
Normal file
|
@ -0,0 +1,88 @@
|
||||||
|
vim.g.mapleader = " "
|
||||||
|
vim.g.maplocalleader = ","
|
||||||
|
|
||||||
|
-- FIX to create spell dir if not existent
|
||||||
|
local spelldir = vim.fn.stdpath("data") .. "/site/spell"
|
||||||
|
if not vim.loop.fs_stat(spelldir) then
|
||||||
|
vim.fn.mkdir(spelldir, "p")
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.opt.autoindent = true
|
||||||
|
vim.opt.backupdir = { vim.fn.stdpath("state") .. "/nvim/backup//" } -- don't store backup in files dir
|
||||||
|
vim.opt.clipboard = "unnamedplus" -- sync with system clipboard
|
||||||
|
vim.opt.conceallevel = 2
|
||||||
|
vim.opt.expandtab = true -- spaces instead of tabs
|
||||||
|
vim.opt.guifont = "Fira Code Nerd Font:h1"
|
||||||
|
vim.opt.ignorecase = true
|
||||||
|
vim.opt.mouse = "a" -- mouse for all modes
|
||||||
|
vim.opt.number = true
|
||||||
|
vim.opt.relativenumber = true
|
||||||
|
vim.opt.scrolloff = 4 -- lines of context
|
||||||
|
vim.opt.shiftround = true -- round indent
|
||||||
|
vim.opt.shiftwidth = 0 -- use tabstop value
|
||||||
|
vim.opt.shortmess:append({ c = true })
|
||||||
|
vim.opt.signcolumn = "yes"
|
||||||
|
vim.opt.smartcase = true
|
||||||
|
vim.opt.splitbelow = true
|
||||||
|
vim.opt.splitright = true
|
||||||
|
vim.opt.tabstop = 2
|
||||||
|
vim.opt.termguicolors = true
|
||||||
|
vim.opt.undofile = true
|
||||||
|
vim.opt.undolevels = 10000
|
||||||
|
vim.opt.updatetime = 300
|
||||||
|
vim.opt_local.spell = true
|
||||||
|
vim.opt_local.spelllang = { "en", "de_20" } -- all English regions and new German spelling
|
||||||
|
|
||||||
|
-- plugins
|
||||||
|
require("catppuccin").setup({
|
||||||
|
flavour = "macchiato",
|
||||||
|
})
|
||||||
|
vim.cmd.colorscheme("catppuccin")
|
||||||
|
|
||||||
|
vim.o.timeout = true
|
||||||
|
vim.o.timeoutlen = 300
|
||||||
|
local wk = require("which-key")
|
||||||
|
|
||||||
|
require("noice").setup({
|
||||||
|
lsp = {
|
||||||
|
-- override markdown rendering so that **cmp** and other plugins use **Treesitter**
|
||||||
|
override = {
|
||||||
|
["vim.lsp.util.convert_input_to_markdown_lines"] = true,
|
||||||
|
["vim.lsp.util.stylize_markdown"] = true,
|
||||||
|
["cmp.entry.get_documentation"] = true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
-- you can enable a preset for easier configuration
|
||||||
|
presets = {
|
||||||
|
bottom_search = true, -- use a classic bottom cmdline for search
|
||||||
|
command_palette = true, -- position the cmdline and popupmenu together
|
||||||
|
long_message_to_split = true, -- long messages will be sent to a split
|
||||||
|
inc_rename = false, -- enables an input dialog for inc-rename.nvim
|
||||||
|
lsp_doc_border = false, -- add a border to hover docs and signature help
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
wk.register({
|
||||||
|
f = {
|
||||||
|
name="find",
|
||||||
|
f = { "<cmd>Telescope find_files<cr>", "find file" },
|
||||||
|
g = { "<cmd>Telescope live_grep<cr>", "live grep" },
|
||||||
|
b = { "<cmd>Telescope buffers<cr>", "find buffer" },
|
||||||
|
},
|
||||||
|
}, { prefix = "<leader>" })
|
||||||
|
|
||||||
|
require("neogit").setup({
|
||||||
|
disable_commit_confirmation = true,
|
||||||
|
})
|
||||||
|
wk.register({
|
||||||
|
g = { "<cmd>Neogit<cr>", "git" }
|
||||||
|
}, { prefix = "<leader>"})
|
||||||
|
|
||||||
|
require("nvim-treesitter.configs").setup({
|
||||||
|
sync_install = false,
|
||||||
|
auto_install = false,
|
||||||
|
highlight = {
|
||||||
|
enable = true,
|
||||||
|
additional_vim_regex_highlighting = true,
|
||||||
|
},
|
||||||
|
})
|
Loading…
Reference in a new issue