diff options
Diffstat (limited to '.config/nvim/lua')
| -rw-r--r-- | .config/nvim/lua/keymap.lua | 55 | ||||
| -rw-r--r-- | .config/nvim/lua/lsp.lua | 46 | ||||
| -rw-r--r-- | .config/nvim/lua/plug.lua | 22 | ||||
| -rw-r--r-- | .config/nvim/lua/settings.lua | 45 |
4 files changed, 168 insertions, 0 deletions
diff --git a/.config/nvim/lua/keymap.lua b/.config/nvim/lua/keymap.lua new file mode 100644 index 0000000..200c5cb --- /dev/null +++ b/.config/nvim/lua/keymap.lua @@ -0,0 +1,55 @@ +-- ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ +-- ┃ ┏┓╻┏━┓ ╻ ╻╻┏┳┓ ╻┏ ┏━╸╻ ╻┏┳┓┏━┓┏━┓┏━┓ ┃ +-- ┃ ┃┗┫┣━┫ ┃┏┛┃┃┃┃ ┣┻┓┣╸ ┗┳┛┃┃┃┣━┫┣━┛┗━┓ ┃ +-- ┃ ╹ ╹┗━┛ ┗┛ ╹╹ ╹ ╹ ╹┗━╸ ╹ ╹ ╹╹ ╹╹ ┗━┛ ┃ +-- ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ + +vim.g.mapleader = ',' +vim.api.nvim_set_keymap("n", "<leader>C", "<leader>c<space>", {}) +vim.api.nvim_set_keymap("n", "<leader>n", "<C-w>n", {noremap = true}) +vim.api.nvim_set_keymap("n", "<leader>sc", ":so $MYVIMRC<CR>", {noremap = true}) +vim.api.nvim_set_keymap("n", "<leader>ec", ":e $MYVIMRC<CR>", {noremap = true}) +vim.api.nvim_set_keymap("n", "<leader>tn", ":tabnew<CR>", {noremap = true}) +vim.api.nvim_set_keymap("n", "<leader>tc", ":tabclose<CR>", {noremap = true}) +vim.api.nvim_set_keymap("n", "<leader>tt", ":tabnew<CR>:term<CR>a", {noremap = true}) +vim.api.nvim_set_keymap("n", "<leader>Tn", ":tnext<CR>", {noremap = true}) +vim.api.nvim_set_keymap("n", "<leader>Tp", ":tprevious<CR>", {noremap = true}) +vim.api.nvim_set_keymap("n", "<leader>Tf", ":tfirst<CR>", {noremap = true}) +vim.api.nvim_set_keymap("n", "<leader>Tl", ":tlast<CR>", {noremap = true}) +vim.api.nvim_set_keymap("n", "<leader>tselect", ":tselect<Space>", {noremap = true}) +vim.api.nvim_set_keymap("n", "<leader>Tc", ":!ctags -R --sort=yes --c++-kins=+p --filed=+iaS --extras=+q . <CR><CR>", {noremap = true}) + +vim.api.nvim_set_keymap("n", "<leader>f", ":Lexplore<CR>", {noremap = true}) +vim.api.nvim_set_keymap("n", "<leader>F", ":Lexplore %:p:h<CR>", {noremap = true}) + +vim.api.nvim_set_keymap("n", "<leader>zt", ":VZKFindTag<CR>", {noremap = true}) +vim.api.nvim_set_keymap("n", "<leader>zh", ":VZKHistory<CR>", {noremap = true}) + +vim.api.nvim_set_keymap("i", "(", "()<Esc>i", {noremap = true}) +vim.api.nvim_set_keymap("i", ")", "<ESC>:call brackify#putbracket(')')<CR>la", {noremap = true}) +vim.api.nvim_set_keymap("i", "[", "[]<Esc>i", {noremap = true}) +vim.api.nvim_set_keymap("i", "]", "<ESC>:call brackify#putbracket(']')<CR>la", {noremap = true}) +vim.api.nvim_set_keymap("i", "{", "{}<Esc>i", {noremap = true}) +vim.api.nvim_set_keymap("i", "}", "<ESC>:call brackify#putbracket('}')<CR>la", {noremap = true}) +vim.cmd('autocmd Filetype html inoremap <buffer> < <><ESC>i') +vim.cmd('autocmd Filetype html inoremap <buffer> > <ESC>:call brackify#putbracket(">")<CR>la') + +vim.api.nvim_set_keymap("i", '"', "<ESC>:call brackify#putquotes('\"')<CR>a", {noremap = true}) +vim.api.nvim_set_keymap("i", "'", "<ESC>:call brackify#putquotes(\"'\")<CR>a", {noremap = true}) + +vim.api.nvim_set_keymap("v", "(", "s(<ESC>pa)", {noremap = true}) +vim.api.nvim_set_keymap("v", "[", "s[<ESC>pa]", {noremap = true}) +vim.api.nvim_set_keymap("v", "{", "s{<ESC>pa}", {noremap = true}) +vim.api.nvim_set_keymap("v", '"', 's"<ESC>pa"', {noremap = true}) +vim.api.nvim_set_keymap("v", "'", "s'<ESC>pa'", {noremap = true}) +vim.cmd('autocmd Filetype c nnoremap <buffer> <tab> :CSelNextArg<Cr>') + +vim.api.nvim_set_keymap("n", "<leader>dB", ":GdbBreakpointToggle", {noremap = true}) +vim.api.nvim_set_keymap("n", "<leader>dn", ":GdbNext", {noremap = true}) +vim.api.nvim_set_keymap("n", "<leader>ds", ":GdbStep", {noremap = true}) +vim.api.nvim_set_keymap("n", "<leader>dr", ":GdbRun", {noremap = true}) +vim.api.nvim_set_keymap("n", "<leader>dc", ":GdbContinue", {noremap = true}) +vim.cmd('inoremap <expr> <Tab> pumvisible() ? "\\<C-n>" : "\\<Tab>"') +vim.cmd('inoremap <expr> <S-Tab> pumvisible() ? "\\<C-p>" : "\\<S-Tab>"') + +vim.cmd("autocmd TextChangedI * lua vim.lsp.omnifunc(1)") diff --git a/.config/nvim/lua/lsp.lua b/.config/nvim/lua/lsp.lua new file mode 100644 index 0000000..41c9e16 --- /dev/null +++ b/.config/nvim/lua/lsp.lua @@ -0,0 +1,46 @@ +local clangd_on_attach = function(client, bufnr) + + local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end + local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end + + -- Enable completion triggered by <c-x><c-o> + buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc') + + -- Mappings. + local opts = { noremap=true, silent=true } + -- See `:help vim.lsp.*` for documentation on any of the below functions + buf_set_keymap('n', 'gD', '<cmd>lua vim.lsp.buf.declaration()<CR>', opts) + buf_set_keymap('n', 'gd', '<cmd>lua vim.lsp.buf.definition()<CR>', opts) + buf_set_keymap('n', 'K', '<cmd>lua vim.lsp.buf.hover()<CR>', opts) + buf_set_keymap('n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>', opts) + buf_set_keymap('n', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<CR>', opts) + buf_set_keymap('n', '<space>wa', '<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>', opts) + buf_set_keymap('n', '<space>wr', '<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>', opts) + buf_set_keymap('n', '<space>wl', '<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>', opts) + buf_set_keymap('n', '<space>D', '<cmd>lua vim.lsp.buf.type_definition()<CR>', opts) + buf_set_keymap('n', '<space>rn', '<cmd>lua vim.lsp.buf.rename()<CR>', opts) + buf_set_keymap('n', '<space>ca', '<cmd>lua vim.lsp.buf.code_action()<CR>', opts) + buf_set_keymap('n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>', opts) + buf_set_keymap('n', '<space>e', '<cmd>lua vim.diagnostic.open_float()<CR>', opts) + buf_set_keymap('n', '[d', '<cmd>lua vim.diagnostic.goto_prev()<CR>', opts) + buf_set_keymap('n', ']d', '<cmd>lua vim.diagnostic.goto_next()<CR>', opts) + buf_set_keymap('n', '<space>q', '<cmd>lua vim.diagnostic.setloclist()<CR>', opts) + buf_set_keymap('n', '<space>f', '<cmd>lua vim.lsp.buf.formatting()<CR>', opts) + buf_set_keymap('i', '<c-space>', '<c-x><c-o>', opts) + buf_set_keymap('i', '::', '::<c-x><c-o>', opts) + buf_set_keymap('i', '.', '.<c-x><c-o>', opts) + buf_set_keymap('i', '->', '-><c-x><c-o>', opts) + buf_set_keymap('i', '<BS>', '<BS><c-x><c-o>', opts); +end + + +require('lspconfig').clangd.setup{ + cmd = { + "clangd", + "--enable-config", + "--background-index", + "--pch-storage=memory", + "--all-scopes-completion", + }, + on_attach = clangd_on_attach, +} diff --git a/.config/nvim/lua/plug.lua b/.config/nvim/lua/plug.lua new file mode 100644 index 0000000..43c036e --- /dev/null +++ b/.config/nvim/lua/plug.lua @@ -0,0 +1,22 @@ +-- ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ +-- ┃ ┏┓╻┏━┓ ╻ ╻╻┏┳┓ ┏━┓╻ ╻ ╻┏━╸╻┏┓╻┏━┓ ┃ +-- ┃ ┃┗┫┣━┫ ┃┏┛┃┃┃┃ ┣━┛┃ ┃ ┃┃╺┓┃┃┗┫┗━┓ ┃ +-- ┃ ╹ ╹┗━┛ ┗┛ ╹╹ ╹ ╹ ┗━╸┗━┛┗━┛╹╹ ╹┗━┛ ┃ +-- ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ + +local Plug = vim.fn['plug#'] + +vim.call('plug#begin', '~/.local/share/nvim/plugged') + +Plug 'airblade/vim-gitgutter' +Plug 'tpope/vim-fugitive' +Plug 'scrooloose/nerdcommenter' +Plug 'neovim/nvim-lspconfig' +Plug 'NPScript/vim-zettelkasten' +Plug 'sakhnik/nvim-gdb' +Plug 'nvim-treesitter/nvim-treesitter' +Plug 'jalvesaq/Nvim-R' + +vim.call('plug#end') + + diff --git a/.config/nvim/lua/settings.lua b/.config/nvim/lua/settings.lua new file mode 100644 index 0000000..c3bd598 --- /dev/null +++ b/.config/nvim/lua/settings.lua @@ -0,0 +1,45 @@ +-- ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ +-- ┃ ┏┓╻┏━┓ ╻ ╻╻┏┳┓ ┏━┓┏━╸╺┳╸╺┳╸╻┏┓╻┏━╸┏━┓ ┃ +-- ┃ ┃┗┫┣━┫ ┃┏┛┃┃┃┃ ┗━┓┣╸ ┃ ┃ ┃┃┗┫┃╺┓┗━┓ ┃ +-- ┃ ╹ ╹┗━┛ ┗┛ ╹╹ ╹ ┗━┛┗━╸ ╹ ╹ ╹╹ ╹┗━┛┗━┛ ┃ +-- ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ + +vim.opt.shell = '/usr/bin/zsh' +vim.opt.path = "**" + +vim.cmd('colorscheme n8') + +vim.opt.mouse = 'a' +vim.opt.tabstop = 2 +vim.opt.softtabstop = 0 +vim.opt.expandtab = false +vim.opt.shiftwidth = 2 +vim.opt.smartindent = true +vim.opt.list = true; +vim.opt.listchars = { tab= '> ', eol = '¬', trail = '·', nbsp = '•'} +vim.opt.splitright = true +vim.opt.splitbelow = false +vim.opt.laststatus = 2 +vim.opt.clipboard = "unnamedplus" +vim.opt.number = true +vim.opt.showcmd = true +vim.opt.wildmenu = true +vim.opt.hlsearch = true +vim.opt.conceallevel = 2 +vim.opt.colorcolumn = "80" +vim.cmd('filetype indent on') + +vim.opt.completeopt = { "menuone", "menu", "longest", "preview", "noinsert", "noselect" } + +vim.opt.spelllang = { "de_ch", "en_us" } + +vim.g.netrw_liststyle = 3 +vim.g.netrw_banner = false +vim.g.netrw_browser_split = 2 +vim.g.netrw_keepdir = true +vim.g.netrw_winsize = 30 +vim.cmd('autocmd Filetype netrw setlocal nolist') + +vim.g.airline_powerline_fonts = true + +vim.cmd("call statusbar#refresh()") |