first
This commit is contained in:
21
lua/keymap.lua
Normal file
21
lua/keymap.lua
Normal file
@@ -0,0 +1,21 @@
|
||||
local M = {}
|
||||
|
||||
local function bind(op, outer_opts)
|
||||
outer_opts = outer_opts or {noremap = true}
|
||||
return function(lhs, rhs, opts)
|
||||
opts = vim.tbl_extend("force",
|
||||
outer_opts,
|
||||
opts or {}
|
||||
)
|
||||
vim.keymap.set(op, lhs, rhs, opts)
|
||||
end
|
||||
end
|
||||
|
||||
M.nmap = bind("n", {noremap = false})
|
||||
M.nnoremap = bind("n")
|
||||
M.vnoremap = bind("v")
|
||||
M.xnoremap = bind("x")
|
||||
M.inoremap = bind("i")
|
||||
M.tnoremap = bind("t")
|
||||
|
||||
return M
|
||||
85
lua/keys.lua
Normal file
85
lua/keys.lua
Normal file
@@ -0,0 +1,85 @@
|
||||
local nnoremap = require("keymap").nnoremap
|
||||
local xnoremap = require("keymap").xnoremap
|
||||
local inoremap = require("keymap").inoremap
|
||||
local vnoremap = require("keymap").vnoremap
|
||||
local tnoremap = require("keymap").tnoremap
|
||||
local nmap = require("keymap").nmap
|
||||
|
||||
vim.g.mapleader = ' '
|
||||
|
||||
nnoremap("<leader>pv", "<cmd>Ex<CR>")
|
||||
nnoremap("<leader>pk", "<cmd>PackerSync<CR>")
|
||||
nnoremap("<c-s>", "<cmd>w<CR>")
|
||||
nnoremap("<leader>w", "<cmd>bw<cr>")
|
||||
-- xnoremap("<leader>p", "\"_dP")
|
||||
|
||||
nnoremap("<leader>k", ":e ~/.config/nvim/lua/keys.lua<cr>")
|
||||
nnoremap("<leader>o", ":e ~/.config/nvim/lua/opts.lua<cr>")
|
||||
nnoremap("<leader>i", ":e ~/.config/nvim/init.lua<cr>")
|
||||
nnoremap("<leader>p", ":e ~/.config/nvim/lua/plug.lua<cr>")
|
||||
|
||||
-- FloaTerm configuration
|
||||
nmap("gt", ":FloatermNew --name=myfloat --height=0.8 --width=0.7 --autoclose=2 fish <CR> ")
|
||||
tnoremap("<c-c>", "<c-\\><c-n>:q<CR>")
|
||||
|
||||
-- save all and quit
|
||||
nnoremap("<leader>q", ":wa<cr>ZQ")
|
||||
|
||||
-- navigate buffers
|
||||
nnoremap("<c-h>", ":bp<cr>")
|
||||
nnoremap("<c-l>", ":bn<cr>")
|
||||
|
||||
-- clear highlights
|
||||
nnoremap("<c-e>", ":noh<cr>")
|
||||
|
||||
-- Telescope
|
||||
nnoremap("<leader>f", "<cmd>lua require('telescope.builtin').find_files()<cr>")
|
||||
nnoremap("<leader>g", "<cmd>lua require('telescope.builtin').live_grep()<cr>")
|
||||
nnoremap("<leader>b", "<cmd>lua require('telescope.builtin').buffers()<cr>")
|
||||
|
||||
-- nnoremap("<leader>t", "<cmd>Pytest file<cr>")
|
||||
-- nnoremap("<leader>tt", "<cmd>Pytest function<cr>")
|
||||
|
||||
-- source current file
|
||||
nnoremap("<leader>s", "<cmd>source<cr>")
|
||||
|
||||
nmap("<leader>l", ":call CocAction('diagnosticNext')<cr>")
|
||||
nmap("gd", ":call CocAction('jumpDefinition')<cr>")
|
||||
|
||||
-- In insert or command mode, move normally by using Ctrl
|
||||
inoremap("<C-h>", "<Left>")
|
||||
inoremap("<C-l>", "<Right>")
|
||||
|
||||
-- move selection
|
||||
nnoremap("<C-j>", ":m .+1<CR>==")
|
||||
nnoremap("<C-k>", ":m .-2<CR>==")
|
||||
inoremap("<C-j>", "<ESC>:m .+1<CR>==gi")
|
||||
inoremap("<C-k>", "<ESC>:m .-2<CR>==gi")
|
||||
vnoremap("<C-j>", ":m '>+1<CR>gv=gv")
|
||||
vnoremap("<C-k>", ":m '<-2<CR>gv=gv")
|
||||
|
||||
nnoremap("<Left>", "<cmd>echo 'No left for you!'<cr>")
|
||||
vnoremap("<Left>", "<cmd>echo 'No left for you!'<cr>")
|
||||
inoremap("<Left>", "<cmd>echo 'No left for you!'<cr>")
|
||||
nnoremap("<Right>", "<cmd>echo 'No right for you!'<cr>")
|
||||
vnoremap("<Right>", "<cmd>echo 'No right for you!'<cr>")
|
||||
inoremap("<Right>", "<cmd>echo 'No right for you!'<cr>")
|
||||
nnoremap("<Up>", "<cmd>echo 'No up for you!'<cr>")
|
||||
vnoremap("<Up>", "<cmd>echo 'No up for you!'<cr>")
|
||||
inoremap("<Up>", "<cmd>echo 'No up for you!'<cr>")
|
||||
nnoremap("<Down>", "<cmd>echo 'No down for you!'<cr>")
|
||||
vnoremap("<Down>", "<cmd>echo 'No down for you!'<cr>")
|
||||
inoremap("<Down>", "<cmd>echo 'No down for you!'<cr>")
|
||||
|
||||
-- Vimspector
|
||||
vim.cmd([[
|
||||
nmap <Leader>1 <cmd>call vimspector#Launch()<cr>
|
||||
nmap <Leader>2 <cmd>call vimspector#StepOver()<cr>
|
||||
nmap <Leader>3 <cmd>call vimspector#Reset()<cr>
|
||||
nmap <Leader>7 <cmd>call vimspector#StepOver()<cr>")
|
||||
nmap <Leader>8 <cmd>call vimspector#StepOut()<cr>")
|
||||
nmap <Leader>9 <cmd>call vimspector#StepInto()<cr>")
|
||||
]])
|
||||
nmap("Db", ":call vimspector#ToggleBreakpoint()<cr>")
|
||||
nmap("Dw", ":call vimspector#AddWatch()<cr>")
|
||||
nmap("De", ":call vimspector#Evaluate()<cr>")
|
||||
44
lua/opts.lua
Normal file
44
lua/opts.lua
Normal file
@@ -0,0 +1,44 @@
|
||||
vim.opt.hidden = true
|
||||
vim.opt.guicursor = ""
|
||||
|
||||
vim.opt.nu = true
|
||||
vim.opt.relativenumber = true
|
||||
|
||||
vim.opt.tabstop = 4
|
||||
vim.opt.softtabstop = 4
|
||||
vim.opt.shiftwidth = 4
|
||||
vim.opt.expandtab = true
|
||||
vim.opt.hlsearch = false
|
||||
vim.opt.incsearch = true
|
||||
vim.opt.wrap = true
|
||||
|
||||
vim.opt.smartindent = true
|
||||
|
||||
vim.g.mapleader = " "
|
||||
-- vim.g.python3_host_prog = os.getenv('HOME') .. '/.local/venv/nvim/bin/python'
|
||||
--
|
||||
--Set completeopt to have a better completion experience
|
||||
-- :help completeopt
|
||||
-- menuone: popup even when there's only one match
|
||||
-- noinsert: Do not insert text until a selection is made
|
||||
-- noselect: Do not select, force to select one from the menu
|
||||
-- shortness: avoid showing extra messages when using completion
|
||||
-- updatetime: set updatetime for CursorHold
|
||||
vim.opt.completeopt = {'menuone', 'noselect', 'noinsert'}
|
||||
vim.opt.shortmess = vim.opt.shortmess + { c = true}
|
||||
vim.api.nvim_set_option('updatetime', 300)
|
||||
|
||||
-- Fixed column for diagnostics to appear
|
||||
-- Show autodiagnostic popup on cursor hover_range
|
||||
-- Goto previous / next diagnostic warning / error
|
||||
-- Show inlay_hints more frequently
|
||||
vim.cmd([[
|
||||
set signcolumn=yes
|
||||
autocmd CursorHold * lua vim.diagnostic.open_float(nil, { focusable = false })
|
||||
]])
|
||||
|
||||
vim.cmd([[
|
||||
let g:vimspector_sidebar_width = 85
|
||||
let g:vimspector_bottombar_height = 15
|
||||
let g:vimspector_terminal_maxwidth = 70
|
||||
]])
|
||||
49
lua/plug.lua
Normal file
49
lua/plug.lua
Normal file
@@ -0,0 +1,49 @@
|
||||
require("mason").setup()
|
||||
|
||||
return require('packer').startup(function(use)
|
||||
use 'wbthomason/packer.nvim'
|
||||
use 'folke/tokyonight.nvim'
|
||||
use 'kyazdani42/nvim-web-devicons'
|
||||
use {
|
||||
'nvim-telescope/telescope.nvim', tag = '0.1.0',
|
||||
requires = { {'nvim-lua/plenary.nvim'} }
|
||||
}
|
||||
use {
|
||||
'nvim-treesitter/nvim-treesitter',
|
||||
run = ':TSUpdate'
|
||||
}
|
||||
use {'neoclide/coc.nvim', branch = 'release'}
|
||||
use 'mfussenegger/nvim-dap'
|
||||
use 'alfredodeza/pytest.vim'
|
||||
use 'tpope/vim-commentary'
|
||||
use 'williamboman/mason.nvim'
|
||||
use 'williamboman/mason-lspconfig.nvim'
|
||||
use 'neovim/nvim-lspconfig'
|
||||
use 'simrat39/rust-tools.nvim'
|
||||
|
||||
-- copy pasted from https://rsdlt.github.io/posts/rust-nvim-ide-guide-walkthrough-development-debug/
|
||||
use 'hrsh7th/nvim-cmp'
|
||||
|
||||
-- LSP completion source:
|
||||
use 'hrsh7th/cmp-nvim-lsp'
|
||||
|
||||
-- Useful completion sources:
|
||||
use 'hrsh7th/cmp-nvim-lua'
|
||||
use 'hrsh7th/cmp-nvim-lsp-signature-help'
|
||||
use 'hrsh7th/cmp-vsnip'
|
||||
use 'hrsh7th/cmp-path'
|
||||
use 'hrsh7th/cmp-buffer'
|
||||
use 'hrsh7th/vim-vsnip'
|
||||
use 'puremourning/vimspector'
|
||||
use 'voldikss/vim-floaterm'
|
||||
use 'lewis6991/impatient.nvim'
|
||||
use {
|
||||
'm-demare/hlargs.nvim',
|
||||
requires = { 'nvim-treesitter/nvim-treesitter' }
|
||||
}
|
||||
use 'RRethy/vim-illuminate'
|
||||
use {
|
||||
"windwp/nvim-autopairs",
|
||||
config = function() require("nvim-autopairs").setup {} end
|
||||
}
|
||||
end)
|
||||
Reference in New Issue
Block a user