before lunarvim

This commit is contained in:
Fernando Bueno 2023-07-02 00:30:19 -04:00
parent 6967424521
commit 70ab54c5d7
7 changed files with 323 additions and 5 deletions

107
lua/custom/core/keymaps.lua Normal file
View File

@ -0,0 +1,107 @@
-- set leader key to space
vim.g.mapleader = " "
local keymap = vim.keymap -- for conciseness
---------------------
-- General Keymaps
---------------------
-- use jk to exit insert mode
keymap.set("i", "jk", "<ESC>")
-- clear search highlights
keymap.set("n", "<leader>nh", ":nohl<CR>")
-- delete single character without copying into register
keymap.set("n", "x", '"_x')
-- increment/decrement numbers
keymap.set("n", "<leader>+", "<C-a>") -- increment
keymap.set("n", "<leader>-", "<C-x>") -- decrement
-- window management
keymap.set("n", "<leader>dv", "<C-w>v") -- split window vertically
keymap.set("n", "<leader>dh", "<C-w>s") -- split window horizontally
keymap.set("n", "<leader>de", "<C-w>=") -- make split windows equal width & height
keymap.set("n", "<leader>dx", ":close<CR>") -- close current split window
keymap.set("n", "<leader>to", ":tabnew<CR>") -- open new tab
keymap.set("n", "<leader>tx", ":tabclose<CR>") -- close current tab
keymap.set("n", "<leader>tn", ":tabn<CR>") -- go to next tab
keymap.set("n", "<leader>tp", ":tabp<CR>") -- go to previous tab
keymap.set('n', '<leader>dd', 'yyp') -- duplicate line
keymap.set('n', '<leader>l', 'yyp') -- duplicate line
keymap.set('n', 'dd', '"_dd') -- duplicate line not passing deleted line to registry
keymap.set('n', '<C-a>', 'ggVG') -- select-all
keymap.set('n', 'J', '5j')
keymap.set('n', 'K', '5k')
keymap.set('n', '<leader>rr', ':e!<CR>') -- revert file
keymap.set('n', '<leader>w', ':w<CR>') -- saves file
keymap.set('n', '<leader>q', ':q<CR>') -- quit
keymap.set('n', '<leader>zz', ':luafile %<CR>') -- re-source this
-- line highlight
vim.cmd[[ highlight LineHighlight ctermbg=darkgray guibg=black ]]
keymap.set("n", "<leader>q", ":call matchadd('LineHighlight', '\\%'.line('.').'l')<cr>" , { silent = true })
keymap.set("n", "<leader>!", ":call clearmatches()<cr>", { silent = true })
-- bookmarks
keymap.set('n', '#2', ':BookmarkNext<CR>')
keymap.set('n', '<C-F2>', ':BookmarkToggle<CR>')
----------------------
-- PLUGINS
-- vim-maximizer
keymap.set("n", "<leader>sm", ":MaximizerToggle<CR>") -- toggle split window maximization
-- nvim-tree
keymap.set("n", "<leader>e", ":NvimTreeToggle<CR>") -- toggle file explorer
-- telescope
keymap.set("n", "<leader>ff", "<cmd>Telescope find_files<cr>") -- find files within current working directory, respects .gitignore
keymap.set("n", "<leader>fs", "<cmd>Telescope live_grep<cr>") -- find string in current working directory as you type
keymap.set("n", "<leader>fc", "<cmd>Telescope grep_string<cr>") -- find string under cursor in current working directory
keymap.set("n", "<leader>fb", "<cmd>Telescope buffers<cr>") -- list open buffers in current neovim instance
keymap.set("n", "<leader>fh", "<cmd>Telescope help_tags<cr>") -- list available help tags
keymap.set("n", "<leader>t", "<cmd>Telescope vim_bookmarks current_file<cr>")
keymap.set("n", "<leader>tt", "<cmd>Telescope vim_bookmarks all<cr>")
-- telescope git commands (not on youtube nvim video)
keymap.set("n", "<leader>gc", "<cmd>Telescope git_commits<cr>") -- list all git commits (use <cr> to checkout) ["gc" for git commits]
keymap.set("n", "<leader>gfc", "<cmd>Telescope git_bcommits<cr>") -- list git commits for current file/buffer (use <cr> to checkout) ["gfc" for git file commits]
keymap.set("n", "<leader>gb", "<cmd>Telescope git_branches<cr>") -- list git branches (use <cr> to checkout) ["gb" for git branch]
keymap.set("n", "<leader>gs", "<cmd>Telescope git_status<cr>") -- list current changes per file with diff preview ["gs" for git status]
-- restart lsp server (not on youtube nvim video)
keymap.set("n", "<leader>rs", ":LspRestart<CR>") -- mapping to restart lsp if necessary
-- move
local opts = { noremap = true, silent = false }
-- Normal-mode commands
keymap.set('n', '<A-j>', ':MoveLine(1)<CR>', opts)
keymap.set('n', '<A-k>', ':MoveLine(-1)<CR>', opts)
keymap.set('n', '<A-h>', ':MoveHChar(-1)<CR>', opts)
keymap.set('n', '<A-l>', ':MoveHChar(1)<CR>', opts)
-- Visual-mode commands
keymap.set('v', '<A-j>', ':MoveBlock(1)<CR>', opts)
keymap.set('v', '<A-k>', ':MoveBlock(-1)<CR>', opts)
keymap.set('v', '<A-h>', ':MoveHBlock(-1)<CR>', opts)
keymap.set('v', '<A-l>', ':MoveHBlock(1)<CR>', opts)
-- Harpoon
keymap.set("n", "<leader>a", function() require("harpoon.mark").add_file() end, opts)
keymap.set("n", "<leader>h", function() require("harpoon.ui").toggle_quick_menu() end, opts)
keymap.set("n", "<leader>1", function() require("harpoon.ui").nav_file(1) end, opts)
keymap.set("n", "<leader>2", function() require("harpoon.ui").nav_file(2) end, opts)
keymap.set("n", "<leader>3", function() require("harpoon.ui").nav_file(3) end, opts)
keymap.set("n", "<leader>4", function() require("harpoon.ui").nav_file(4) end, opts)

