From f6fa63d6bce9ed3a9e9c4c345657f8cc15d4e94c Mon Sep 17 00:00:00 2001 From: Filemon Moenne-loccoz Date: Wed, 3 Mar 2021 13:51:31 +0100 Subject: add vimrc with lsp support --- .vimrc | 161 ++++++++++++++++++++++++++--------------------------------------- 1 file changed, 63 insertions(+), 98 deletions(-) diff --git a/.vimrc b/.vimrc index 1d9b3ad..420d434 100644 --- a/.vimrc +++ b/.vimrc @@ -1,17 +1,27 @@ let mapleader="," +"Plug 'vim-airline/vim-airline' +"Plug 'vim-airline/vim-airline-themes' + " Plugins call plug#begin('~/.vim/plugged') Plug 'mbbill/undotree' -Plug 'vim-airline/vim-airline' -Plug 'vim-airline/vim-airline-themes' Plug 'jiangmiao/auto-pairs' +Plug 'preservim/nerdcommenter' +Plug 'preservim/nerdtree' +Plug 'prabirshrestha/vim-lsp' +Plug 'prabirshrestha/asyncomplete.vim' +Plug 'voldikss/vim-floaterm' call plug#end() + +set t_Co=256 +"set background=dark + " Some basics: "set bg=light set go=a - set mouse=a +" set mouse=a set nohlsearch set clipboard=unnamedplus set tabstop=4 @@ -25,7 +35,7 @@ call plug#end() set relativenumber set ruler syntax on - colo peachpuff + colo desert set hidden " Enable autocompletion: @@ -37,40 +47,28 @@ call plug#end() noremap w :w :bp :bd # " Airline - let g:airline#extensions#tabline#enabled = 1 - let g:airline#extensions#tabline#fnamemod = ':t' - let g:airline_detect_modified = 1 - let g:airline_detect_paste = 1 - let g:airline_detect_crypt = 1 - let g:airline_theme = 'term' - "let g:airline_powerline_fonts = 1 - let g:airline_symbols_ascii = 1 - let g:airline#parts#ffenc#skip_expected_string='utf-8[unix]' +" let g:airline#extensions#tabline#enabled = 1 +" let g:airline#extensions#tabline#fnamemod = ':t' +" let g:airline_detect_modified = 1 +" let g:airline_detect_paste = 1 +" let g:airline_detect_crypt = 1 +" let g:airline_theme = 'term' +" let g:airline_powerline_fonts = 1 +" let g:airline_symbols_ascii = 1 +" let g:airline#parts#ffenc#skip_expected_string='utf-8[unix]' " Cursor mode - let g:airline#extensions#cursormode#enabled = 1 - let g:cursormode_color_map = { - \ "i": "#7da9c7", - \ "n": "#eac179", - \ "R": "#bb5653", - \ "r": "#bb5653", - \ "v": "#b06597", - \ "V": "#b06597", - \ "\": "#b06597", - \} - -" 10 buffers jump - let g:airline#extensions#tabline#buffer_idx_mode = 1 - nmap 1 AirlineSelectTab1 - nmap 2 AirlineSelectTab2 - nmap 3 AirlineSelectTab3 - nmap 4 AirlineSelectTab4 - nmap 5 AirlineSelectTab5 - nmap 6 AirlineSelectTab6 - nmap 7 AirlineSelectTab7 - nmap 8 AirlineSelectTab8 - nmap 9 AirlineSelectTab9 - nmap 0 AirlineSelectTab10 +" let g:airline#extensions#cursormode#enabled = 1 +" let g:cursormode_color_map = { +" \ "i": "#7da9c7", +" \ "n": "#eac179", +" \ "R": "#bb5653", +" \ "r": "#bb5653", +" \ "v": "#b06597", +" \ "V": "#b06597", +" \ "\": "#b06597", +" \} + " Disables automatic commenting on newline: autocmd FileType * setlocal formatoptions-=c formatoptions-=r formatoptions-=o @@ -81,21 +79,46 @@ call plug#end() " Runs a script that cleans out tex build files whenever I close out of a .tex file. autocmd VimLeave *.tex !texclear % +" Floaterm +nnoremap :FloatermNew +" Startify +let g:startify_custom_header_quotes = [ + \ ['Hey man'], + \ ['How are you ?'], + \ ['Happy coding'], + \] + + +"CCLS /LSP +" Register ccls C++ lanuage server. +if executable('ccls') + au User lsp_setup call lsp#register_server({ + \ 'name': 'ccls', + \ 'cmd': {server_info->['ccls']}, + \ 'root_uri': {server_info->lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), '.ccls'))}, + \ 'initialization_options': {'cache': {'directory': '/tmp/ccls/cache' }}, + \ 'whitelist': ['c', 'cpp', 'objc', 'objcpp', 'cc'], + \ }) +endif + +nn :LspDefinition +nn :LspReferences +nn :LspRename +nn :LspWorkspaceSymbol +nn :LspDocumentSymbol " Compile document, be it groff/LaTeX/markdown/etc. "map c :w! \| !compiler % autocmd BufWritePost *.tex !compiler % " Compile C file - autocmd FileType c noremap :w :!clear :!~/.vim/c/f5.sh; - autocmd FileType c noremap :w :!clear :!~/.vim/c/f6.sh; + noremap :w :!make -j5 ASAN=1; + noremap :w :!./cub3d "map/map_one.cub"; ret=$?; echo "~> $ret\n\n.vimrc 3.0-release Tilde Edition by Joe\n"; autocmd FileType c noremap :w:!gcc-Wall-Wextra-Werror % autocmd FileType c noremap :w :!clear :!~/.vim/c/f9.sh % autocmd FileType c noremap :w :!clear :!~/.vim/c/f10.sh % " Compile C++ file - autocmd FileType cpp noremap :w :!clear :!~/.vim/cpp/f5.sh; - autocmd FileType cpp noremap :w :!clear :!~/.vim/cpp/f6.sh; autocmd FileType cpp noremap :w:!g++-Wall-Wextra-Werror % autocmd FileType cpp noremap :w :!clear :!~/.vim/cpp/f9.sh % autocmd FileType cpp noremap :w :!clear :!~/.vim/cpp/f10.sh % @@ -135,61 +158,3 @@ call plug#end() autocmd FileType cpp nnoremap m ointmain(void){return0;}O autocmd FileType cpp nnoremap M ointmain(intargc,char*argv[]){if(argc!=1)return0;if(argv[]){}return0;}O autocmd FileType cpp nnoremap M ointmain(intargc,char*argv[]){if(argc!=1){cout<<"NOTENOUGHARGS"<<endl;return1;}return0;}O - -" Java - ""autocmd FileType java inoremap " "" - ""autocmd FileType java inoremap ' '' - ""autocmd FileType java inoremap ( () - ""autocmd FileType java inoremap [ [] - ""autocmd FileType java inoremap { {} - ""autocmd FileType java inoremap < <> - ""autocmd FileType java inoremap { {}O - ""autocmd FileType java inoremap {; {};O - ""autocmd FileType java inoremap < < - ""autocmd FileType java inoremap > > - ""autocmd FileType java inoremap <= <= - -" = Web = -" HTML - "autocmd FileType html inoremap " "" - "autocmd FileType html inoremap ' '' - "autocmd FileType html inoremap ( () - "autocmd FileType html inoremap [ [] - "autocmd FileType html inoremap { {} - "autocmd FileType html inoremap { {}O - "autocmd FileType html inoremap < <> - -" PHP - ""autocmd FileType php inoremap " "" - ""autocmd FileType php inoremap ' '' - ""autocmd FileType php inoremap ( () - ""autocmd FileType php inoremap [ [] - ""autocmd FileType php inoremap { {} - ""autocmd FileType php inoremap { {}O - ""autocmd FileType php inoremap < <> - ""autocmd FileType php inoremap - ""autocmd FileType php inoremap ?>O - -" CSS - "autocmd FileType css inoremap " "" - "autocmd FileType css inoremap ' '' - "autocmd FileType css inoremap ( () - "autocmd FileType css inoremap [ [] - "autocmd FileType css inoremap { {} - "autocmd FileType css inoremap { {}O - - -" Just in case - "inoremap " "" - "inoremap ' '' - "inoremap ( () - "inoremap [ [] - "inoremap { {} - "inoremap "" "" - "inoremap '' '' - "inoremap () () - "inoremap [] [] - "inoremap {} {} - "inoremap <> <> - -" .vimrc 2.4.1-release | Copyright Joe 2k19 -- cgit v1.2.3