" 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 " 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, }, autotag = { enable = true, } } EOF lua << EOF require('nvim-autopairs').setup {} require('nvim-ts-autotag').setup {} EOF " LSP lua << EOF local capabilities = require('cmp_nvim_lsp').default_capabilities() local lspconfig = require('lspconfig') lspconfig.clangd.setup{ cmd = { 'clangd15' }, capabilities = capabilities } 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, }, }, }, capabilities = capabilities } lspconfig.html.setup{ capabilities = capabilities } lspconfig.tsserver.setup{ capabilities = capabilities } lspconfig.vimls.setup{ capabilities = capabilities } EOF lua << EOF require('gitsigns').setup() EOF lua << EOF 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' }, { name = 'luasnip' }, }, { { name = 'buffer' }, }) }) EOF