" automatische Installation von vim-plug let data_dir = has('nvim') ? stdpath('data') . '/site' : '~/.vim' if empty(glob(data_dir . '/autoload/plug.vim')) silent execute '!curl -fLo '.data_dir.'/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim' endif " vim-plug call plug#begin() Plug 'mattn/emmet-vim' Plug 'preservim/nerdtree' Plug 'Xuyuanp/nerdtree-git-plugin' Plug 'preservim/tagbar' Plug 'romainl/vim-cool' Plug 'simnalamburt/vim-mundo' Plug 'tpope/vim-repeat' Plug 'tpope/vim-surround' Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'} Plug 'neovim/nvim-lspconfig' Plug 'windwp/nvim-autopairs' Plug 'windwp/nvim-ts-autotag' Plug 'hrsh7th/cmp-nvim-lsp' Plug 'hrsh7th/cmp-buffer' Plug 'hrsh7th/cmp-path' Plug 'hrsh7th/cmp-cmdline' Plug 'hrsh7th/nvim-cmp' call plug#end() " EMMET let g:user_emmet_install_global=0 let g:user_emmet_leader_key='' " NERDTree let NERDTreeMinimalUI=1 let NERDTreeShowHidden=0 " NERDTree GIT Plugin let g:NERDTreeGitStatusUntrackedFilesMode='all' let g:NERDTreeGitStatusShowClean=1 let g:NERDTreeGitStatusConcealBrackets=1 let g:NERDTreeDirArrowExpandable='+' let g:NERDTreeDirArrowCollapsible='-' let g:WebDevIconsUnicodeDecorateFolderNodes=1 let g:DevIconsEnableFoldersOpenClose=1 let g:WebDevIconsNerdTreeBeforeGlyphPadding='' " Tagbar let g:tagbar_ctags_bin='/usr/local/bin/uctags' " Vimundo let g:mundo_right=1 let g:mundo_width=40 let g:mundo_preview_height=30 " Autopairs let b:autopairs_enabled=1 let g:AutoPairsMapBS=1 let g:AutoPairsPrefix='' " Treesitter lua << EOF require('nvim-treesitter.configs').setup { ensure_installed = { "c", "cpp", "lua", "vim", "vimdoc", "typescript", "python" }, sync_install = false, auto_install = false, highlight = { enable = true, disable = { "html" }, additional_vim_regex_highlighting = true, }, indent = { enable = false, }, } EOF lua << EOF require('nvim-autopairs').setup {} require('nvim-ts-autotag').setup {} EOF " LSP lua << EOF local lspconfig = require('lspconfig') lspconfig.clangd.setup{ cmd = { 'clangd15' } } lspconfig.lua_ls.setup { settings = { Lua = { runtime = { -- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim) version = 'LuaJIT', }, diagnostics = { -- Get the language server to recognize the `vim` global globals = {'vim'}, }, workspace = { -- Make the server aware of Neovim runtime files library = vim.api.nvim_get_runtime_file("", true), }, -- Do not send telemetry data containing a randomized but unique identifier telemetry = { enable = false, }, }, }, } lspconfig.pyright.setup{ settings = { python = { analysis = { autoSearchPaths = true, diagnosticMode = "workspace", useLibraryCodeForTypes = true } } } } lspconfig.tsserver.setup{} lspconfig.vimls.setup{} lspconfig.rust_analyzer.setup{ settings = { ['rust-analyzer'] = {}, }, } EOF " Completion lua <'] = cmp.mapping.scroll_docs(-4), [''] = cmp.mapping.scroll_docs(4), [''] = cmp.mapping.complete(), [''] = cmp.mapping.abort(), [''] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items. }), sources = cmp.config.sources({ { name = 'nvim_lsp' }, -- { name = 'vsnip' }, -- For vsnip users. -- { name = 'luasnip' }, -- For luasnip users. -- { name = 'ultisnips' }, -- For ultisnips users. -- { name = 'snippy' }, -- For snippy users. }, { { name = 'buffer' }, }) }) -- Set configuration for specific filetype. --cmp.setup.filetype('gitcommit', { -- sources = cmp.config.sources({ -- { name = 'git' }, -- You can specify the `git` source if [you were installed it](https://github.com/petertriho/cmp-git). -- }, { -- { name = 'buffer' }, -- }) --}) -- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore). --cmp.setup.cmdline({ '/', '?' }, { -- mapping = cmp.mapping.preset.cmdline(), -- sources = { -- { name = 'buffer' } -- } --}) -- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore). --cmp.setup.cmdline(':', { -- mapping = cmp.mapping.preset.cmdline(), -- sources = cmp.config.sources({ -- { name = 'path' } -- }, { -- { name = 'cmdline' } -- }) --}) EOF