add old nvim bindings

This commit is contained in:
Harry Anderson 2023-11-05 13:41:46 +11:00
parent 29c77cd7e5
commit f57c054aa0
5 changed files with 301 additions and 10 deletions

148
after/plugin/defaults.lua Normal file
View file

@ -0,0 +1,148 @@
-- Settings
vim.opt.relativenumber = true
-- The backspace key has slightly unintuitive behavior by default. For example,
-- by default, you can't backspace before the insertion point set with 'i'.
-- This configuration makes backspace behave more reasonably, in that you can
-- backspace over anything.
vim.opt.backspace = { 'indent', 'eol', 'start' }
-- By default, Vim doesn't let you hide a buffer (i.e. have a buffer that isn't
-- shown in any window) that has unsaved changes. This is to prevent you from
-- forgetting about unsaved changes and then quitting e.g. via `:qa!`. We find
-- hidden buffers helpful enough to disable this protection. See `:help hidden`
-- for more information on this.
vim.opt.hidden = true
-- This setting makes search case-insensitive when all characters in the string
-- being searched are lowercase. However, the search becomes case-sensitive if
-- it contains any capital letters. This makes searching more convenient.
vim.opt.ignorecase = true
vim.opt.smartcase = true
-- Enable searching as you type, rather than waiting till you press enter.
vim.opt.incsearch = true
-- Unbind some useless/annoying default key bindings.
-- 'Q' in normal mode enters Ex mode. You almost never want this.
vim.keymap.set('n', 'Q', '<Nop>', { noremap = true, silent = true })
-- Tab settings
vim.opt.tabstop = 4
vim.opt.softtabstop = 4
vim.opt.expandtab = true
-- Do smart autoindenting when starting a new line.
vim.opt.smartindent = true
vim.opt.shiftwidth = 4
-- Always block cursor
vim.opt.guicursor = ''
-- Disable highlighted search matches
vim.opt.hlsearch = false
-- Disable swapfiles
vim.opt.swapfile = false
-- undo settings
vim.opt.undodir = vim.fn.expand('$HOME') .. '/nvim/undo'
vim.opt.undofile = true
-- Enables 24-bit RGB color
vim.opt.termguicolors = true
-- Scroll settings
vim.opt.scrolloff = 8
-- Turn off -- INSERT -- message
vim.opt.showmode = false
-- Add column for hints to prevent gitter
vim.opt.signcolumn = 'yes'
-- Highlight current line of cursor
vim.opt.cursorline = true
-- Clipboard settings
-- ALWAYS use the clipboard for ALL operations (instead of interacting with
--the '+' and/or '*' registers explicitly)
-- vim.opt.clipboard = 'unnamedplus'
-- Wrappring settings
vim.opt.wrap = false
--global status line
vim.opt.laststatus = 3
-- Colorscheme
-- https://github.com/projekt0n/github-nvim-theme
require("github-theme").setup({
specs = {
all = {
diag = {
error = 'red',
hint = 'orange',
},
}
},
groups = {
all = {
StatusLine = {link = "Comment"},
Search = {link = "TSNote"},
TSField = {}
}
}
})
-- vim.cmd [[colorscheme github_dark_colorblind]]
vim.cmd.colorscheme('github_dark_colorblind')
-- Telescope config
-- mostly defaults pulled from the docs
local actions = require('telescope.actions')
require('telescope').setup{
defaults = {
-- Default configuration for telescope goes here:
-- config_key = value,
sorting_strategy = "ascending",
-- winblend = 30,
layout_config = {
horizontal = {
prompt_position = "top",
width = 0.95,
height = 0.95
}
},
mappings = {
i = {
-- map actions.which_key to <C-h> (default: <C-/>)
-- actions.which_key shows the mappings for your picker,
-- e.g. git_{create, delete, ...}_branch for the git_branches picker
["<C-y>"] = actions.select_default,
}
}
},
extensions = {
fzf = {
fuzzy = true, -- false will only do exact matching
override_generic_sorter = false, -- override the generic sorter
override_file_sorter = true, -- override the file sorter
case_mode = "smart_case", -- or "ignore_case" or "respect_case"
-- the default case_mode is "smart_case"
}
},
}
-- require('telescope').load_extension('fzf')
-- require('telescope').load_extension('dap')
-- Emmet
-- C-y + ,
vim.g.user_emmet_mode = 'n'
vim.g.user_emmet_leader_key = ','
vim.g.user_emmet_settings = {
typescript = {
extends = 'jsx',
},
typescriptreact = {
extends = 'jsx',
}
}
vim.g.neoformat_try_node_exe = 1
-- -- Show diagnostic popup on cursor hover
-- vim.g.updatetime = 300
-- vim.cmd [[autocmd CursorHold * lua vim.diagnostic.open_float()]]
--
-- Rust format on save
vim.g.rustfmt_autosave = 1
-- Filetype detection
vim.cmd('filetype plugin indent on')

