" 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/nvim-cmp' Plug 'L3MON4D3/LuaSnip' Plug 'saadparwaiz1/cmp_luasnip' Plug 'rafamadriz/friendly-snippets' Plug 'hrsh7th/cmp-nvim-lsp' Plug 'hrsh7th/cmp-buffer' " Plug 'hrsh7th/cmp-path' " Plug 'hrsh7th/cmp-cmdline' Plug 'lewis6991/gitsigns.nvim' 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 lua << EOF require('nvim-treesitter.configs').setup { ensure_installed = { "c", "cpp", "lua", "vim", "vimdoc", "typescript", "python", "html" }, sync_install = false, auto_install = false, highlight = { enable = true, additional_vim_regex_highlighting = true, }, indent = { enable = true, } } require('nvim-autopairs').setup() require('nvim-ts-autotag').setup() local capabilities = require('cmp_nvim_lsp').default_capabilities() capabilities.textDocument.completion.completionItem.snippetSupport = true local lspconfig = require('lspconfig') lspconfig.clangd.setup{ cmd = { 'clangd18' }, capabilities = capabilities } lspconfig.lua_ls.setup{ settings = { Lua = { runtime = { version = 'LuaJIT', }, diagnostics = { globals = {'vim'}, }, workspace = { library = vim.api.nvim_get_runtime_file("", true), }, telemetry = { enable = false, }, }, }, capabilities = capabilities } lspconfig.cssls.setup{ capabilities = capabilities } lspconfig.html.setup{ capabilities = capabilities } lspconfig.tsserver.setup{ capabilities = capabilities } lspconfig.vimls.setup{ capabilities = capabilities } lspconfig.jsonls.setup{ capabilities = capabilities } lspconfig.angularls.setup{ capabilities = capabilities, } lspconfig.markdown_oxide.setup{ capabilities = capabilities, on_attach = on_attach, cmd = { 'markdown-oxide' } } require('gitsigns').setup() require("luasnip.loaders.from_vscode").lazy_load() local cmp = require('cmp') cmp.setup{ snippet = { expand = function(args) require('luasnip').lsp_expand(args.body) end, }, window = { completion = cmp.config.window.bordered(), documentation = cmp.config.window.bordered(), }, mapping = cmp.mapping.preset.insert{ [''] = cmp.mapping.scroll_docs(-4), [''] = cmp.mapping.scroll_docs(4), [''] = cmp.mapping.complete(), [''] = cmp.mapping.abort(), [''] = cmp.mapping.confirm({ select = true }), }, sources = cmp.config.sources{ { name = 'nvim_lsp', option = { markdown_oxide = { keyword_pattern = [[\(\k\| \|\/\|#\)\+]] } } }, { name = 'luasnip' }, }, { { name = 'buffer' }, } } local cmp_autopairs = require('nvim-autopairs.completion.cmp') cmp.event:on( 'confirm_done', cmp_autopairs.on_confirm_done() ) EOF