mirror of
https://github.com/iofq/nvim.nix.git
synced 2026-01-23 08:55:16 -06:00
reorg
This commit is contained in:
parent
4c341f6650
commit
f6a92831f4
10 changed files with 290 additions and 43 deletions
7
config/init.lua
Executable file
7
config/init.lua
Executable file
|
|
@ -0,0 +1,7 @@
|
|||
require("blankline-conf")
|
||||
require("leap-conf")
|
||||
require("nvim-conf")
|
||||
require("nvim-treesitter-conf")
|
||||
require("plugins-conf")
|
||||
require("telescope-conf")
|
||||
require("toggleterm-conf")
|
||||
6
config/lua/blankline-conf.lua
Executable file
6
config/lua/blankline-conf.lua
Executable file
|
|
@ -0,0 +1,6 @@
|
|||
vim.cmd([[ hi IndentBlanklineChar ctermfg=240 ]])
|
||||
vim.cmd([[ hi IndentBlanklineContextChar ctermfg=7 ]])
|
||||
require("indent_blankline").setup {
|
||||
show_current_context = true,
|
||||
show_current_context_start = true,
|
||||
}
|
||||
5
config/lua/leap-conf.lua
Executable file
5
config/lua/leap-conf.lua
Executable file
|
|
@ -0,0 +1,5 @@
|
|||
local leap = require('leap')
|
||||
leap.set_default_keymaps()
|
||||
leap.init_highlight(true)
|
||||
vim.cmd([[ hi LeapLabelPrimary ctermbg=251 ctermfg=0 ]])
|
||||
|
||||
90
config/lua/nvim-conf.lua
Executable file
90
config/lua/nvim-conf.lua
Executable file
|
|
@ -0,0 +1,90 @@
|
|||
-- vim settings
|
||||
----------------------------------------
|
||||
vim.opt.autoindent = true
|
||||
vim.opt.background = "light"
|
||||
vim.opt.backspace = "indent,eol,start"
|
||||
vim.opt.backup = false -- and auto backps, to instead use
|
||||
vim.opt.breakindent = true
|
||||
vim.opt.clipboard = "unnamedplus" -- use system clipboard
|
||||
vim.opt.completeopt = "menuone"
|
||||
vim.opt.cursorline = true
|
||||
vim.opt.expandtab = true -- insert tabs as spaces
|
||||
vim.opt.guicursor = "" -- fixes alacritty changing cursor
|
||||
vim.opt.hidden = true -- dont save when switching buffers
|
||||
vim.opt.hlsearch = true
|
||||
vim.opt.ignorecase = true -- ignore case in searches
|
||||
vim.opt.inccommand = "split" -- incremental live completion
|
||||
vim.opt.incsearch = true
|
||||
vim.opt.laststatus = 1
|
||||
vim.opt.list = true
|
||||
vim.opt.listchars:append("trail:·")
|
||||
vim.opt.mouse = "a"
|
||||
vim.opt.nrformats:append("alpha") -- let Ctrl-a do letters as well
|
||||
vim.opt.number = true
|
||||
vim.opt.pastetoggle = "<F2>"
|
||||
vim.opt.path:append("**") -- enable fuzzy :find ing
|
||||
vim.opt.relativenumber = true
|
||||
vim.opt.shadafile = "NONE" -- disable shada
|
||||
vim.opt.shiftwidth = 0 -- >> shifts by tabstop
|
||||
vim.opt.showmatch = true -- highlight matching brackets
|
||||
vim.opt.signcolumn= "number"
|
||||
vim.opt.smartcase = true -- unless capital query
|
||||
vim.opt.smartindent = true -- indent according to lang
|
||||
vim.opt.softtabstop = -1 -- backspace removes tabstop
|
||||
vim.opt.splitbelow = true
|
||||
vim.opt.splitright = true
|
||||
vim.opt.swapfile = false -- disable swapfiles
|
||||
vim.opt.tabstop = 4 -- 4 space tabs
|
||||
vim.opt.undofile = true -- enable auto save of undos
|
||||
vim.opt.updatetime = 250 -- decrease update time
|
||||
vim.opt.virtualedit = "onemore"
|
||||
vim.opt.wildmenu = true
|
||||
|
||||
vim.g.netrw_banner = 0 -- disable annoying banner
|
||||
vim.g.netrw_altv = 1 -- open splits to the right
|
||||
vim.g.netrw_liststyle = 3 -- tree view
|
||||
vim.g.fzf_layout = { window = { width = 0.9, height = 0.6 } }
|
||||
vim.g.indent_blankline_use_treesitter = true
|
||||
|
||||
-- mappings
|
||||
----------------------------------------
|
||||
-- local func to set keybinds
|
||||
local remap = function(type, key, value)
|
||||
vim.api.nvim_set_keymap(type,key,value,{noremap = true, silent = true});
|
||||
end
|
||||
remap("i", "wq", "<esc>l")
|
||||
remap("v", "wq", "<esc>l")
|
||||
remap("n","gr", "gT")
|
||||
remap("i", "{<CR>", "{<CR>}<Esc>O")
|
||||
remap("i", "(<CR>", "(<CR>)<Esc>O")
|
||||
remap("n", "<C-L>", "<Cmd>nohlsearch<Bar>diffupdate<CR><C-L>")
|
||||
remap("n","n", "nzz")
|
||||
remap("n", "N", "Nzz")
|
||||
remap("n", "Y", "y$")
|
||||
remap("n","[<space>", ":<c-u>put!=repeat([''],v:count)<bar>']+1<cr>")
|
||||
remap("n","]<space>", ":<c-u>put =repeat([''],v:count)<bar>'[-1<cr><Esc>")
|
||||
|
||||
-- autocmd
|
||||
----------------------------------------
|
||||
local undopath = "~/.local/share/nvim/undo"
|
||||
vim.api.nvim_create_autocmd("VimEnter", {
|
||||
command = "silent !mkdir -p " .. undopath,
|
||||
group = vim.api.nvim_create_augroup("Init", {}),
|
||||
})
|
||||
|
||||
local toggle_rel_num = vim.api.nvim_create_augroup("ToggleRelNum", {})
|
||||
vim.api.nvim_create_autocmd("InsertEnter", {
|
||||
command = "set norelativenumber",
|
||||
group = toggle_rel_num,
|
||||
})
|
||||
vim.api.nvim_create_autocmd("InsertLeave", {
|
||||
command = "set relativenumber",
|
||||
group = toggle_rel_num,
|
||||
})
|
||||
vim.api.nvim_create_autocmd("TextYankPost", {
|
||||
callback = function()
|
||||
vim.highlight.on_yank({ higroup = "Visual" })
|
||||
end,
|
||||
group = vim.api.nvim_create_augroup("YankHighlight", {}),
|
||||
})
|
||||
|
||||
51
config/lua/nvim-treesitter-conf.lua
Executable file
51
config/lua/nvim-treesitter-conf.lua
Executable file
|
|
@ -0,0 +1,51 @@
|
|||
require("nvim-treesitter.configs").setup {
|
||||
ensure_installed = {},
|
||||
highlight = {
|
||||
enable = true,
|
||||
},
|
||||
indent = {
|
||||
enable = true,
|
||||
},
|
||||
textobjects = {
|
||||
select = {
|
||||
enable = true,
|
||||
lookahead = true,
|
||||
keymaps = {
|
||||
['ac'] = '@comment.outer',
|
||||
['ic'] = '@comment.inner',
|
||||
["af"] = "@function.outer",
|
||||
["if"] = "@function.inner",
|
||||
["aa"] = "@call.inner",
|
||||
},
|
||||
},
|
||||
move = {
|
||||
enable = true,
|
||||
set_jumps = true, -- whether to set jumps in the jumplist
|
||||
goto_next_start = {
|
||||
[']]'] = '@function.outer',
|
||||
[']m'] = '@class.outer',
|
||||
},
|
||||
goto_next_end = {
|
||||
[']['] = '@function.outer',
|
||||
[']M'] = '@class.outer',
|
||||
},
|
||||
goto_previous_start = {
|
||||
['[['] = '@function.outer',
|
||||
['[m'] = '@class.outer',
|
||||
},
|
||||
goto_previous_end = {
|
||||
['[]'] = '@function.outer',
|
||||
['[M'] = '@class.outer',
|
||||
},
|
||||
},
|
||||
},
|
||||
incremental_selection = {
|
||||
enable = true,
|
||||
keymaps = {
|
||||
init_selection = '<CR>',
|
||||
scope_incremental = '<CR>',
|
||||
node_incremental = '<TAB>',
|
||||
node_decremental = '<S-TAB>',
|
||||
},
|
||||
},
|
||||
}
|
||||
2
config/lua/plugins-conf.lua
Executable file
2
config/lua/plugins-conf.lua
Executable file
|
|
@ -0,0 +1,2 @@
|
|||
-- telescope
|
||||
----------------------------------------
|
||||
44
config/lua/telescope-conf.lua
Executable file
44
config/lua/telescope-conf.lua
Executable file
|
|
@ -0,0 +1,44 @@
|
|||
local telescope = require("telescope.builtin")
|
||||
vim.keymap.set("n", "<leader>fb", telescope.buffers, {noremap = true, silent = true})
|
||||
vim.keymap.set("n", "<leader>ff", telescope.find_files, {noremap = true, silent = true})
|
||||
vim.keymap.set("n", "<leader>fg", telescope.git_files, {noremap = true, silent = true})
|
||||
vim.keymap.set("n", "<leader>fv", telescope.command_history, {noremap = true, silent = true})
|
||||
vim.keymap.set("n", "<leader><leader>", telescope.live_grep, {noremap = true, silent = true})
|
||||
vim.keymap.set("n", "<leader>8", telescope.grep_string, {noremap = true, silent = true})
|
||||
vim.keymap.set("n", "<leader>fd", telescope.lsp_definitions, {noremap = true, silent = true})
|
||||
-- fix highlighting
|
||||
vim.cmd([[ hi telescopeselection ctermfg=242 ctermbg=252 ]])
|
||||
|
||||
require("telescope").setup({
|
||||
defaults = {
|
||||
layout_strategy = "vertical",
|
||||
layout_config = { width = .90, },
|
||||
vimgrep_arguments = {
|
||||
"rg",
|
||||
"--color=never",
|
||||
"--no-heading",
|
||||
"--hidden",
|
||||
"--with-filename",
|
||||
"--line-number",
|
||||
"--column",
|
||||
"--smart-case"
|
||||
},
|
||||
mappings = {
|
||||
i = {
|
||||
["<esc>"] = require("telescope.actions").close,
|
||||
["<C-k>"] = require("telescope.actions").move_selection_previous,
|
||||
["<C-j>"] = require("telescope.actions").move_selection_next,
|
||||
},
|
||||
},
|
||||
},
|
||||
pickers = {
|
||||
find_files = {
|
||||
hidden = true,
|
||||
find_command = { 'rg', '--files', '--iglob', '!.git', '--hidden' }
|
||||
},
|
||||
git_files = {
|
||||
hidden = true,
|
||||
find_command = { 'rg', '--files', '--iglob', '!.git', '--hidden' }
|
||||
},
|
||||
}
|
||||
})
|
||||
5
config/lua/toggleterm-conf.lua
Executable file
5
config/lua/toggleterm-conf.lua
Executable file
|
|
@ -0,0 +1,5 @@
|
|||
require("toggleterm").setup{
|
||||
open_mapping = [[<leader>t]],
|
||||
shade_terminals = true,
|
||||
size = vim.o.lines * 0.4
|
||||
}
|
||||
122
flake.nix
122
flake.nix
|
|
@ -10,49 +10,87 @@
|
|||
flake-utils,
|
||||
...
|
||||
}:
|
||||
flake-utils.lib.eachDefaultSystem (system: let
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
};
|
||||
flake-utils.lib.eachDefaultSystem (system: let
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
};
|
||||
|
||||
recursiveMerge = attrList: let
|
||||
f = attrPath:
|
||||
builtins.zipAttrsWith (n: values:
|
||||
if pkgs.lib.tail values == []
|
||||
then pkgs.lib.head values
|
||||
else if pkgs.lib.all pkgs.lib.isList values
|
||||
then pkgs.lib.unique (pkgs.lib.concatLists values)
|
||||
else if pkgs.lib.all pkgs.lib.isAttrs values
|
||||
then f (attrPath ++ [n]) values
|
||||
else pkgs.lib.last values);
|
||||
in
|
||||
f [] attrList;
|
||||
in rec {
|
||||
deps = with pkgs; [
|
||||
fzf
|
||||
];
|
||||
neovim-with-deps = recursiveMerge [
|
||||
pkgs.neovim-unwrapped
|
||||
{buildInputs = deps;}
|
||||
];
|
||||
packages.iofqvim = pkgs.wrapNeovim neovim-with-deps {
|
||||
viAlias = true;
|
||||
vimAlias = true;
|
||||
extraMakeWrapperArgs = ''--prefix PATH : "${pkgs.lib.makeBinPath deps}"'';
|
||||
configure = {
|
||||
plugins = with pkgs.vimPlugins; {
|
||||
plugs = with pkgs.vimPlugins; [
|
||||
recursiveMerge = attrList: let
|
||||
f = attrPath:
|
||||
builtins.zipAttrsWith (n: values:
|
||||
if pkgs.lib.tail values == []
|
||||
then pkgs.lib.head values
|
||||
else if pkgs.lib.all pkgs.lib.isList values
|
||||
then pkgs.lib.unique (pkgs.lib.concatLists values)
|
||||
else if pkgs.lib.all pkgs.lib.isAttrs values
|
||||
then f (attrPath ++ [n]) values
|
||||
else pkgs.lib.last values);
|
||||
in
|
||||
f [] attrList;
|
||||
in rec {
|
||||
deps = with pkgs; [
|
||||
bash
|
||||
fzf
|
||||
ripgrep
|
||||
gopls
|
||||
];
|
||||
neovim-with-deps = recursiveMerge [
|
||||
pkgs.neovim-unwrapped
|
||||
{buildInputs = deps;}
|
||||
];
|
||||
packages.iofqvim = pkgs.wrapNeovim neovim-with-deps {
|
||||
viAlias = true;
|
||||
vimAlias = true;
|
||||
extraMakeWrapperArgs = ''--prefix PATH : "${pkgs.lib.makeBinPath deps}"'';
|
||||
configure = {
|
||||
customRC =
|
||||
''
|
||||
lua << EOF
|
||||
package.path = "${self}/config/lua/?.lua;" .. package.path
|
||||
''
|
||||
+ pkgs.lib.readFile ./config/init.lua
|
||||
+ ''
|
||||
EOF
|
||||
'';
|
||||
packages.plugins = with pkgs.vimPlugins; {
|
||||
start = with pkgs.vimPlugins; [
|
||||
telescope-nvim
|
||||
];
|
||||
vim-commentary
|
||||
vim-surround
|
||||
toggleterm-nvim
|
||||
targets-vim
|
||||
indent-blankline-nvim
|
||||
vim-go
|
||||
vim-nix
|
||||
nvim-treesitter-textobjects
|
||||
leap-nvim
|
||||
(nvim-treesitter.withPlugins
|
||||
(
|
||||
plugins: with plugins; [
|
||||
tree-sitter-bash
|
||||
tree-sitter-c
|
||||
tree-sitter-dockerfile
|
||||
tree-sitter-go
|
||||
tree-sitter-javascript
|
||||
tree-sitter-json
|
||||
tree-sitter-lua
|
||||
tree-sitter-nix
|
||||
tree-sitter-php
|
||||
tree-sitter-python
|
||||
tree-sitter-yaml
|
||||
]
|
||||
)
|
||||
)
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
apps.iofqvim = flake-utils.lib.mkApp {
|
||||
drv = packages.iofqvim;
|
||||
name = "iofqvim";
|
||||
exePath = "/bin/nvim";
|
||||
};
|
||||
apps.default = apps.iofqvim;
|
||||
packages.default = packages.iofqvim;
|
||||
});
|
||||
}
|
||||
apps.iofqvim = flake-utils.lib.mkApp {
|
||||
drv = packages.iofqvim;
|
||||
name = "iofqvim";
|
||||
exePath = "/bin/nvim";
|
||||
};
|
||||
apps.default = apps.iofqvim;
|
||||
packages.default = packages.iofqvim;
|
||||
});
|
||||
}
|
||||
|
|
|
|||
1
result
1
result
|
|
@ -1 +0,0 @@
|
|||
/nix/store/vwg8csg6j9swzam3pwa6r391dpzqmmcd-neovim-0.9.0
|
||||
Loading…
Add table
Add a link
Reference in a new issue