Some vim config
This commit is contained in:
parent
e4aac5da74
commit
a61dc3d12a
|
@ -1,6 +1,4 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
{ ... }: {
|
||||
imports = [
|
||||
./fish.nix
|
||||
./git.nix
|
||||
|
@ -10,6 +8,6 @@
|
|||
./ssh.nix
|
||||
./system.nix
|
||||
./users.nix
|
||||
./vim.nix
|
||||
./vim
|
||||
];
|
||||
}
|
||||
|
|
|
@ -1,30 +0,0 @@
|
|||
{ home-manager, pkgs, ... }: {
|
||||
home-manager.users.caspervk = {
|
||||
programs.neovim = {
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
viAlias = true;
|
||||
vimAlias = true;
|
||||
vimdiffAlias = true;
|
||||
plugins = with pkgs.vimPlugins; [
|
||||
vim-sleuth
|
||||
];
|
||||
extraPackages = with pkgs; [ ];
|
||||
extraConfig = ''
|
||||
set number
|
||||
set relativenumber
|
||||
|
||||
set scrolloff=3
|
||||
|
||||
set ignorecase
|
||||
set smartcase
|
||||
|
||||
set tabstop=4
|
||||
set softtabstop=4
|
||||
set shiftwidth=4
|
||||
set expandtab
|
||||
'';
|
||||
};
|
||||
};
|
||||
environment.variables.EDITOR = "vim";
|
||||
}
|
100
modules/base/vim/config.lua
Normal file
100
modules/base/vim/config.lua
Normal file
|
@ -0,0 +1,100 @@
|
|||
-- https://github.com/rebelot/kanagawa.nvim
|
||||
require('kanagawa').setup({
|
||||
undercurl = true,
|
||||
commentStyle = {italic = false},
|
||||
keywordStyle = {italic = false},
|
||||
theme = "dragon",
|
||||
background = {
|
||||
dark = "dragon",
|
||||
light = "lotus"
|
||||
}
|
||||
})
|
||||
|
||||
-- https://github.com/lukas-reineke/indent-blankline.nvim
|
||||
require('indent_blankline').setup({
|
||||
show_current_context = true,
|
||||
})
|
||||
|
||||
-- https://github.com/numToStr/Comment.nvim
|
||||
require("Comment").setup()
|
||||
|
||||
-- https://github.com/ggandor/leap.nvim/
|
||||
require("leap").add_default_mappings()
|
||||
|
||||
-- https://github.com/NvChad/nvim-colorizer.lua
|
||||
require('colorizer').setup({user_default_options = {names = false}})
|
||||
|
||||
-- https://github.com/nvim-treesitter/nvim-treesitter
|
||||
require('nvim-treesitter.configs').setup({
|
||||
highlight = {
|
||||
enable = true
|
||||
},
|
||||
refactor = {
|
||||
highlight_definitions = {
|
||||
enable = true,
|
||||
clear_on_cursor_move = true,
|
||||
},
|
||||
smart_rename = {
|
||||
enable = true,
|
||||
keymaps = {
|
||||
smart_rename = "grr"
|
||||
}
|
||||
},
|
||||
navigation = {
|
||||
enable = true,
|
||||
keymaps = {
|
||||
goto_definition = "gnd",
|
||||
list_definitions = "gnD",
|
||||
list_definitions_toc = "gO",
|
||||
goto_next_usage = "<a-*>",
|
||||
goto_previous_usage = "<a-#>",
|
||||
}
|
||||
},
|
||||
},
|
||||
incremental_selection = {
|
||||
enable = true,
|
||||
keymaps = {
|
||||
init_selection = "<C-space>",
|
||||
node_incremental = "<C-space>",
|
||||
node_decremental = "<C-M-space>",
|
||||
scope_incremental = false,
|
||||
}
|
||||
},
|
||||
matchup = {
|
||||
enable = true,
|
||||
},
|
||||
textobjects = {
|
||||
swap = {
|
||||
enable = true,
|
||||
swap_next = {["<leader>a"] = "@parameter.inner"},
|
||||
swap_previous = {["<leader>A"] = "@parameter.inner"}
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
-- https://github.com/nvim-treesitter/nvim-treesitter-context
|
||||
require('treesitter-context').setup({
|
||||
mode = "topline",
|
||||
})
|
||||
|
||||
|
||||
-- https://github.com/nvim-tree/nvim-tree.lua
|
||||
require("nvim-tree").setup({
|
||||
-- Automatically show tree from the project root
|
||||
-- https://github.com/ahmedkhalf/project.nvim
|
||||
sync_root_with_cwd = true,
|
||||
respect_buf_cwd = true,
|
||||
update_focused_file = {
|
||||
enable = true,
|
||||
update_root = true,
|
||||
},
|
||||
})
|
||||
|
||||
|
||||
-- https://github.com/ahmedkhalf/project.nvim
|
||||
require("project_nvim").setup()
|
||||
|
||||
|
||||
-- TODO
|
||||
require("nvim-dap-virtual-text").setup()
|
||||
|
44
modules/base/vim/config.vim
Normal file
44
modules/base/vim/config.vim
Normal file
|
@ -0,0 +1,44 @@
|
|||
" Colour scheme
|
||||
colorscheme kanagawa
|
||||
set termguicolors
|
||||
|
||||
" Show relative line numbers and highlight the current one
|
||||
set number
|
||||
set relativenumber
|
||||
set cursorline
|
||||
set cursorlineopt=number
|
||||
|
||||
" Keep some context above and below the cursor
|
||||
set scrolloff=5
|
||||
set sidescrolloff=3
|
||||
|
||||
" Tabs are spaces
|
||||
set tabstop=4
|
||||
set softtabstop=4
|
||||
set shiftwidth=4
|
||||
set expandtab
|
||||
|
||||
" Better search
|
||||
set ignorecase
|
||||
set smartcase
|
||||
|
||||
" Jump to new splits automatically
|
||||
set splitbelow
|
||||
set splitright
|
||||
|
||||
" Visualise trailing whitespace
|
||||
set list
|
||||
set listchars=trail:·,nbsp:␣
|
||||
|
||||
" Spelling
|
||||
set spell
|
||||
set spelllang=en_us,en_gb,da_dk
|
||||
|
||||
" Use space as leader key
|
||||
nnoremap <Space> <Nop>
|
||||
let mapleader = "\<Space>"
|
||||
|
||||
" Keep visual selection after indenting
|
||||
vnoremap > >gv
|
||||
vnoremap < <gv
|
||||
|
37
modules/base/vim/default.nix
Normal file
37
modules/base/vim/default.nix
Normal file
|
@ -0,0 +1,37 @@
|
|||
{ home-manager, pkgs, ... }: {
|
||||
home-manager.users.caspervk = {
|
||||
programs.neovim = {
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
viAlias = true;
|
||||
vimAlias = true;
|
||||
vimdiffAlias = true;
|
||||
|
||||
plugins = with pkgs.vimPlugins; [
|
||||
kanagawa-nvim # colorscheme
|
||||
vim-sleuth # automatic tab width
|
||||
vim-surround # surrounding textobjects
|
||||
indent-blankline-nvim # indentation guides
|
||||
comment-nvim # comment keybinds
|
||||
nvim-colorizer-lua # show colours in colours
|
||||
leap-nvim # mouse, but its a keyboard
|
||||
nvim-treesitter.withAllGrammars # code parser
|
||||
nvim-treesitter-refactor # treesitter highlights and refactor keybinds
|
||||
nvim-treesitter-textobjects # syntax-aware text objects
|
||||
nvim-treesitter-context # context at the top of the screen
|
||||
vim-matchup # better %
|
||||
nvim-tree-lua # file explorer
|
||||
nvim-web-devicons # file icons for nvim-tree
|
||||
project-nvim # project management; mostly for nvim-tree
|
||||
nvim-dap # debug adapter protocol
|
||||
nvim-dap-virtual-text # show variable values in-line
|
||||
];
|
||||
extraPackages = with pkgs; [ ];
|
||||
|
||||
extraConfig = builtins.readFile ./config.vim;
|
||||
extraLuaConfig = builtins.readFile ./config.lua;
|
||||
};
|
||||
};
|
||||
|
||||
environment.variables.EDITOR = "vim";
|
||||
}
|
Loading…
Reference in a new issue