config/vim/vimrc
2025-12-11 16:53:30 +01:00

106 lines
3.1 KiB
VimL

" Uset compatibility with Vii
set nocompatible
" add user info variable
let g:_author = "Bastien Chanot"
let g:_email = "chanot.bastien@gmail.com"
" Enable pathogen for plugins
execute pathogen#infect()
" Set colors options
syntax on
set t_Co=256
colorscheme molokai
" Set line numbers
set number
" Activate mouse click
set mouse=a
" Set some indent options
set smartindent
set autoindent
filetype plugin indent on
" make backspace work on all system
set backspace=indent,eol,start
" Set the encoding
set encoding=utf-8
" Activate cursor go on line at end/begin of line
set whichwrap+=<,>,h,l,[,]
" Set number of spacetab and the char to print
let tab_placeholder='»·'
let space_placeholder='·'
execute "set list listchars=tab:". tab_placeholder .",trail:". space_placeholder
set tabstop=4
set shiftwidth=4
set softtabstop=4
" Activate sor syntastic options
let g:syntastic_c_compiler = 'gcc'
let g:syntastic_c_compiler_options = '-Wall -Werror -Wextra'
let g:syntastic_check_on_open=1
let g:syntastic_enable_signs=1
let g:syntastic_c_remove_include_errors = 1
let g:syntastic_c_include_dirs = ['../../../include', '../../include','../include','./include','../../../includes', '../../includes','../includes','./includes','../../../inc', '../../inc','../inc','./inc']
" Open NERDTree with Ctrl + g
noremap <C-g> :NERDTreeToggle<CR>
noremap <C-e> :!
noremap <C-t> :tabedit
noremap <TAB> :tabnext<CR>
noremap <BACKSPACE> :tabprev<CR>
noremap <C-+> :vertical resize +1<CR>
noremap <C--> :vertical resize -1<CR>
" Fonction pour générer une classe avec règle canonique
function! GenerateClassH(name)
execute "normal oclass " . a:name . " {"
execute "normal opublic:"
execute "normal o" . a:name . "();"
execute "normal o" . a:name . "(" . a:name . " const &src);"
execute "normal o~" . a:name . "();"
execute "normal o"
execute "normal o" . a:name . "\t&operator=(" . a:name . " const &src);"
execute "normal o"
execute "normal oprivate:"
execute "normal o"
execute "normal o};"
endfunction
" Commande :Class Test1
command! -nargs=1 ClassH call GenerateClassH(<f-args>)
" Fonction pour générer une classe avec règle canonique
function! GenerateClassC(name)
execute "normal o" . name . "::" . name . "(void) {"
execute "normal o std::cout << \"Default constructor called\" << std::endl;"
execute "normal o return ;"
execute "normal o}"
execute "normal o"
execute "normal o" . name . "::" . name . "(" . name . " const &src) {"
execute "normal o *this = src;"
execute "normal o std::cout << \"Copy constructor called\" << std::endl;"
execute "normal o return ;"
execute "normal o}"
execute "normal o"
execute "normal o" . name . "::~" . name . "(void) {"
execute "normal o std::cout << \"Default destructor called\" << std::endl;"
execute "normal o return ;"
execute "normal o}"
execute "normal o"
execute "normal o" . name . " &" . name . "::operator=(" . name . " const &src) {"
execute "normal o std::cout << \"Copy assignment operator called\" << std::endl;"
execute "normal o return *this;"
execute "normal o}"
endfunction
" Commande :Class Test1
command! -nargs=1 ClassC call GenerateClassC(<f-args>)