nvim/init.lua

174 lines
5.2 KiB
Lua

vim.opt.syntax = 'on'
vim.cmd("filetype plugin indent on")
vim.opt.number = true
-- set relativenumber
vim.opt.relativenumber = false
--vim.opt.path += "**"
vim.opt.swapfile = false
vim.opt.wildmenu = true
vim.opt.backspace = "indent,eol,start"
vim.opt.undodir = "/home/ateijelo/.cache/nvim/undo"
vim.opt.undofile = true
vim.opt.incsearch = true
vim.opt.smartindent = true
vim.opt.ic = true
-- set colorcolumn=88
vim.opt.et = true
vim.opt.ts = 4
vim.opt.sw = 4
--set showmatch
vim.opt.hlsearch = true
--incsearch
vim.cmd("highlight ColorColumn ctermbg=9")
vim.cmd("autocmd FileType yaml,yaml.ansible setlocal indentkeys-=0#")
-- don't use NeoVim's thin cursor
vim.opt.guicursor = ""
vim.o.mouse = ""
require('plugins')
require("colorschemes")
vim.cmd("hi MatchParen cterm=bold,underline gui=bold,underline")
--vim.api.nvim_set_keymap("n", "<SPACE>", "<Nop>", { noremap = true })
vim.g.mapleader = " "
vim.api.nvim_set_keymap("n", "<Leader>bc", "<Cmd>BufferLinePickClose<CR>", { noremap = true, silent = true })
--local harpoon_ui = require("harpoon.ui")
--local harpoon_mark = require("harpoon.mark")
--vim.keymap.set("n", '<A-,>', harpoon_ui.toggle_quick_menu)
for _, mode in ipairs({"n", "i", "v"}) do
vim.keymap.set(mode, '<A-1>', "<Cmd>BufferLineGoToBuffer 1<CR>", { noremap = true, silent = true })
vim.keymap.set(mode, '<A-2>', "<Cmd>BufferLineGoToBuffer 2<CR>", { noremap = true, silent = true })
vim.keymap.set(mode, '<A-3>', "<Cmd>BufferLineGoToBuffer 3<CR>", { noremap = true, silent = true })
vim.keymap.set(mode, '<A-4>', "<Cmd>BufferLineGoToBuffer 4<CR>", { noremap = true, silent = true })
vim.keymap.set(mode, '<A-5>', "<Cmd>BufferLineGoToBuffer 5<CR>", { noremap = true, silent = true })
end
for _, mode in ipairs({"n", "v"}) do
vim.api.nvim_set_keymap(mode, "<Up>", "g<Up>", { noremap = true })
vim.api.nvim_set_keymap(mode, "<Down>", "g<Down>", { noremap = true })
vim.api.nvim_set_keymap(mode, "<Left>", "<Nop>", { noremap = true })
vim.api.nvim_set_keymap(mode, "<Right>", "<Nop>", { noremap = true })
vim.api.nvim_set_keymap(mode, "<Down>", "<Nop>", { noremap = true })
vim.api.nvim_set_keymap(mode, "<Up>", "<Nop>", { noremap = true })
end
vim.api.nvim_set_keymap('v', "<M-j>", ":MoveBlock(1)<CR>", { noremap = true })
vim.api.nvim_set_keymap('v', "<M-k>", ":MoveBlock(-1)<CR>", { noremap = true })
vim.api.nvim_set_keymap("n", "<Leader>lj", "<Cmd>lua vim.diagnostic.open_float()<CR>", { noremap = true })
--vim.api.nvim_set_keymap("n", "<M-o>", "<Cmd>lua vim.diagnostic.open_float()<CR>", { noremap = true })
vim.api.nvim_set_keymap("n", "<Leader>la", "<Cmd>lua vim.lsp.buf.code_action()<CR>", { noremap = true, silent = true })
--vim.api.nvim_set_keymap("n", "<M-i>", "<Cmd>lua vim.lsp.buf.code_action()<CR>", { noremap = true })
require('telescope').setup({
initial_mode = "normal"
})
local builtin = require('telescope.builtin')
vim.keymap.set('n', '<Leader>p', builtin.find_files, {})
-- toggle numbers and diagnostics with Alt+N
vim.keymap.set(
"n",
"<M-n>",
function()
vim.o.number = not vim.o.number;
if not vim.diagnostic.get_next() then return end
if vim.o.number then
vim.diagnostic.show()
else
vim.diagnostic.hide()
end
end
)
-- require'lspconfig'.pyright.setup{}
local nvim_lsp = require'lspconfig'
nvim_lsp.pyright.setup{}
-- local on_attach = function(client)
-- require'completion'.on_attach(client)
-- end
-- require('snippy').setup({
-- mappings = {
-- is = {
-- ['<Tab>'] = 'expand_or_advance',
-- ['<S-Tab>'] = 'previous',
-- },
-- nx = {
-- ['<leader>x'] = 'cut_text',
-- },
-- },
-- })
require('completion')
local capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities())
nvim_lsp.rust_analyzer.setup({
capabilities = capabilities,
settings = {
["rust-analyzer"] = {
}
}
})
vim.diagnostic.config({
underline = true,
signs = true,
virtual_text = true,
float = {
show_header = true,
source = 'if_many',
border = 'rounded',
focusable = false,
}
})
require('treesitter')
require('nvim_comment').setup()
--vim.keymap.set('v', '<A-->', "<Cmd>'<,'>CommentToggle<CR>")
vim.keymap.set('v', '<C-/>', "<Cmd>'<,'>CommentToggle<CR>")
vim.keymap.set('n', '<C-/>', "<Cmd>CommentToggle<CR>")
--vim.keymap.set('n', '<A-->', "<Cmd>CommentToggle<CR>")
-- hover on K
vim.keymap.set('n', 'K', vim.lsp.buf.hover)
-- Change border of documentation hover window, See https://github.com/neovim/neovim/pull/13998.
vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, {
border = "rounded",
})
-- format on save
--vim.cmd [[autocmd BufWritePre * lua vim.lsp.buf.format()]]
-- require('nvim-tree').setup()
require('exrc').setup()
require('bufferline').setup()
vim.cmd [[
fu! SaveSession()
if filereadable(getcwd() . '/.session.vim')
execute 'mksession! ' . getcwd() . '/.session.vim'
endif
endfunction
fu! RestoreSession()
if filereadable(getcwd() . '/.session.vim')
execute 'so ' . getcwd() . '/.session.vim'
endif
endfunction
autocmd VimLeavePre * call SaveSession()
"autocmd VimEnter * nested call RestoreSession()
]]