commit - 453028869775f39679c147b2ea87fee41e18d96c
commit + 13d05c511899fde3ab582dca3cab0e6b5a7a8b19
blob - /dev/null
blob + ec86604154a4b8719515e78e7b9b99ceaa8646a7 (mode 644)
--- /dev/null
+++ vim/.vimrc
+set termguicolors
+syntax enable
+filetype plugin indent on
+
+let g:mapleader = ","
+let g:localleader = "\\"
+
+set path+=**
+set spell
+set spelllang=de_de,en_gb
+set encoding=utf-8
+set fileencoding=utf-8
+set clipboard=unnamedplus
+
+set updatetime=250
+set timeout
+set timeoutlen=300
+
+set wildmenu
+set wildmode=longest:full,full
+set wildignore=*.o,*~,*.pyc,*.class
+set omnifunc=syntaxcomplete#Complete
+set completeopt=menuone,noselect
+
+set colorcolumn=80
+set number
+set relativenumber
+set scrolloff=7
+
+set showmatch
+set mat=2
+set hlsearch
+set smartcase
+set ignorecase
+set incsearch
+
+set ruler
+set undolevels=1000
+set undofile
+
+set tabstop=4
+set softtabstop=4
+set shiftwidth=4
+
+set showcmd
+set lazyredraw
+
+set splitright
+set splitbelow
+
+set list
+set listchars=tab:>~,trail:*,leadmultispace:-+,nbsp:+
+
+set foldenable
+set foldlevelstart=10
+set foldnestmax=10
+set foldmethod=syntax
+set foldlevel=99
+
+set grepprg=rg\ --vimgrep\ --smart-case\ --follow
+
+" https://github.com/prabirshrestha/vim-lsp.git
+let g:lsp_use_native_client = 1
+
+if executable('pylsp')
+ au User lsp_setup call lsp#register_server({
+ \ 'name': 'pylsp',
+ \ 'cmd': {server_info->['pylsp']},
+ \ 'allowlist': ['python'],
+ \ })
+endif
+
+if executable('rustup')
+ au User lsp_setup call lsp#register_server({
+ \ 'name': 'rust-analyzer',
+ \ 'cmd': {server_info->['rustup', 'run', 'stable', 'rust-analyzer']},
+ \ 'allowlist': ['rust'],
+ \ })
+ autocmd BufWritePre *.rs
+ \ call execute('LspDocumentFormatSync')
+endif
+
+if executable('clangd')
+ au User lsp_setup call lsp#register_server({
+ \ 'name': 'clangd',
+ \ 'cmd': {server_info->['clangd', '-background-index']},
+ \ 'allowlist': ['c', 'cpp', 'objc', 'objcpp'],
+ \ })
+endif
+
+if executable('gopls')
+ au User lsp_setup call lsp#register_server({
+ \ 'name': 'gopls',
+ \ 'cmd': {server_info->['gopls', '-remote=auto']},
+ \ 'allowlist': ['go', 'gomod', 'gohtmltmpl', 'gotexttmpl'],
+ \ })
+ autocmd BufWritePre *.go
+ \ call execute('LspDocumentFormatSync') |
+ \ call execute('LspCodeActionSync source.organizeImports')
+endif
+
+if executable('yaml-language-server')
+ augroup LspYaml
+ autocmd!
+ autocmd User lsp_setup call lsp#register_server({
+ \ 'name': 'yaml-language-server',
+ \ 'cmd': {server_info->['yaml-language-server', '--stdio']},
+ \ 'allowlist': ['yaml', 'yaml.ansible'],
+ \ 'workspace_config': {
+ \ 'yaml': {
+ \ 'validate': v:true,
+ \ 'hover': v:true,
+ \ 'completion': v:true,
+ \ 'customTags': [],
+ \ 'schemas': {},
+ \ 'schemaStore': { 'enable': v:true },
+ \ }
+ \ }
+ \})
+ augroup END
+endif
+
+function! s:on_lsp_buffer_enabled() abort
+ setlocal omnifunc=lsp#complete
+ setlocal signcolumn=yes
+ if exists('+tagfunc') | setlocal tagfunc=lsp#tagfunc | endif
+ nmap <buffer> gd <plug>(lsp-definition)
+ nmap <buffer> gs <plug>(lsp-document-symbol-search)
+ nmap <buffer> gS <plug>(lsp-workspace-symbol-search)
+ nmap <buffer> gr <plug>(lsp-references)
+ nmap <buffer> gi <plug>(lsp-implementation)
+ nmap <buffer> gt <plug>(lsp-type-definition)
+ nmap <buffer> <leader>rn <plug>(lsp-rename)
+ nmap <buffer> [g <plug>(lsp-previous-diagnostic)
+ nmap <buffer> ]g <plug>(lsp-next-diagnostic)
+ nmap <buffer> K <plug>(lsp-hover)
+
+ let g:lsp_format_sync_timeout = 1000
+
+ " refer to doc to add more commands
+endfunction
+
+augroup lsp_install
+ au!
+ " call s:on_lsp_buffer_enabled only for languages that has the server registered.
+ autocmd User lsp_buffer_enabled call s:on_lsp_buffer_enabled()
+augroup END