diff --git a/init.lua b/init.lua index 29eda94..801b743 100644 --- a/init.lua +++ b/init.lua @@ -18,11 +18,12 @@ vim.api.nvim_create_autocmd('User', { callback = function() vim.cmd 'colorscheme neogruber' require 'feline' - require 'flash' require 'config.mappings' require 'config.autocmd' require 'nvim-treesitter' require 'dressing' + require 'NeoSwap' + require 'nvim-peekup' end, }) diff --git a/lua/config/autocmd.lua b/lua/config/autocmd.lua index 6b9c62d..0d19917 100644 --- a/lua/config/autocmd.lua +++ b/lua/config/autocmd.lua @@ -10,8 +10,8 @@ vim.api.nvim_create_autocmd({ 'FileType' }, { pattern = { 'qf', 'help', 'man', 'lspinfo', 'spectre_panel', 'lir' }, callback = function() vim.cmd [[ - nnoremap q :close - set nobuflisted + nnoremap q :close + set nobuflisted ]] end, }) @@ -40,14 +40,14 @@ vim.api.nvim_create_autocmd({ 'TextYankPost' }, { end, }) -vim.api.nvim_create_augroup('diagnostics', { clear = true }) - -vim.api.nvim_create_autocmd({ 'DiagnosticChanged' }, { - group = 'diagnostics', - callback = function() - vim.diagnostic.setloclist { open = false } - end, -}) +-- vim.api.nvim_create_augroup('diagnostics', { clear = true }) +-- +-- vim.api.nvim_create_autocmd({ 'DiagnosticChanged' }, { +-- group = 'diagnostics', +-- callback = function() +-- vim.diagnostic.setloclist { open = false } +-- end, +-- }) -- resize splits if window got resized vim.api.nvim_create_autocmd({ 'VimResized' }, { @@ -73,3 +73,12 @@ vim.cmd [[ au ExitPre * :set guicursor=a:hor90 augroup END ]] + +function _G.set_terminal_keymaps() + local opts = { buffer = 0 } + vim.keymap.set('t', '', [[]], opts) + vim.keymap.set('t', '', [[]], opts) +end + +-- if you only want these mappings for toggle term use term://*toggleterm#* instead +vim.cmd('autocmd! TermOpen term://* lua set_terminal_keymaps()') diff --git a/lua/config/mappings.lua b/lua/config/mappings.lua index dab97ee..f8b4b5c 100644 --- a/lua/config/mappings.lua +++ b/lua/config/mappings.lua @@ -1,5 +1,8 @@ local opt = { noremap = true, silent = true } local keymap = vim.api.nvim_set_keymap + +keymap('n', '', 'silent! NeoSwapPrev', opt) +keymap('n', '', 'silent! NeoSwapNext', opt) -- TODO: Remove this keymap('n', '', 'Lazy profile', opt) -- resize {{{ @@ -11,6 +14,19 @@ keymap('n', '', 'vertical resize -2', opt) -- indent {{{ keymap('v', '<', '', '>gv', opt) +vim.cmd([[ +nnoremap :m .+1== +nnoremap :m .-2== +inoremap :m .+1==gi +inoremap :m .-2==gi +vnoremap :m '>+1gv=gv +vnoremap :m '<-2gv=gv +]]) + +keymap('n', 'Y', '"+y', opt) +keymap('v', 'Y', '"+y', opt) +keymap('n', '', '"+p', opt) +keymap('v', '', '"+p', opt) -- }}} -- open/close folds with enter key {{{ keymap('n', '', "@=(foldlevel('.')?'za':\"\")", opt) @@ -25,6 +41,23 @@ keymap('t', '', 'ToggleTerm direction=float', opt) keymap('v', '', 'ToggleTerm direction=float', opt) keymap('i', '', 'ToggleTerm direction=float', opt) -- }}} +-- trouble {{{ +vim.api.nvim_set_keymap('n', 'xl', 'TroubleToggle loclist', { silent = true, noremap = true }) +vim.api.nvim_set_keymap('n', 'xq', 'TroubleToggle quickfix', { silent = true, noremap = true }) +vim.api.nvim_set_keymap('n', 'xx', 'TroubleToggle', { silent = true, noremap = true }) +vim.api.nvim_set_keymap( + 'n', + 'xw', + 'TroubleToggle workspace_diagnostics', + { silent = true, noremap = true } +) +vim.api.nvim_set_keymap( + 'n', + 'xd', + 'TroubleToggle document_diagnostics', + { silent = true, noremap = true } +) +-- }}} keymap('n', '', ':', { noremap = true }) keymap('n', ';', ':', { noremap = true }) @@ -251,6 +284,12 @@ local mappings = { v = { 'v', 'Vertical split' }, h = { 's', 'Horizontal split' }, }, + ['o'] = { + name = 'Neorg', + i = { 'Neorg index', 'Index' }, + n = { 'Neorg workspace notes', 'Notes' }, + t = { 'Neorg workspace todo', 'Todo' }, + } } -- }}} wk.register(mappings, opts) diff --git a/lua/config/settings.lua b/lua/config/settings.lua index c5727d5..0415b4c 100644 --- a/lua/config/settings.lua +++ b/lua/config/settings.lua @@ -4,6 +4,14 @@ local opt = vim.opt g.mapleader = ' ' g.tex_flavor = 'latex' g.c_syntax_for_h = true +vim.cmd([[ +let g:VM_leader = {'default': ',', 'visual': ',', 'buffer': ','} +let g:VM_maps = {} +let g:VM_custom_motions = {'n': 'j', 'l': 'i', 'e': 'k', 'i': 'l'} +let g:VM_maps['i'] = 'l' +let g:VM_maps['I'] = 'L' +let g:VM_mouse_mappings = 1 +]]) opt.termguicolors = true opt.mouse = 'nv' @@ -14,7 +22,7 @@ opt.showmode = false opt.undofile = true opt.updatetime = 300 opt.backup = false -opt.clipboard:prepend { 'unnamedplus' } +opt.clipboard:prepend { 'unnamedplus', 'unnamed' } opt.ignorecase = true opt.smartcase = true opt.sessionoptions = 'folds' @@ -24,7 +32,7 @@ opt.shortmess:append('I', 'W', 's') opt.iskeyword:prepend { '-' } opt.timeoutlen = 300 opt.fillchars = 'eob: ' -opt.cmdheight = 0 +opt.cmdheight = 1 opt.grepprg = 'rg --vimgrep --no-heading --smart-case --hidden' opt.grepformat = '%f:%l:%c:%m' diff --git a/lua/plugins/init.lua b/lua/plugins/init.lua index 70ba45c..971b3dd 100644 --- a/lua/plugins/init.lua +++ b/lua/plugins/init.lua @@ -1,45 +1,31 @@ return { - { - 'stevearc/dressing.nvim', - opts = {}, - -- lazy = false, - }, 'MunifTanjim/nui.nvim', 'folke/which-key.nvim', 'nvim-lua/plenary.nvim', -- 'mfussenegger/nvim-jdtls', 'simrat39/rust-tools.nvim', + { 'mg979/vim-visual-multi', event = 'VeryLazy' }, { 'rush-rs/tree-sitter-asm', ft = 'asm' }, - { 'jghauser/mkdir.nvim', lazy = false }, + { + 'gennaro-tedesco/nvim-peekup', + config = function() + local c = require 'nvim-peekup.config' + c.on_keystroke['delay'] = '' + c.on_keystroke['paste_reg'] = '+' + end + }, + { 'jghauser/mkdir.nvim', lazy = false }, + { + 'stevearc/dressing.nvim', + opts = {}, + -- lazy = false, + }, { url = 'https://git.filnar.com/fiplox/neogruber.git', -- dir = '~/dev/neogruber.nvim/', lazy = false, -- event = 'VeryLazy' }, - { - 'folke/flash.nvim', - -- event = 'VeryLazy', - ---@type Flash.Config - opts = {}, - keys = { - { - 's', - mode = { 'n', 'x', 'o' }, - function() - -- default options: exact mode, multi window, all directions, with a backdrop - require('flash').jump() - end, - }, - { - 'S', - mode = { 'o', 'x' }, - function() - require('flash').treesitter() - end, - }, - }, - }, { 'numToStr/Comment.nvim', -- event = 'VeryLazy', @@ -316,7 +302,7 @@ return { -- context_commentstring = { enable = true, config = { css = '// %s' } }, -- indent = {enable = true, disable = {"python", "html", "javascript"}}, -- TODO seems to be broken - indent = { enable = false, disable = { 'python', 'css' } }, + indent = { enable = true, disable = { 'python', 'css' } }, -- autotag = { enable = true }, } end, @@ -369,4 +355,8 @@ return { } end, }, + { + "ecthelionvi/NeoSwap.nvim", + opts = {} + }, }