Last active
September 27, 2017 16:32
-
-
Save maelvls/5023313 to your computer and use it in GitHub Desktop.
Mon .vimrc (attention ! il est nul)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
" Mes raccourcis : | |
" ctrl+b pour nerdtree | |
" ctrl+l pour tabbar | |
" ctrl + p pour débugguer | |
" ctrl + w + fleches pour changer de fenetre | |
" cmd + b pour make | |
" ctrl + b pour nerd-tree | |
" :A pour switcher header/implementation (A-VIM) | |
" u pour annuler | |
" /recherche pour les regex | |
" ctrl + h pour cacher la regex | |
" n/b pour circuler dans les regex | |
" `gcc` pour commenter | |
" | |
" Raccourcis intéressants : | |
" `^` et `$` pour aller au début/fin ligne | |
" `a`/`s`/`o` pour insérer | |
" `ctrl+v` pour sélectionner un rectangle de texte | |
" puis `r` pour remplacer par qqchose | |
" `ctrl+i` pour auto-complete | |
" `ctrl+p` | |
" Recherche : | |
" `:set incsearch` pour rechercher incrémentalement | |
" `:set ignorecase` | |
" `:set smartcase` qui va faire du ignorecase si lettres minuscules, | |
" et casesensitive si on met au moins une lettre majuscule | |
" `/\Cma_recherche` pour chercher en mode case-sensitive | |
" `ctrl + $` pour chercher toutes les occurrences du mot du curseur | |
" `ctrl + h` (hide) pour désactiver le highlight en cours | |
" Remplacement : | |
" `:%s/un_mot/un_remplaçant/g` pour remplacer | |
" `%` est utilisé pour remplacer dans toutes les lignes du texte | |
" `gi` dans le cas où on veut du case-insensitive | |
" Buffers : | |
" `:bn` pour passer au buffer suivant | |
" `:bp` pour passer au buffer précédent | |
" `:b <tab>` pour se déplacer dans les buffers | |
" | |
" Ouvrir et rechercher un fichier rapidement : | |
" `ctrl + t` pour chercher un fichier | |
" | |
" Pour aller dans le dossier du fichier ouvert : | |
" cd %:p:h | |
" :NERDTreeFind | |
" | |
" | |
" 23 oct 2014 - Pour faire fonctionner clang (ctrl+p) avec des librairies : | |
" - créer .clang_complete à la racine du projet | |
" - y mettre les flags de compilation : | |
" -L/opt/local/lib -lgstreamer-0.10 -lglib-2.0 -lgobject-2.0 | |
" -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include/ | |
" 20 déc 2014 - Probleme avec {+tab : si y'a une indentation ça bug et ça recopie =>> j'ai | |
" réglé le pbm en mettant à jour les pluggins et en relançant | |
" 29 mars 2015 - Problème avec supertab : semble désactivé | |
" 29 mars 2015 - j'ai remplacé ervandew/supertab et Rip-Rip/clang_complete | |
" par Valloric/YouCompleteMe | |
" 29 mars 2015 - j'ai remplacé QuickComment par tcomment_vim | |
" 29 mars 2015 - J'ai remplacé garbas/vim-snipmate par SirVer/ultisnips | |
" 30 mars 2015 - J'ai ajouté une fonction `UltiSnips_Complete` qui permet | |
" de valider le choix d'un snippet quand on a le panneau d'autocomplétion | |
" (car la touche `entrée` ne fonctionne pas avec UltiSnips+YouCompleteMe) | |
" 4 avril 2015 - J'ai ajouté Command-T. Comme la version de ruby utilisée par MavVim était | |
" `:ruby puts "#{RUBY_VERSION}-p#{RUBY_PATCHLEVEL}"` -> 2.0.0, | |
" j'ai cherché le */bin/ruby correspondant et j'ai recompilé Command-T (cf | |
" :help command-t) | |
" NOTE: s'il y a un `SIGENV`, c'est certainement parce que'une mauvaise | |
" version de ruby ou de python est utilisée | |
" 4 avril 2015 - J'ai enlevé le message d'erreur de Command-T suivant : | |
" `warning: Insecure world writable dir /Users/maelv/.vim/bundle | |
" in PATH, mode 040777` en faisant `chmod go-w /Users/maelv/.vim/bundle`. | |
" 13 avril 2015 - ajout de `Plugin tlib` en `Plugin tomtom/tlib_vim`. | |
" 14 janv. 2016 - j'ai essayé de faire fonctionner YouCompleteMe avec mes | |
" .c/.cpp. Le souci était en fait que j'avais oublié de faire ./install.py | |
" avec l'option : | |
" autocmd FileType html set shiftwidth=4 tabstop=4 | |
" `./install.sh --clang-completer` | |
" 15 janv 2016 | |
" - ajout de l'option 'gnome-terminal' car sinon pas de couleurs | |
" sous ubuntu | |
" - j'ai aussi mis de coté YouCompleteMe et Command-T qui prennaient | |
" trop de place sur les 250Mo autorisés à l'ENAC | |
" 17 janv 2016 | |
" - J'ai ajouté `set listchars` pour afficher les retours à la ligne et tabs | |
" Il suffit de faire `set list` pour activer l'affichage | |
" Vundle {{{ | |
" Pour installer vundle: | |
" git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim | |
set nocompatible | |
filetype off " pour Vundle | |
set rtp+=~/.vim/bundle/Vundle.vim " pour Vundle | |
call vundle#rc() " pour Vundle | |
" Redéfinition du <Leader> | |
"let mapleader = "," | |
Plugin 'VundleVim/Vundle.vim' | |
" === Début Plugins (Vundle) === | |
" Plugin 'wincent/Command-T' | |
Plugin 'Valloric/YouCompleteMe' | |
Plugin 'rdnetto/YCM-Generator' | |
Plugin 'ervandew/supertab' | |
Plugin 'maelvalais/gmpl.vim' | |
Plugin 'SirVer/ultisnips' | |
Plugin 'honza/vim-snippets' | |
Plugin 'tomtom/tlib_vim' | |
Plugin 'MarcWeber/vim-addon-mw-utils' | |
Plugin 'vim-scripts/Colour-Sampler-Pack' | |
Plugin 'EasyMotion' | |
Plugin 'tomtom/tcomment_vim' | |
Plugin 'Tagbar' | |
Plugin 'scrooloose/nerdtree' | |
Plugin 'vim-airline/vim-airline' | |
Plugin 'aperezdc/vim-template' | |
Plugin 'std_c.zip' | |
Plugin 'lervag/vimtex' | |
Plugin 'geetarista/ego.vim' | |
Plugin 'chriskempson/tomorrow-theme', {'rtp': 'vim/'} | |
"Plugin 'vim-scripts/a.vim' | |
" a.vim : ":A" pour changer header <-> code | |
" === Fin plugins === | |
filetype plugin indent on " pour Vundle | |
"}}} | |
" Font {{{ | |
if has("gui_running") | |
set guifont=Menlo\ Regular:h12 | |
endif" }}} | |
if $COLORTERM == 'gnome-terminal' | |
set t_Co=256 | |
endif | |
" Pour afficher les caractères spéciaux (espace, tab, retour) | |
set listchars=tab:▸\ ,eol:¬ | |
" Paramètres généraux {{{ | |
set mouse=a | |
" set cursorline | |
set wildmenu " Ajoute pour la ligne de commande | |
set laststatus=2 | |
set showmatch | |
set number | |
set showcmd | |
" set showmode | |
set encoding=utf-8 | |
set incsearch " Pour que la recherche `/recherche` soit incrémentale | |
set ignorecase | |
set smartcase " ignore la casse si seulement petite lettres | |
" Indentation, wraping, tabulations {{{ | |
" TAB vs SPACES: set expandtab ; set noexpandtab pour enlever | |
set tabstop=4 | |
set shiftwidth=4 | |
" autocmd FileType asm set shiftwidth=8 tabstop=8 | |
set autoindent | |
set smartindent | |
set wrap | |
set autochdir " Se met dans le dir. du fichier ouvert | |
"set foldmethod=marker | |
"}}} | |
" Adds *.hcp (used in my company) {{{ | |
au BufNewFile,BufRead *.hcp set filetype=cpp | |
" }}} | |
" Go to my development working dir | |
"cd ~/prog &> /dev/null | |
"cd ~/cpp &> /dev/null | |
" Fermer les {} | |
"inoremap {<CR> {<tab><cr>}<Esc>O | |
" Remplacé par un snippet dans snipmate | |
"}}} | |
" | |
" Aller à la fin de la ligne {{{ | |
"inoremap <C-space> <Esc><S-a> | |
" INUTILE car cmd-fleche droite le fait aussi ! | |
"}}} | |
" Curseur different en insert {{{ | |
let &t_SI = "\<Esc>]50;CursorShape=1\x7" | |
let &t_EI = "\<Esc>]50;CursorShape=0\x7""{{{"}}}"{{{"}}} | |
" Retablir la position du curseur à l'ouverture | |
augroup line_return | |
au! | |
au BufReadPost * | |
\ if line("'\"") > 0 && line("'\"") <= line("$") | | |
\ execute 'normal! g`"zvzz' | | |
\ endif | |
augroup END | |
"}}} | |
" Couleurs de Vim "{{{ | |
colo Tomorrow-Night | |
let c_cpp_comments = 1 " Pour std_c | |
map <c-h> :let @/ = ""<cr> " pour enlever les hilight des recherches | |
if &t_Co > 2 || has("gui_running") | |
syntax on " colo syntaxique | |
set hlsearch " colo pour la recherche | |
endif | |
"}}} | |
" Backups {{{ | |
set nobackup | |
set noswapfile | |
set undodir=~/.vim/tmp/undo// " undo files | |
set backupdir=~/.vim/tmp/backup// " backups | |
set directory=~/.vim/tmp/swap// " swap files | |
silent !mkdir ~/.vim/tmp ~/.vim/tmp/{undo,backup,swap} > /dev/null 2>&1 | |
"}}} | |
" Pour quitter rapidement | |
inoremap <C-q> <esc>:q!<cr> | |
nnoremap <C-q> :q!<cr> | |
" Pour la sauvegarde : s comme Save | |
inoremap <C-s> <esc>:w<cr>a | |
nnoremap <C-s> :w<cr> | |
" Switcher entre les buffers | |
nnoremap <C-A-n> :bnext<CR> | |
nnoremap <C-A-p> :bprevious<CR> | |
" Command-T {{{ | |
" if has("gui_macvim") | |
" macmenu &File.New\ Tab key=<nop> | |
" endif | |
map <C-t> :CommandT<CR> | |
" }}} | |
" YCM - YouCompleteMe {{{ | |
let g:ycm_global_ycm_extra_conf = '~/.ycm_extra_conf.py' | |
let g:ycm_autoclose_preview_window_after_insertion = 1 | |
" }}} | |
" NERDTree : ctrl + b {{{ | |
inoremap <C-b> <esc>:NERDTreeToggle<cr> | |
nnoremap <C-b> :NERDTreeToggle<cr> | |
let g:NERDTreeWinSize = 26 | |
let NERDTreeShowBookmarks = 1 | |
" Si on est sur MacVim on ouvre NERDTree | |
if has("gui_running") | |
"autocmd VimEnter * NERDTreeFromBookmark prog | |
"autocmd VimEnter * NERDTree | |
"autocmd BufEnter * NERDTreeMirror (synchro tous les nerdTree ouverts) | |
endif | |
"}}} | |
" Tagbar : ctrl+l {{{ | |
let g:TagbarOpen = 0 | |
let g:tagbar_width = 22 | |
inoremap <c-l> <esc>:TagbarToggle<cr> | |
nnoremap <c-l> :TagbarToggle<cr> | |
"}}} | |
" Tabbar {{{ | |
map <c-w><c-m> :TbToggle<CR> | |
let g:Tb_UseSingleClick = 1 " car avec la touche d on peut fermer le buffer | |
let g:Tb_ModSelTarget = 1 | |
"}}} | |
" Fonction Chmod {{{ | |
" Une fonction Chmod pour chmod +x % sans relancer vim | |
function! ActiverExecutable() | |
let fname = expand("%:p") | |
checktime | |
execute "au FileChangedShell " . fname . " :echo" | |
silent !chmod a+x % | |
checktime | |
execute "au! FileChangedShell " . fname | |
endfunction | |
command! Chmod call ActiverExecutable() | |
" }}} | |
" Options pour template.vim {{{ | |
let g:username = "Maël Valais" | |
let g:email = "[email protected]" | |
let g:templates_directory = '~/.vim/templates/' | |
"}}} | |
" Powerline {{{ | |
let g:Powerline_stl_path_style = 'full' | |
let g:Powerline_symbols = 'unicode' | |
"}}} | |
" UltiSnips {{{ | |
" | |
let g:ycm_key_list_select_completion = ['\<C-TAB>', '\<Down>'] | |
let g:ycm_key_list_previous_completion = ['\<C-S-TAB>', '\<Up>'] | |
let g:SuperTabDefaultCompletionType = '\<C-Tab>' | |
" | |
" | |
" let g:UltiSnipsSnippetDirectories=["UltiSnips"] | |
" Fonction pour que lorsque j'ai des propositions de snippets, | |
" je n'ai plus qu'à appuyer sur `tab` et la sélection courante est | |
" validée. Par contre, il faut que j'utilise `bas/haut` pour naviguer | |
" dans le menu d'autocomplétion | |
" function! g:UltiSnips_Complete() | |
" call UltiSnips#ExpandSnippet() | |
" if g:ulti_expand_res == 0 | |
" if pumvisible() | |
" return "\<C-n>" | |
" else | |
" call UltiSnips#JumpForwards() | |
" if g:ulti_jump_forwards_res == 0 | |
" return "\<TAB>" | |
" endif | |
" endif | |
" endif | |
" return "" | |
" endfunction | |
" au BufEnter * exec "inoremap <silent> " . g:UltiSnipsExpandTrigger . " <C-R>=g:UltiSnips_Complete()<cr>" | |
" let g:UltiSnipsJumpForwardTrigger="<tab>" | |
" let g:UltiSnipsListSnippets="<c-e>" | |
" }}} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment