summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorozpv <39195175+ozpv@users.noreply.github.com>2024-07-27 21:44:15 +0000
committerGitHub <noreply@github.com>2024-07-27 21:44:15 +0000
commitc110f7dedf1666db7b212ed470bae5d56a9b3874 (patch)
treec8b0bf8e15d4fcca8b55a767f7892a3e2b71458b
parent5876f2325d1977350bc6406deb86cecab0505f8d (diff)
begin nixvim
-rw-r--r--apps/neovim.nix75
1 files changed, 75 insertions, 0 deletions
diff --git a/apps/neovim.nix b/apps/neovim.nix
new file mode 100644
index 0000000..766d746
--- /dev/null
+++ b/apps/neovim.nix
@@ -0,0 +1,75 @@
+{ config, pkgs, ... }:
+{
+ programs.nixvim = {
+ enable = true;
+
+ keymaps = [
+ # Equivalent to nnoremap ; :
+ {
+ key = ";";
+ action = ":";
+ }
+
+ # Equivalent to nmap <silent> <buffer> <leader>gg <cmd>Man<CR>
+ {
+ key = "<leader>gg";
+ action = "<cmd>Man<CR>";
+ options = {
+ silent = true;
+ remap = false;
+ };
+ }
+ # Etc...
+ ];
+
+ # We can set the leader key:
+ globals.mapleader = " ";
+
+ # We can also set options:
+ opts = {
+ tabstop = 4;
+ shiftwidth = 4;
+ expandtab = false;
+
+ mouse = "a";
+
+ # etc...
+ };
+
+ plugins = {
+ lazy.enable = true;
+
+ telescope = {
+ enable = true;
+ keymaps = {
+ "<leader>ff" = "find_files";
+ "<leader>lg" = "live_grep";
+ };
+ };
+
+ lsp = {
+ enable = true;
+ servers = {
+ tsserver.enable = true;
+ lua-ls.enable = true;
+ bashls.enable = true;
+ html.enable = true;
+ pyright.enable = true;
+ jsonls.enable = true;
+ java-language-server.enable = true;
+ cmake.enable = true;
+ sqls.enable = true;
+ rust-analyzer = {
+ enable = true;
+ installRustc = true;
+ installCargo = true;
+ };
+ };
+ };
+ };
+
+ colorschemes.gruvbox.enable = true;
+
+ extraPlugins = with pkgs.vimPlugins; [ vim-toml ];
+ };
+}