View File

@ -0,0 +1,23 @@
local opt = vim.opt
opt.autoindent = true
opt.background = "dark"
opt.backspace = "indent,eol,start"
opt.clipboard:append("unnamedplus")
opt.cursorline = true
opt.expandtab = true
opt.ignorecase = true
opt.iskeyword:append("-")
opt.iskeyword:append("_")
opt.number = true
opt.relativenumber = true
opt.shiftwidth = 2
opt.signcolumn = "yes"
opt.smartcase = true
opt.splitbelow = true
opt.splitright = true
opt.tabstop = 2
opt.termguicolors = true
opt.wrap = false
opt.timeoutlen = 222

View File

@ -0,0 +1,30 @@
return {
"windwp/nvim-autopairs",
config = function()
require("nvim-autopairs").setup {
check_ts = true, -- enable treesitter
ts_config = {
lua = { "string" }, -- don't add pairs in lua string treesitter nodes
javascript = { "template_string" }, -- don't add pairs in javscript template_string treesitter nodes
java = false, -- don't check treesitter on java
},
}
-- make autopairs and completion work together
-- import nvim-autopairs completion functionality safely
local cmp_autopairs_setup, cmp_autopairs = pcall(require, "nvim-autopairs.completion.cmp")
if not cmp_autopairs_setup then
return
end
-- import nvim-cmp plugin safely (completions plugin)
local cmp_setup, cmp = pcall(require, "cmp")
if not cmp_setup then
return
end
-- make autopairs and completion work together
cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done())
end,
}

View File

