| @ -0,0 +1,5 @@ | |||||
| au BufNewFile,BufRead *.i set filetype=swig | |||||
| au BufNewFile,BufRead *.swg set filetype=swig | |||||
| au BufNewFile,BufRead *.g set filetype=antlr3 | |||||
| au BufNewFile,BufRead *.g4 set filetype=antlr4 | |||||
| au BufNewFile,BufRead *.gv set filetype=dot | |||||
| @ -0,0 +1,6 @@ | |||||
| function! ListDirectoryWithPattern(folder, pattern) | |||||
| split(system("find '".a:folder."' -type f -name '".a:pattern."'"),'\n') | |||||
| endfunction | |||||
| com! FormatJSON %!python -m json.tool | |||||
| com! JSONformat %!python -m json.tool | |||||
| @ -0,0 +1,67 @@ | |||||
| set nocompatible | |||||
| filetype off | |||||
| filetype plugin on | |||||
| filetype indent on | |||||
| if &t_Co >= 256 || has("gui_running") | |||||
| colorscheme mustang | |||||
| endif | |||||
| if &t_Co > 2 || has("gui_runnig") | |||||
| syntax on | |||||
| endif | |||||
| autocmd BufEnter *.cls set syntax=tex | |||||
| " must-have | |||||
| " { | |||||
| set hidden | |||||
| set wildmenu | |||||
| set showcmd | |||||
| set hlsearch | |||||
| " } | |||||
| " usability | |||||
| " { | |||||
| set ignorecase | |||||
| set smartcase | |||||
| set backspace=indent,eol,start | |||||
| set autoindent | |||||
| set nostartofline | |||||
| set ruler | |||||
| set laststatus=2 | |||||
| set confirm | |||||
| set visualbell | |||||
| set t_vb= | |||||
| set mouse=a | |||||
| set cmdheight=2 | |||||
| set number | |||||
| set notimeout nottimeout | |||||
| set list | |||||
| set scrolloff=5 | |||||
| set listchars=tab:>.,trail:!,extends:#,nbsp:‿ | |||||
| set wildignore+=*/.git/*,*/tmp/*,*.so,*.swp,*.zip | |||||
| " } | |||||
| " indentation | |||||
| " { | |||||
| set shiftwidth=4 | |||||
| set softtabstop=4 | |||||
| set tabstop=4 | |||||
| set expandtab | |||||
| " } | |||||
| " fold | |||||
| " { | |||||
| set foldmethod=indent | |||||
| set foldnestmax=10 | |||||
| set nofoldenable | |||||
| nnoremap <silent> <Space> @=(foldlevel('.')?'za':"\<Space>")<CR> | |||||
| vnoremap <Space> zf | |||||
| cabbrev h vert h | |||||
| " } | |||||
| @ -0,0 +1,51 @@ | |||||
| " loading vim-plug | |||||
| if empty(glob(g:home."/.vim/autoload/plug.vim")) | |||||
| execute '!curl -fLo '.g:home.'/.vim/autoload/plug.vim https://raw.github.com/junegunn/vim-plug/master/plug.vim' | |||||
| endif | |||||
| call plug#begin(g:home.'/.vim/plugged') | |||||
| " colors | |||||
| Plug 'altercation/vim-colors-solarized' | |||||
| Plug 'TheMrNomis/mustang-vim' | |||||
| " syntax | |||||
| Plug 'dpelle/vim-Grammalecte' " French | |||||
| Plug 'martinda/Jenkinsfile-vim-syntax' " Jenkins | |||||
| Plug 'vim-scripts/SWIG-syntax' " SWIG | |||||
| Plug 'cespare/vim-toml' " TOML | |||||
| Plug 'dylon/vim-antlr' " ANTLR | |||||
| Plug 'rust-lang/rust.vim' " rust | |||||
| " must-have | |||||
| Plug 'vim-airline/vim-airline' " awesome bar | |||||
| Plug 'ctrlpvim/ctrlp.vim' " fuzzy file-finder | |||||
| Plug 'bkad/CamelCaseMotion' " move inside words | |||||
| " IDE-like plugins | |||||
| Plug 'vim-scripts/a.vim' " quickly change between .h & .c | |||||
| Plug 'bitc/vim-bad-whitespace' " show whitespace at end of lines | |||||
| if has('nvim') | |||||
| " autocomplete | |||||
| Plug 'shougo/deoplete.nvim', {'do': ':UpdateRemotePlugins'} | |||||
| Plug 'shougo/deoplete-clangx' | |||||
| endif | |||||
| Plug 'jiangmiao/auto-pairs' " pair parenthesis | |||||
| Plug 'kien/rainbow_parentheses.vim' " color parentheses | |||||
| Plug 'terryma/vim-multiple-cursors' " multiple cursors | |||||
| Plug 'vim-scripts/DoxygenToolkit.vim' " creates doxygen blocks | |||||
| Plug 'tacahiroy/ctrlp-funky' " fuzzy function-finder (CTRLp plugin) | |||||
| Plug 'mhinz/vim-startify' " landing page & session manager | |||||
| Plug 'scrooloose/nerdcommenter' " auto comment blocks | |||||
| Plug 'jaxbot/semantic-highlight.vim' " semantic highlight | |||||
| Plug 'mhinz/vim-signify' " VCS differences | |||||
| "Plug 'vim-syntastic/syntastic' " syntax checker | |||||
| "Plug 'neomake/neomake' " syntax checker (asynchoneous) | |||||
| Plug 'w0rp/ale' " syntax checker | |||||
| " others | |||||
| Plug 'tpope/vim-fugitive' " git wrapper | |||||
| Plug 'easymotion/vim-easymotion' | |||||
| call plug#end() | |||||
| @ -0,0 +1,29 @@ | |||||
| " bepo | |||||
| nnoremap . : | |||||
| nnoremap <F4> . | |||||
| let mapleader="," | |||||
| imap <A-,> <Esc> | |||||
| " usability | |||||
| map Y y$ | |||||
| map <F1> <nop> | |||||
| map Q <nop> | |||||
| nnoremap <C-L> :nohl<CR><C-L> | |||||
| nnoremap <C-S> :w<CR> | |||||
| vnoremap // y/<C-R>"<CR> | |||||
| " buffers | |||||
| map <C-Right> <C-w>l | |||||
| map <C-Left> <C-w>h | |||||
| map <C-Up> <C-w>k | |||||
| map <C-Down> <C-w>j | |||||
| " plugins | |||||
| nmap /** :Dox<CR> | |||||
| "nmap <silent> <tab> :CtrlPMixed<CR> | |||||
| nmap <silent> <tab> :FZF<CR> | |||||
| nmap <silent> <space><tab> :CtrlPFunky<CR> | |||||
| noremap <silent> <F5> :SemanticHighlightToggle<CR> | |||||
| inoremap <expr><tab> pumvisible() ? "\<c-n>" : "\<tab>" | |||||
| @ -0,0 +1,85 @@ | |||||
| let g:airline_powerline_fonts = 1 | |||||
| let g:session_autosave = 'no' | |||||
| let g:ycm_server_python_interpreter = '/usr/bin/python3' | |||||
| let g:grammalecte_cli_py='/usr/share/grammalecte-fr/grammalecte-cli.py' | |||||
| let g:deoplete#enable_at_startup = 1 | |||||
| let g:ctrlp_funky_syntax_highlight = 1 | |||||
| let g:ctrlp_working_path_mode = 'rwa' | |||||
| let g:ctrlp_cache_dir = $XDG_CACHE_DIR . '/ctrlp' | |||||
| let g:semanticTermColors = [28,1,2,3,4,5,6,7,25,9,10,34,12,13,14,15,125,124,19] | |||||
| let g:EasyMotion_keys = 'auie,ctsrnmbépoèvdljzwàyx.kqghfç' | |||||
| call camelcasemotion#CreateMotionMappings('') | |||||
| " code search | |||||
| if executable('ag') | |||||
| " Use Ag over Grep | |||||
| set grepprg=ag\ --nogroup\ --nocolor | |||||
| " Use ag in CtrlP for listing files. Lightning fast and respects .gitignore | |||||
| let g:ctrlp_user_command = 'ag %s -l --nocolor -g ""' | |||||
| let g:ctrlp_use_caching=1 | |||||
| endif | |||||
| if executable('rg') | |||||
| set grepprg=rg\ --color=never | |||||
| "let g:ctrlp_user_command = 'rg %s --files --color=never --glob ""' | |||||
| let g:ctrlp_use_caching=1 | |||||
| endif | |||||
| " ALE | |||||
| let g:ale_linters = { | |||||
| \ 'cpp': ['clang'] | |||||
| \} | |||||
| let g:ale_cpp_clang_includes = [ | |||||
| \ getcwd(), | |||||
| \ getcwd().'/third-party' | |||||
| \ ] + | |||||
| \ split(system("find '/usr/include/qt' -maxdepth 1 -type d"), '\n') + | |||||
| \ split(system("[[ " . getcwd() . " == *'workspace'* ]] && find " . getcwd() . " -type d -name 'include'"), '\n') | |||||
| let g:ale_cpp_clang_options = '-std=c++17 -Wall -Wno-pragma-once-outside-header' | |||||
| if len(g:ale_cpp_clang_includes) | |||||
| let g:ale_cpp_clang_options = g:ale_cpp_clang_options . ' -I' . join(g:ale_cpp_clang_includes, " -I") | |||||
| endif | |||||
| let g:ale_cs_mcsc_source = getcwd() | |||||
| let g:ale_cs_mcsc_assemblies = | |||||
| \ split(system("find '/opt/Unity/Editor/Data/' -type f -name 'Unity*.dll'"),'\n') "+ | |||||
| "\ split(system("find " . getcwd() . " -type f -name '*.dll'")) | |||||
| " startify | |||||
| let g:startify_fortune_use_unicode = 1 | |||||
| let g:startify_session_persistence = 1 | |||||
| let g:startify_lists = [ | |||||
| \ { 'type': 'sessions', 'header': [' Sessions'] }, | |||||
| \ { 'type': 'files', 'header': [' MRU'] }, | |||||
| \ { 'type': 'dir', 'header': [' MRU '. getcwd()] }, | |||||
| \ { 'type': 'bookmarks', 'header': [' Bookmarks'] }, | |||||
| \ { 'type': 'commands', 'header': [' Commands'] }, | |||||
| \ ] | |||||
| let g:startify_session_before_save = [] | |||||
| " You can set up fzf window using a Vim command (Neovim or latest Vim 8 required) | |||||
| let g:fzf_layout = { 'window': 'belowright 10split enew' } | |||||
| " Customize fzf colors to match your color scheme | |||||
| let g:fzf_colors = | |||||
| \ { 'fg': ['fg', 'Normal'], | |||||
| \ 'bg': ['bg', 'Normal'], | |||||
| \ 'hl': ['fg', 'Comment'], | |||||
| \ 'fg+': ['fg', 'CursorLine', 'CursorColumn', 'Normal'], | |||||
| \ 'bg+': ['bg', 'CursorLine', 'CursorColumn'], | |||||
| \ 'hl+': ['fg', 'Statement'], | |||||
| \ 'info': ['fg', 'PreProc'], | |||||
| \ 'border': ['fg', 'Ignore'], | |||||
| \ 'prompt': ['fg', 'Conditional'], | |||||
| \ 'pointer': ['fg', 'Exception'], | |||||
| \ 'marker': ['fg', 'Keyword'], | |||||
| \ 'spinner': ['fg', 'Label'], | |||||
| \ 'header': ['fg', 'Comment'] } | |||||
| @ -0,0 +1,42 @@ | |||||
| if(!exists('g:home')) | |||||
| let g:home=$HOME | |||||
| let g:config_dir=g:home.'/.config/nvim' | |||||
| endif | |||||
| execute 'source '.g:config_dir.'/config/init.vimrc' | |||||
| execute 'source '.g:config_dir.'/config/general.vimrc' | |||||
| execute 'source '.g:config_dir.'/config/functions.vimrc' | |||||
| execute 'source '.g:config_dir.'/config/filetypes.vimrc' | |||||
| execute 'source '.g:config_dir.'/config/plugins.vimrc' | |||||
| execute 'source '.g:config_dir.'/config/keys.vimrc' | |||||
| " functions | |||||
| " { | |||||
| fun! StripTrailingWhitespaces() | |||||
| let _s=@/ | |||||
| let l = line(".") | |||||
| let c = col(".") | |||||
| %s/\s\+$//e | |||||
| call cursor(l,c) | |||||
| let @/=_s | |||||
| endfun | |||||
| nmap <silent> <F3> :call StripTrailingWhitespaces()<CR> | |||||
| augroup CursorLine | |||||
| au! | |||||
| au VimEnter,WinEnter,BufWinEnter * setlocal cursorline | |||||
| au WinLeave * setlocal nocursorline | |||||
| augroup END | |||||
| augroup AutoComment | |||||
| autocmd! | |||||
| autocmd FileType c,cpp,java,scala let b:comment_leader = '// ' | |||||
| autocmd FileType sh,ruby,python,conf,fstab let b:comment_leader = '# ' | |||||
| autocmd FileType tex let b:comment_leader = '% ' | |||||
| autocmd FileType mail let b:comment_leader = '> ' | |||||
| autocmd FileType vim let b:comment_leader = '" ' | |||||
| augroup END | |||||
| nnoremap <silent> <leader>cc :<C-B>silent <C-E>s/^/<C-R>=escape(b:comment_leader,'\/')<CR>/<CR>:nohlsearch<CR> | |||||
| nnoremap <silent> <leader>cu :<C-B>silent <C-E>s/^\V<C-R>=escape(b:comment_leader,'\/')<CR>//e<CR>:nohlsearch<CR> | |||||
| " } | |||||