95
after/plugin/keymaps.lua Normal file
View file

@ -0,0 +1,95 @@
local opts = { noremap = true, silent = true }
-- Keymaps
-- Paste over selection
vim.keymap.set('v', '<leader>p', '"_dP', opts)
-- Y copy from cursor to end of line
vim.keymap.set('n', 'Y', 'y$', opts)
-- Keep cursor centered when scrolling search matches
vim.keymap.set('n', 'n', 'nzzzv', opts)
vim.keymap.set('n', 'N', 'Nzzzv', opts)
vim.keymap.set('n', 'J', 'mzJ`z', opts)
-- Undo breakpoints
vim.keymap.set('i', ',', ',<c-g>u', opts)
vim.keymap.set('i', '.', '.<c-g>u', opts)
vim.keymap.set('i', '!', '!<c-g>u', opts)
vim.keymap.set('i', '?', '?<c-g>u', opts)
-- Jumplist mutations
vim.keymap.set('n', '<expr> k', '(v:count > 5 ? "m\'" . v:count : "") . \'k\'', opts)
vim.keymap.set('n', '<expr> j', '(v:count > 5 ? "m\'" . v:count : "") . \'j\'', opts)
-- Moving text
vim.keymap.set('v', 'J', ':m \'>+1<CR>gv=gv', opts)
vim.keymap.set('v', 'K', ':m \'>-2<CR>gv=gv', opts)
vim.keymap.set('n', '<leader>j', ':m .+1<CR>==', opts)
vim.keymap.set('n', '<leader>k', ':m .-2<CR>==', opts)
vim.keymap.set('n', '<space>ft', '<cmd>:Format<CR>', opts)
-- GIT
-- Fugitive git bindings
vim.keymap.set('n', '<leader>ga', ':Git add %:p<CR><CR>', opts)
vim.keymap.set('n', '<leader>gs', ':Git<CR>', opts)
vim.keymap.set('n', '<leader>gc', ':Git commit -v -q<CR>', opts)
vim.keymap.set('n', '<leader>gt', ':Git commit -v -q %:p<CR>', opts)
vim.keymap.set('n', '<leader>d', ':Gdiff<CR>', opts)
vim.keymap.set('n', '<leader>dm', ':Gdiffsplit!<CR>', opts)
vim.keymap.set('n', '<leader>ge', ':Gedit<CR>', opts)
vim.keymap.set('n', '<leader>gr', ':Gread<CR>', opts)
vim.keymap.set('n', '<leader>gw', ':Gwrite<CR><CR>', opts)
vim.keymap.set('n', '<leader>gl', ':silent! Glog<CR>:bot copen<CR>', opts)
vim.keymap.set('n', '<leader>gp', ':Ggrep<space>', opts)
vim.keymap.set('n', '<leader>gm', ':Gmove<space>', opts)
vim.keymap.set('n', '<leader>gb', ':Git branch<Space>', opts)
vim.keymap.set('n', '<leader>go', ':Git checkout<Space>', opts)
vim.keymap.set('n', '<leader>gps', ':Git push<CR>', opts)
vim.keymap.set('n', '<leader>gpl', ':Dispatch! git pull<CR>', opts)
-- Interactive merge conflict SPAVE-mv to trigger from git status menu
vim.keymap.set('n', '<leader>gj', ':diffget //3<Space>', opts)
vim.keymap.set('n', '<leader>gf', ':diffget //2<Space>', opts)
-- TELESCOPE
vim.keymap.set('n', '<leader>rg', require('telescope.builtin').live_grep, opts)
vim.keymap.set('n', '<leader>pw', require('telescope.builtin').grep_string, opts)
vim.keymap.set('n', '<leader>pf', require('telescope.builtin').find_files, opts)
vim.keymap.set('n', '<leader>pg', require('telescope.builtin').git_files, opts)
vim.keymap.set('n', '<leader>pb', require('telescope.builtin').buffers, opts)
vim.keymap.set('n', '<leader>m', require('telescope.builtin').man_pages, opts)
vim.keymap.set('n', '<leader>pc', require('telescope.builtin').current_buffer_fuzzy_find, opts)
vim.keymap.set('n', '<leader>tg', require('telescope.builtin').live_grep, opts)
vim.keymap.set('n', '<leader>gl', require('telescope.builtin').git_bcommits, opts)
vim.keymap.set('n', '<leader>gk', require('telescope.builtin').git_commits, opts)
-- kenesis
vim.keymap.set('n', '<leader>th', require('telescope.builtin').grep_string, opts)
vim.keymap.set('n', '<leader>tj', require('telescope.builtin').find_files, opts)
vim.keymap.set('n', '<leader>tk', require('telescope.builtin').git_files, opts)
vim.keymap.set('n', '<leader>tm', require('telescope.builtin').buffers, opts)
vim.keymap.set('n', '<leader>t;', require('telescope.builtin').help_tags, opts)
vim.keymap.set('n', '<leader>tl', require('telescope.builtin').current_buffer_fuzzy_find, opts)
-- for debugger
-- vim.keymap.set('n', '<Leader>tp', '<Cmd>:Telescope dap list_breakpoints<CR>', opts)
-- vim.keymap.set('n', '<Leader>tc', '<Cmd>:Telescope dap commands<CR>', opts)
-- Harpoon
vim.keymap.set('n', '<space>ha', '<cmd>lua require("harpoon.mark").add_file()<CR>', opts)
vim.keymap.set('n', '<space>hj', '<cmd>lua require("harpoon.ui").toggle_quick_menu()<CR>', opts)
vim.keymap.set('n', '<space>hn', '<cmd>lua require("harpoon.ui").nav_next()<CR>', opts)
vim.keymap.set('n', '<space>hp', '<cmd>lua require("harpoon.ui").nav_prev()<CR>', opts)
vim.keymap.set('n', '<space>h1', '<cmd>lua require("harpoon.ui").nav_file(1)<CR>', opts)
vim.keymap.set('n', '<space>h2', '<cmd>lua require("harpoon.ui").nav_file(2)<CR>', opts)
vim.keymap.set('n', '<space>h3', '<cmd>lua require("harpoon.ui").nav_file(3)<CR>', opts)
vim.keymap.set('n', '<space>h4', '<cmd>lua require("harpoon.ui").nav_file(4)<CR>', opts)
vim.keymap.set('n', '<space>sn', '<cmd>:PackerSync<CR>', opts)
-- DEBUG
vim.keymap.set('n', '<F5>', '<Cmd>lua require("dap").continue()<CR>', opts)
vim.keymap.set('n', '<F10>', '<Cmd>lua require("dap").step_over()<CR>', opts)
vim.keymap.set('n', '<F11>', '<Cmd>lua require("dap").step_into()<CR>', opts)
vim.keymap.set('n', '<F12>', '<Cmd>lua require("dap").step_out()<CR>', opts)
vim.keymap.set('n', '<Leader>b', '<Cmd>lua require("dap").toggle_breakpoint()<CR>', opts)
vim.keymap.set('n', '<Leader>B', '<Cmd>lua require("dap").set_breakpoint(vim.fn.input("Breakpoint condition: "))<CR>', opts)
vim.keymap.set('n', '<Leader>lp', '<Cmd>lua require("dap").set_breakpoint(nil, nil, vim.fn.input("Log point message: "))<CR>', opts)
vim.keymap.set('n', '<Leader>dr', '<Cmd>lua require("dap").repl.open()<CR>', opts)
vim.keymap.set('n', '<Leader>dl', '<Cmd>lua require("dap").run_last()<CR>', opts)
vim.keymap.set('n', '<Leader>dc', '<Cmd>lua require("dapui").close()<CR>', opts)
--unbinds
-- vim.keymap.set('n', 'b', '<Nop>', opts)