" configuration vim + IDE " pcht 2016-2018 " Vundle https://github.com/VundleVim/Vundle.vim " install with : " git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim " set nocompatible be iMproved, required - Isnt it automatic with .vimrc?? filetype off " required " set the runtime path to include Vundle and initialize set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() " let Vundle manage Vundle, required Plugin 'VundleVim/Vundle.vim' Plugin 'tpope/vim-fugitive' Plugin 'commentary.vim' " Plugin 'Syntastic' Plugin 'ctrlpvim/ctrlp.vim' Plugin 'tpope/vim-surround' Plugin 'ciscoacl.vim' " https://github.com/dhruvasagar/vim-table-mode Plugin 'dhruvasagar/vim-table-mode' " language " Plugin 'octol/vim-cpp-enhanced-highlight' " C++ http://www.vim.org/scripts/script.php?script_id=3302 " install with vim clang_complete.vmb -c 'so %' -c 'q' " GLSL Plugin 'tikhomirov/vim-glsl' " Plugin 'rust-lang/rust.vim' Plugin 'ElmCast/elm-vim' " https://valloric.github.io/YouCompleteMe/ Plugin 'Valloric/YouCompleteMe' " KSP script syntax Plugin 'KSP-KOS/EditorTools', {'rtp': 'VIM/vim-kerboscript'} " All of your Plugins must be added before the following line call vundle#end() " required filetype plugin indent on " required " syntax syntax on " colorscheme default colorscheme elflord " print code with :hardcopy using impression.lam.jussieu.fr set printdevice=hp5550-509 set printoptions=left:5pt,right:5pt,top:5pt,bottom:5pt,number:y,duplex:off,wrap:y,paper:A4,portrait:y set printheader=%<%F\ -\ page\ %N%=Print\ at\ %{strftime(\'%Y-%m-%d\ %H:%M\')} " FIXME set printfont=:h18 " modeline : enable « vim: [ vim_set ] + » set modeline " set backspace normal set backspace=2 " no wrap set nowrap """"""""""""""""""" " ligne de statut set statusline=%F%m%r%h%w\ %{fugitive#statusline()}%=[BUF=%n][FORMAT=%{&ff}][TYPE=%Y][ASCII=%03.3b][LINE=%03l][COL=%03v][%p%%] set laststatus=2 """"""""""""""""""" " affiche les touches en mode commande set showcmd """"""""""""""""""" " numéro de ligne set number highlight LineNr ctermbg=black ctermfg=gray """"""""""""""""""" " ligne et colonne courante: activation en mode insert et pas en mode normal :autocmd InsertEnter,InsertLeave * set cursorline! cursorcolumn! highlight CursorLine term=underline cterm=underline set cursorcolumn cursorline " highlight CursorColumn term=none cterm=none ctermbg=grey ctermfg=black highlight CursorColumn term=underline cterm=underline """"""""""""""""""" " Search/IncSearch set hlsearch highlight Search term=reverse,bold cterm=reverse,bold ctermfg=None ctermbg=None set incsearch highlight IncSearch term=reverse cterm=reverse ctermfg=None ctermbg=None """"""""""""""""""" " tab/eof as characters " https://vi.stackexchange.com/questions/422/displaying-tabs-as-characters " dans vim, uriliser Ctrl-v + u + code utf8 " code : https://codepoints.net/control_pictures " tab : ␉ (U+2409 - SYMBOL FOR HORIZONTAL TABULATION) " : ˍ (U+02cd - MODIFIER LETTER LOW MACRON) " : ․ (U+2024 - ONE DOT LEADER) " : • (U+2022 - BULLET) " eol : ¶ (U+00b6 - PILCROW SIGN) " trail : ␠ (U+2420 - SYMBOL FOR SPACE) " : ␣ (U+2423 - OPEN BOX) " set list set listchars=tab:␉․,trail:␠,nbsp:⎵,precedes:<,extends:> " listchars as grey highlight SpecialKey ctermfg=DarkGrey highlight NonText ctermfg=DarkGrey nmap l :set invlist imap l :set invlistli """"""""""""""""""" " autoindent " set autoindent " tabulation " set expandtab " set shiftwidth=4 " set softtabstop=4 " set tabstop=4 "" replis de code "" zf pour créer un repli "" za pour ouvrir/fermer un repli déjà crée "" zm pour fermer tous les replis "" zr pour ouvrir tous les replis " function! MyFoldFunction () " let line = getline(v:foldstart) " let sub = substitute(line,'/\*\|\*/\|^\s+','','g') " let lines = v:foldend - v:foldstart + 1 " return '[+] ' . v:folddashes.sub . '...' . lines . ' lignes...' . getline(v:foldend) " endfunction " set foldenable "" afficher un = sur les replis " set fillchars=fold:= " set foldtext=MyFoldFunction() """"""""""""""""""" " les onglets " tabe créer un onglet "function! MoveTab(direction) " if (a:direction == 'left') " let tabnum = tabpagenr()-2 " if (tabnum < 0) " let tabnum = 0 " endif " execute 'tabm '.tabnum " else " let tabnum = tabpagenr() " execute 'tabm '.tabnum " endif "endfunction "highlight TabLine term=none cterm=none "highlight TabLineSel ctermbg=darkblue " raccourcis " gF ouvre un onglet sur le mot sous le cursor "map :tabprevious "map :tabnext """"""""""""""""""" " correcteur orthographique " utilisation " <]+s>, <[+s>: aller a l'erreur precedente, suivante "setlocal spell spelllang=fr,en setlocal spell spelllang=en_us,fr highlight SpellBad term=underline ctermfg=white ctermbg=red cterm=underline highlight SpellCap term=italic,underline ctermfg=yellow ctermbg=red cterm=underline highlight SpellRare term=bold,italic,underline ctermfg=cyan ctermbg=red cterm=underline highlight SpellLocal term=underline ctermfg=grey ctermbg=red cterm=underline highlight SpellErrors term=italic,underline ctermbg=red ctermfg=white """""""""""""""""" " ouverture du fichier à l'ancienne position function! s:CursorOldPosition() if line("'\"") > 0 && line("'\"") <= line("$") exe "normal g`\"" endif endfunction autocmd BufReadPost * silent! call s:CursorOldPosition() " """"""""""""""""""" " " autocompletion " " autocompletion direct (nom dans le fichier courant) " " autocompletion dictionnaire (dictionnaire perso ou fichier syntax/.vim) " " autocmd FileType * exec('setlocal dict+='.$VIMRUNTIME.'/syntax/'.expand('').'.vim') " function! MultiCompletion() " if &omnifunc != '' " return "\\" " elseif &dictionary != '' " return "\\" " else " return "\\" " endif " endfunction " " map =MultiCompletion() " map =MultiCompletion() """"""""""""""""""" " templates function! LoadTemplate(extension,type) if (a:type == 'all') silent! execute '0r' . $HOME . '/.vim/__tpl/' . a:extension . '.tpl' silent! execute 'source ' .$HOME . '/.vim/__tpl.vim' endif " abbreviations silent! execute 'source ' .$HOME . '/.vim/__tpl/' . a:extension . '.abb' " dictionaries silent! execute 'source ' .$HOME . '/.vim/__tpl/' . a:extension . '.dict' " commandes vim silent! execute 'source ' .$HOME . '/.vim/__tpl/' . a:extension . '.vim' endfunction autocmd BufNewFile * silent! call LoadTemplate('%:e','all') autocmd BufRead * silent! call LoadTemplate('%:e','notall') " " omnifunc " if has("autocmd") && exists("+omnifunc") " autocmd Filetype * " \ if &omnifunc == "" | " \ setlocal omnifunc=syntaxcomplete#Complete | " \ endif " endif " CISCO ACL augroup filetype au! BufRead,BufNewFile *.crules set filetype=ciscoacl au! BufRead,BufNewFile *.acl set filetype=ciscoacl augroup END " markdown syntax for gitit augroup filetype au! BufRead,BufNewFile *.page set filetype=markdown au! BufRead,BufNewFile *.md set filetype=markdown augroup END " kerboscript comment autocmd FileType kerboscript setlocal commentstring=//\ %s "" UltiSnips https://github.com/sirver/ultisnips "" Activate snipMate snippers (disable by default) " let g:UltiSnips = {} " let g:UltiSnips.snipmate_ft_filter = { 'default' : {'filetypes': ['_', 'FILETYPE'] } } " use python 2 " let g:UltiSnipsUsePythonVersion = 2 "" change key binding " let g:UltiSnipsExpandTrigger="" " let g:UltiSnipsJumpForwardTrigger="" " let g:UltiSnipsJumpBackwardTrigger="" " let g:UltiSnipsListSnippets="" " If you want :UltiSnipsEdit to split your window. " let g:UltiSnipsEditSplit="vertical" " let g:snips_author = 'Patrick CAO HUU THIEN' " let g:UltiSnips.ExpandTrigger="" " let g:UltiSnips.JumpForwardTrigger="" " let g:UltiSnips.JumpBackwardTrigger="" " let g:UltiSnips.ListSnippets="" "" numbers-vim " nnoremap :NumbersToggle " syntastic " set statusline+=%#warningmsg# " set statusline+=%{SyntasticStatuslineFlag()} " set statusline+=%* " let g:syntastic_always_populate_loc_list = 1 " let g:syntastic_auto_loc_list = 1 " let g:syntastic_check_on_open = 1 " let g:syntastic_check_on_wq = 0 " let g:syntastic_auto_jump = 2 " Search down into subfolders " Provides tab-completion for all file-related tasks " use :find + set path+=** " Display all matching files when we tab complete set wildmenu """ keymaps " no arrows keys no more nmap nmap nmap nmap " imap " imap " imap " imap " Esc remap imap jj imap kk " map caps-lock with Xvindow " au VimEnter * silent! !xmodmap -e 'clear Lock' -e 'keycode 0x42 = Escape' " au VimLeave * !xmodmap -e 'clear Lock' -e 'keycode 0x42 = Caps_Lock' " moves nmap K nmap J " speed up " edit .vimrc nmap v :vs ~/.vimrc imap v :vs ~/.vimrci " source .vimrc nmap V :source ~/.vimrc " quick save imap s :wi nmap s :w " html + php nmap h :set ft=html imap h :set ft=htmli nmap p :set ft=php imap p :set ft=phpi " make nmap m :w:!clear:make imap m :w:!clear:make " vim-table-mode " :TableModeToggle pour activer/deactiver " table cpmatible rst " racourcis: " visual + :Tableize pour transformer csv (avec ,) en table let g:table_mode_corner_corner='+' let g:table_mode_header_fillchar='=' nmap tm :TableModeToggle imap tm :TableModeTogglei