@ -1,5 +1,28 @@
-- You can add your own plugins here or in other files in this directory!
-- I promise not to create any merge conflicts in this directory :)
--
-- See the kickstart.nvim README for more information
return {}
require("custom.core.keymaps")
require("custom.core.options")
return {
'nvim-lua/popup.nvim',
'christoomey/vim-tmux-navigator',
'szw/vim-maximizer', -- maximizes and restores current window
'tpope/vim-surround', -- add, delete, change surroundings (it's awesome)
'vim-scripts/ReplaceWithRegister', -- replace with register contents using motion (gr + motion)
'kyazdani42/nvim-web-devicons', -- vs-code like icons
'hrsh7th/cmp-buffer', -- source for text in buffer,
'hrsh7th/cmp-path', -- source for file system paths
'rafamadriz/friendly-snippets', -- useful snippets
{ "glepnir/lspsaga.nvim", branch = "main" }, -- enhanced lsp uis
'jose-elias-alvarez/typescript.nvim', -- additional functionality for typescript server (e.g. rename file & update imports)
'onsails/lspkind.nvim', -- vs-code like icons for autocompletion
'jose-elias-alvarez/null-ls.nvim', -- configure formatters & linters
'jayp0521/mason-null-ls.nvim', -- bridges gap b/w mason & null-ls
{ "windwp/nvim-ts-autotag", after = "nvim-treesitter" }, -- autoclose tags
'fedepujol/move.nvim', -- move line/block up/down
'ThePrimeagen/harpoon', -- the name is... ThePrimeagen
'MattesGroeger/vim-bookmarks', -- vim-bookmarks
'tom-anders/telescope-vim-bookmarks.nvim', -- telescope-vim-bookmarks
'tpope/vim-unimpaired', -- vim-unimpared
-- 'nvim-telescope/telescope-media-files.nvim',
'nvim-telescope/telescope-ui-select.nvim',
'nvim-telescope/telescope-file-browser.nvim',
}

View File

@ -0,0 +1,6 @@
return {
'ggandor/leap.nvim',
config = function()
require('leap').add_default_mappings()
end,
}

View File

@ -0,0 +1,19 @@
-- Unless you are still migrating, remove the deprecated commands from v1.x
vim.cmd([[ let g:neo_tree_remove_legacy_commands = 1 ]])
return {
"nvim-neo-tree/neo-tree.nvim",
version = "*",
dependencies = {
"nvim-lua/plenary.nvim",
-- "nvim-tree/nvim-web-devicons", -- not strictly required, but recommended
"MunifTanjim/nui.nvim",
},
keys = {
{ "<leader>o", ":Neotree toggle<cr>", desc = "NeoTree", silent = true },
},
config = function ()
require('neo-tree').setup {
}
end,
}

View File

@ -0,0 +1,110 @@
return {
'nvim-telescope/telescope.nvim',
version = '*',
dependencies = { 'nvim-lua/plenary.nvim' },
cmd = { 'Telescope' },
config = function()
local actions = require "telescope.actions"
require('telescope').setup {
defaults = {
path_display = { "smart" },
mappings = {
i = {
["<C-n>"] = actions.cycle_history_next,
["<C-p>"] = actions.cycle_history_prev,
["<C-j>"] = actions.move_selection_next,
["<C-k>"] = actions.move_selection_previous,
["<C-c>"] = actions.close,
["<Down>"] = actions.move_selection_next,
["<Up>"] = actions.move_selection_previous,
["<CR>"] = actions.select_default,
["<C-x>"] = actions.select_horizontal,
["<C-v>"] = actions.select_vertical,
["<C-t>"] = actions.select_tab,
["<C-u>"] = actions.preview_scrolling_up,
["<C-d>"] = actions.preview_scrolling_down,
["<PageUp>"] = actions.results_scrolling_up,
["<PageDown>"] = actions.results_scrolling_down,
["<Tab>"] = actions.toggle_selection + actions.move_selection_worse,
["<S-Tab>"] = actions.toggle_selection + actions.move_selection_better,
["<C-q>"] = actions.send_to_qflist + actions.open_qflist,
["<M-q>"] = actions.send_selected_to_qflist + actions.open_qflist,
["<C-l>"] = actions.complete_tag,
["<C-_>"] = actions.which_key, -- keys from pressing <C-/>
},
n = {
["<esc>"] = actions.close,
["<CR>"] = actions.select_default,
["<C-x>"] = actions.select_horizontal,
["<C-v>"] = actions.select_vertical,
["<C-t>"] = actions.select_tab,
["<Tab>"] = actions.toggle_selection + actions.move_selection_worse,
["<S-Tab>"] = actions.toggle_selection + actions.move_selection_better,
["<C-q>"] = actions.send_to_qflist + actions.open_qflist,
["<M-q>"] = actions.send_selected_to_qflist + actions.open_qflist,
["j"] = actions.move_selection_next,
["k"] = actions.move_selection_previous,
["H"] = actions.move_to_top,
["M"] = actions.move_to_middle,
["L"] = actions.move_to_bottom,
["<Down>"] = actions.move_selection_next,
["<Up>"] = actions.move_selection_previous,
["gg"] = actions.move_to_top,
["G"] = actions.move_to_bottom,
["<C-u>"] = actions.preview_scrolling_up,
["<C-d>"] = actions.preview_scrolling_down,
["<PageUp>"] = actions.results_scrolling_up,
["<PageDown>"] = actions.results_scrolling_down,
["?"] = actions.which_key,
},
},
},
pickers = {
-- Default configuration for builtin pickers goes here:
-- picker_name = {
-- picker_config_key = value,
-- ...
-- }
-- Now the picker_config_key will be applied every time you call this
-- builtin picker
},
extensions = {
file_browser = {
-- theme = "ivy",
-- require("telescope.themes").get_dropdown {
-- previewer = false,
-- -- even more opts
-- },
mappings = {
["i"] = {
-- your custom insert mode mappings
},
["n"] = {
-- your custom normal mode mappings
},
},
},
["ui-select"] = {
require("telescope.themes").get_dropdown {
previewer = false,
-- even more opts
},
},
},
}
end,
}