diff --git a/modules/hm/vim.nix b/modules/hm/vim.nix index bf7c737..6c3b611 100644 --- a/modules/hm/vim.nix +++ b/modules/hm/vim.nix @@ -41,19 +41,19 @@ let vp = pkgs.vimPlugins; in { # Better UI for input and selection vp.dressing-nvim - # Tree view - { - plugin = vp.chadtree; - type = "lua"; - config = '' - local chadtree = require("chadtree") - - local chadtree_settings = { } - vim.api.nvim_set_var("chadtree_settings", chadtree_settings) - - vim.keymap.set({ "n", "v" }, "v", "CHADopen", { desc = "Toggle file tree" }) - ''; - } + # # Tree view + # { + # plugin = vp.chadtree; + # type = "lua"; + # config = '' + # local chadtree = require("chadtree") + # + # local chadtree_settings = { } + # vim.api.nvim_set_var("chadtree_settings", chadtree_settings) + # + # vim.keymap.set({ "n", "v" }, "v", "CHADopen", { desc = "Toggle file tree" }) + # ''; + # } vp.cmp-buffer # source for text in buffer vp.cmp-path # source for file system path @@ -96,99 +96,6 @@ let vp = pkgs.vimPlugins; in { config = builtins.readFile ./nvim/nvim-lspconfig-config.lua; } - # # Autocompletion - # ## Snippet engine & its associated nvim-cmp source - # vp.luasnip - # vp.cmp_luasnip - # ## Adds LSP completion capabilities - # vp.cmp-nvim-lsp - # vp.cmp-path - # ## Adds a number of user-friendly snippets - # vp.friendly-snippets - # ## NVIM CMP - # vp.nvim-cmp - - # # Useful plugin to show you pending keybinds - # { plugin = vp.which-key-nvim; config = ''require("which-key").setup({})''; type = "lua"; } - - # Adds git related signs to the gutter, as well as utilities for managing changes - # { - # plugin = vp.gitsigns-nvim; - # config = '' - # require("gitsigns").setup({ - # -- See `:help gitsigns.txt` - # signs = { - # add = { text = '+' }, - # change = { text = '~' }, - # delete = { text = '_' }, - # topdelete = { text = '‾' }, - # changedelete = { text = '~' }, - # }, - # on_attach = function(bufnr) - # local gs = package.loaded.gitsigns - - # local function map(mode, l, r, opts) - # opts = opts or {} - # opts.buffer = bufnr - # vim.keymap.set(mode, l, r, opts) - # end - - # -- Navigation - # map({ 'n', 'v' }, ']c', function() - # if vim.wo.diff then - # return ']c' - # end - # vim.schedule(function() - # gs.next_hunk() - # end) - # return '' - # end, { expr = true, desc = 'Jump to next hunk' }) - - # map({ 'n', 'v' }, '[c', function() - # if vim.wo.diff then - # return '[c' - # end - # vim.schedule(function() - # gs.prev_hunk() - # end) - # return '' - # end, { expr = true, desc = 'Jump to previous hunk' }) - - # -- Actions - # -- visual mode - # map('v', 'hs', function() - # gs.stage_hunk { vim.fn.line '.', vim.fn.line 'v' } - # end, { desc = 'stage git hunk' }) - # map('v', 'hr', function() - # gs.reset_hunk { vim.fn.line '.', vim.fn.line 'v' } - # end, { desc = 'reset git hunk' }) - # -- normal mode - # map('n', 'hs', gs.stage_hunk, { desc = 'git stage hunk' }) - # map('n', 'hr', gs.reset_hunk, { desc = 'git reset hunk' }) - # map('n', 'hS', gs.stage_buffer, { desc = 'git Stage buffer' }) - # map('n', 'hu', gs.undo_stage_hunk, { desc = 'undo stage hunk' }) - # map('n', 'hR', gs.reset_buffer, { desc = 'git Reset buffer' }) - # map('n', 'hp', gs.preview_hunk, { desc = 'preview git hunk' }) - # map('n', 'hb', function() - # gs.blame_line { full = false } - # end, { desc = 'git blame line' }) - # map('n', 'hd', gs.diffthis, { desc = 'git diff against index' }) - # map('n', 'hD', function() - # gs.diffthis '~' - # end, { desc = 'git diff against last commit' }) - - # -- Toggles - # map('n', 'tb', gs.toggle_current_line_blame, { desc = 'toggle git blame line' }) - # map('n', 'td', gs.toggle_deleted, { desc = 'toggle git show deleted' }) - - # -- Text object - # map({ 'o', 'x' }, 'ih', ':Gitsigns select_hunk', { desc = 'select git hunk' }) - # end, - # }) - # ''; - # type = "lua"; - # } - # Cool color scheme { plugin = vp.nightfox-nvim; @@ -230,10 +137,6 @@ let vp = pkgs.vimPlugins; in { type = "lua"; } - # vp.plenary-nvim - # vp.telescope-fzf-native-nvim - # vp.telescope-nvim - # vp.nvim-treesitter-textobjects # vp.nvim-treesitter @@ -272,14 +175,64 @@ let vp = pkgs.vimPlugins; in { ]; # settings = { ignorecase = true; }; # coc.enable = true; - extraConfig = '' - set mouse=a - set encoding=UTF-8 - set guifont=FiraCode\ Nerd\ Font\ Mono\ 10 - let g:airline_powerline_fonts = 1 - ''; + # extraConfig = '' + # let g:airline_powerline_fonts = 1 + # ''; extraLuaConfig = '' - vim.g.mapleader = " " + -- Setup + local o = vim.o + local g = vim.g + local opt = vim.opt + + -- Font + o.guifont = "FiraCode Nerd Font Mono 10" + + -- Status bar + o.laststatus = 3 + o.showmode = false + + -- Clipboard + o.clipboard = "unnamedplus" + + -- Cursor + o.cursorline = true + o.cursorlineopt = "number" + + -- Indenting + o.expandtab = true + o.shiftwidth = 2 + o.smartindent = true + o.tabstop = 2 + o.softtabstop = 2 + + -- Search + o.ignorecase = true + o.smartcase = true + + -- Mouse + o.mouse = "a" + + -- Numbers + o.number = true + + -- disable nvim intro + -- opt.shortmess:append "sI" + + -- Symbols + o.signcolumn = "yes" + o.splitbelow = true + o.splitright = true + o.timeoutlen = 400 + o.undofile = true + + -- interval for writing swap file to disk, also used by gitsigns + o.updatetime = 250 + + -- go to previous/next line with h,l,left arrow and right arrow + -- when cursor reaches end/beginning of line + opt.whichwrap:append "<>[]hl" + + g.mapleader = " " ''; }; }