before lunarvim
This commit is contained in:
parent
6967424521
commit
70ab54c5d7
|
@ -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)
|
||||
|
|
@ -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
|
||||
|
|
@ -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,
|
||||
}
|
|
@ -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',
|
||||
}
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
return {
|
||||
'ggandor/leap.nvim',
|
||||
config = function()
|
||||
require('leap').add_default_mappings()
|
||||
end,
|
||||
}
|
|
@ -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,
|
||||
}
|
|
@ -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,
|
||||
}
|
Loading…
Reference in New Issue