diff options
author | Audric Schiltknecht <storm@chemicalstorm.org> | 2012-10-10 22:12:38 +0200 |
---|---|---|
committer | Audric Schiltknecht <storm@chemicalstorm.org> | 2012-10-10 22:12:38 +0200 |
commit | 16938a57453b769490fde0372407ae169de519ab (patch) | |
tree | 3a083df1bf87941b430e6101bc7a3a977ad8d290 /vim | |
parent | 048df48526e1b8f5176319f79aaa6276906556bd (diff) | |
download | dotfiles-16938a57453b769490fde0372407ae169de519ab.tar.gz dotfiles-16938a57453b769490fde0372407ae169de519ab.tar.bz2 dotfiles-16938a57453b769490fde0372407ae169de519ab.zip |
Add "basic" vim configuration
Diffstat (limited to 'vim')
-rw-r--r-- | vim/.vim/memory.txt | 50 | ||||
-rw-r--r-- | vim/.vim/shortkeys.vim | 64 | ||||
-rw-r--r-- | vim/.vim/specific/cpp.vim | 28 | ||||
-rw-r--r-- | vim/.vim/specific/cxx.vim | 25 | ||||
-rw-r--r-- | vim/.vim/specific/ddl.vim | 1 | ||||
-rw-r--r-- | vim/.vim/specific/egg.vim | 1 | ||||
-rw-r--r-- | vim/.vim/specific/html.vim | 1 | ||||
-rw-r--r-- | vim/.vim/specific/java.vim | 1 | ||||
-rw-r--r-- | vim/.vim/specific/js.vim | 1 | ||||
-rw-r--r-- | vim/.vim/specific/mp.vim | 1 | ||||
-rw-r--r-- | vim/.vim/specific/pro.vim | 1 | ||||
-rw-r--r-- | vim/.vim/specific/py.vim | 201 | ||||
-rw-r--r-- | vim/.vim/specific/tex.vim | 10 | ||||
-rw-r--r-- | vim/.vim/specific/tla.vim | 2 | ||||
-rw-r--r-- | vim/.vim/specific/xml.vim | 1 | ||||
-rw-r--r-- | vim/.vim/templates/autocompletion.vim | 11 | ||||
-rw-r--r-- | vim/.vim/templates/c.tpl | 8 | ||||
-rw-r--r-- | vim/.vim/templates/cpp.tpl | 8 | ||||
-rw-r--r-- | vim/.vim/templates/h.tpl | 14 | ||||
-rw-r--r-- | vim/.vim/templates/html.tpl | 11 | ||||
-rw-r--r-- | vim/.vim/templates/java.tpl | 11 | ||||
-rw-r--r-- | vim/.vim/templates/py.tpl | 4 | ||||
-rw-r--r-- | vim/.vimrc | 365 |
23 files changed, 820 insertions, 0 deletions
diff --git a/vim/.vim/memory.txt b/vim/.vim/memory.txt new file mode 100644 index 0000000..980e773 --- /dev/null +++ b/vim/.vim/memory.txt @@ -0,0 +1,50 @@ + Aide Mémoire pour VIM + + <F1> : Affichage de l'aide + <F2> : Compilation + <F3> : Passe en mode copie + <F4> : A/D gestion de la souris + <F5> : Affiche les caractères spéciaux + <F6> : Nettoie le fichier + <F7> : + <F8> : + <F9> : + <F10> : Afficher les lignes trop longues + + Onglets : + <C-Left> : Onglet précédent + <C-Right> : Onglet suivant + <S-Left> : Déplace l'onglet à gauche + <S-Right> : Déplace l'onglet à droite + + <C-Down> : Commentaire suivant + <C-Up> : Commentaire précédent + + Folding du code : + <space> : Ouvre/ferme le bloc + <C-c> : Ferme tous les blocs + <S-c> : Ouvre tous les blocs + + Compilation : + <C-PgUp> : Erreur précédente + <C-PgDown> : Erreur suivante + + Dans l'aide de VIM : + <Return> : Suit le lien + <Backspace> : Page précédente + + Templates : + <A-Return> : Saute vers zone compléter + + LaTeX : + <C-j> : Formattage + + C/C++ : + <C-F12> : Génération des tags + + dd : Supprimer une ligne + +Hexa : +Ouerture fichier : vim -b <file> +Conversion binaire -> hexa : :%!xxd +COnversion hexa -> binaire : :%!xxd -r diff --git a/vim/.vim/shortkeys.vim b/vim/.vim/shortkeys.vim new file mode 100644 index 0000000..38ea222 --- /dev/null +++ b/vim/.vim/shortkeys.vim @@ -0,0 +1,64 @@ +" Navigation sur les longues lignes +map <A-DOWN> gj +map <A-UP> gk +imap <A-DOWN> <ESC>gj +imap <A-UP> <ESC>gk + +" Saut vers les zones à completer lors de l'utilisation des templates +map <A-Return> /<+.\{-1,}+><CR>c/+>e<CR> +imap <A-Return> /<+.\{-1,}+><CR>c/+>e<CR> + +" Affichage de l'aide +map <F1> <Esc>:call HelpMemory()<CR> +imap <F1> <Esc>:call HelpMemory()<CR> + +" On compile +map <F2> <Esc>:make<CR> + +" Passer en mode Copie +set pastetoggle=<F3> + +" Gestion de la souris +map <F4> <Esc>:call ToggleMouseActivate()<CR> +imap <F4> <Esc>:call ToggleMouseActivate()<CR> + +" Caractères spéciaux +map <F5> <Esc>:call DisplayChar()<CR> +imap <F5> <Esc>:call DisplayChar()<CR> + +" Nettoyage du fichier +map <F6> <Esc>:call ClearCode()<CR> +imap <F6> <Esc>:call ClearCode()<CR> + +" Affichage des lignes trop longues +map <F10> <Esc>:call HlTooLarge()<CR> +imap <F10> <Esc>:call HlTooLarge()<CR> + +" Touches de navigation dans les onglets +map <C-LEFT> <Esc>:tabprevious<CR> +map <C-RIGHT> <Esc>:tabnext<CR> +map <S-LEFT> <Esc>:call MoveTab('left')<CR> +map <S-RIGHT> <Esc>:call MoveTab('right')<CR> + +" Accès aux commentaires +map <C-DOWN> <Esc>]/ +map <C-UP> <Esc>[/ + +"" Gestion des foldings de code +" Alterne ouvert/ferme +nnoremap <space> za +" Ferme tout +nnoremap <C-c> zm +" Ouvre tout +nnoremap <S-c> zr + +" Déplacement dans les erreurs d'une compilation via Ctrl-PgUp/Down +map <C-PAGEUP> <Esc>:cprevious<CR> +map <C-PAGEDOWN> <Esc>:cnext<CR> + +" Navigation dans l'aide de Vim +"On suit un lien en appuyant sur Return +map <Return> <C-]> +"Retour page précédente avec Backspace +map <BS> <C-T> + diff --git a/vim/.vim/specific/cpp.vim b/vim/.vim/specific/cpp.vim new file mode 100644 index 0000000..4dfe592 --- /dev/null +++ b/vim/.vim/specific/cpp.vim @@ -0,0 +1,28 @@ +map <C-F12> :!ctags * --c-types=+p --c++-kinds=+p --fields=+iaS --extra=+q .<CR> +set tags+=$HOME/.vim/tags/stdlib.tags +set completeopt=menu +let OmniCpp_SelectFirstItem = 2 + + +" Vim syntax file +" Language: C++ special highlighting for STL classes and methods +" Maintainer: Jean-Francois Guchens (thanks to Nathan Skvirsky) +" Last Change: 2008 May 02 + +syn keyword cppSTL abort abs accumulate acos adjacent_difference adjacent_find adjacent_find_if any append asctime asin assert assign at atan atan2 atexit atof atoi atol back back_inserter bad bad_alloc bad_cast bad_exception bad_typeid badbit beg begin binary_compose binary_negate binary_search bind2nd binder1st binder2nd bitset bsearch c_str calloc capacity ceil cerr cin clear clearerr clock clog close compare compose1 compose2 construct copy copy_backward copy_n cos cosh count count_if cout ctime data destroy difference_type difftime div domain_error empty end endl eof eofbit equal equal_range erase exception exit exp fabs fail failbit failure fclose feof ferror fflush fgetc fgetpos fgets fill fill_n find find_end find_first_not_of find_first_of find_if find_last_not_of find_last_of first flags flip floor flush fmod fopen for_each fprintf fputc fputs fread free freopen frexp front fscanf fseek fsetpos ftell fwrite gcount generate generate_n get get_temporary_buffer getc getchar getenv getline gets gmtime good goodbit greater greater_equal ignore in includes inner_product inplace_merge insert inserter invalid_argument ios ios_base iostate iota is_heap is_open is_sorted isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit iter_swap iterator_category key_comp ldiv length length_error less less_equal lexicographical_compare lexicographical_compare_3way localtime log log10 logic_error logical_and logical_not logical_or longjmp lower_bound make_heap malloc max max_element max_size mem_fun mem_fun1 mem_fun1_ref mem_fun_ref memchr memcpy memmove memset merge min min_element minus mismatch mktime modf modulus multiplies negate next_permutation npos nth_element numeric_limits open out_of_range overflow_error partial_sort partial_sort_copy partial_sum partition peek perror plus pop pop_back pop_front pop_heap pow power precision prev_permutation printf ptr_fun push push_back push_front push_heap put putback putc putchar puts qsort raise rand random_sample random_sample_n random_shuffle range_error rbegin rdbuf rdstate read realloc reference remove remove_copy remove_copy_if remove_if rename rend replace replace_copy replace_copy_if replace_if reserve reset resize return_temporary_buffer reverse reverse_copy rewind rfind rotate rotate_copy runtime_error scanf search search_n second seekg seekp set_difference set_intersection set_symmetric_difference set_union setbuf setf setjmp setlocale setvbuf signal sin sinh size size_t size_type sort sort_heap splice sprintf sqrt srand sscanf stable_partition stable_sort std str strcat strchr strcmp strcoll strcpy strcspn strerror strftime string strlen strncat strncmp strncpy strpbrk strrchr strspn strstr strtod strtok strtol strtoul strxfrm substr swap swap_ranges sync_with_stdio system tan tanh tellg tellp test time time_t tmpfile tmpnam to_string to_ulong tolower top toupper transform unary_compose unary_negate underflow_error unget ungetc uninitialized_copy uninitialized_copy_n uninitialized_fill uninitialized_fill_n unique unique_copy unsetf upper_bound va_arg value_comp value_type vfprintf vprintf vsprintf width write + +syn keyword cppSTLtype istreambuf_iterator filebuf string ofstream ifstream stream istream_iterator istringstream ostream ostream_iterator ostringstream fstream auto_ptr pointer pointer_to_binary_function pointer_to_unary_function basic_string bit_vector bitset char_producer deque hash hash_map hash_multimap hash_multiset hash_set list map multimap multiset queue priority_queue rope set stack vector back_insert_iterator iterator bidirectional_iterator bidirectional_iterator_tag forward_iterator forward_iterator_tag front_insert_iterator input_iterator input_iterator_tag insert_iterator istream_iterator iterator_traits ostream_iterator output_iterator output_iterator_tag random_access_iterator random_access_iterator_tag raw_storage_iterator reverse_bidirectional_iterator reverse_iterator sequence_buffer binary_compose binary_function binary_negate binder1st binder2nd divides equal_to unary_compose unary_function unary_negate pair char_traits const_iterator reverse_iterator temporary_buffer + +" Default highlighting +if version >= 508 || !exists("did_cpp_syntax_inits") + if version < 508 + let did_cpp_syntax_inits = 1 + command -nargs=+ HiLink hi link <args> + else + command -nargs=+ HiLink hi def link <args> + endif + HiLink cppSTL Identifier + HiLink cppSTLtype Type + delcommand HiLink +endif + diff --git a/vim/.vim/specific/cxx.vim b/vim/.vim/specific/cxx.vim new file mode 100644 index 0000000..6aada59 --- /dev/null +++ b/vim/.vim/specific/cxx.vim @@ -0,0 +1,25 @@ +set completeopt=menu +let OmniCpp_SelectFirstItem = 2 + +" Vim syntax file +" Language: C++ special highlighting for STL classes and methods +" Maintainer: Jean-Francois Guchens (thanks to Nathan Skvirsky) +" Last Change: 2008 May 02 + +syn keyword cppSTL abort abs accumulate acos adjacent_difference adjacent_find adjacent_find_if any append asctime asin assert assign at atan atan2 atexit atof atoi atol back back_inserter bad bad_alloc bad_cast bad_exception bad_typeid badbit beg begin binary_compose binary_negate binary_search bind2nd binder1st binder2nd bitset bsearch c_str calloc capacity ceil cerr cin clear clearerr clock clog close compare compose1 compose2 construct copy copy_backward copy_n cos cosh count count_if cout ctime data destroy difference_type difftime div domain_error empty end endl eof eofbit equal equal_range erase exception exit exp fabs fail failbit failure fclose feof ferror fflush fgetc fgetpos fgets fill fill_n find find_end find_first_not_of find_first_of find_if find_last_not_of find_last_of first flags flip floor flush fmod fopen for_each fprintf fputc fputs fread free freopen frexp front fscanf fseek fsetpos ftell fwrite gcount generate generate_n get get_temporary_buffer getc getchar getenv getline gets gmtime good goodbit greater greater_equal ignore in includes inner_product inplace_merge insert inserter invalid_argument ios ios_base iostate iota is_heap is_open is_sorted isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit iter_swap iterator_category key_comp ldiv length length_error less less_equal lexicographical_compare lexicographical_compare_3way localtime log log10 logic_error logical_and logical_not logical_or longjmp lower_bound make_heap malloc max max_element max_size mem_fun mem_fun1 mem_fun1_ref mem_fun_ref memchr memcpy memmove memset merge min min_element minus mismatch mktime modf modulus multiplies negate next_permutation npos nth_element numeric_limits open out_of_range overflow_error partial_sort partial_sort_copy partial_sum partition peek perror plus pop pop_back pop_front pop_heap pow power precision prev_permutation printf ptr_fun push push_back push_front push_heap put putback putc putchar puts qsort raise rand random_sample random_sample_n random_shuffle range_error rbegin rdbuf rdstate read realloc reference remove remove_copy remove_copy_if remove_if rename rend replace replace_copy replace_copy_if replace_if reserve reset resize return_temporary_buffer reverse reverse_copy rewind rfind rotate rotate_copy runtime_error scanf search search_n second seekg seekp set_difference set_intersection set_symmetric_difference set_union setbuf setf setjmp setlocale setvbuf signal sin sinh size size_t size_type sort sort_heap splice sprintf sqrt srand sscanf stable_partition stable_sort std str strcat strchr strcmp strcoll strcpy strcspn strerror strftime string strlen strncat strncmp strncpy strpbrk strrchr strspn strstr strtod strtok strtol strtoul strxfrm substr swap swap_ranges sync_with_stdio system tan tanh tellg tellp test time time_t tmpfile tmpnam to_string to_ulong tolower top toupper transform unary_compose unary_negate underflow_error unget ungetc uninitialized_copy uninitialized_copy_n uninitialized_fill uninitialized_fill_n unique unique_copy unsetf upper_bound va_arg value_comp value_type vfprintf vprintf vsprintf width write + +syn keyword cppSTLtype istreambuf_iterator filebuf string ofstream ifstream stream istream_iterator istringstream ostream ostream_iterator ostringstream fstream auto_ptr pointer pointer_to_binary_function pointer_to_unary_function basic_string bit_vector bitset char_producer deque hash hash_map hash_multimap hash_multiset hash_set list map multimap multiset queue priority_queue rope set stack vector back_insert_iterator iterator bidirectional_iterator bidirectional_iterator_tag forward_iterator forward_iterator_tag front_insert_iterator input_iterator input_iterator_tag insert_iterator istream_iterator iterator_traits ostream_iterator output_iterator output_iterator_tag random_access_iterator random_access_iterator_tag raw_storage_iterator reverse_bidirectional_iterator reverse_iterator sequence_buffer binary_compose binary_function binary_negate binder1st binder2nd divides equal_to unary_compose unary_function unary_negate pair char_traits const_iterator reverse_iterator temporary_buffer + +" Default highlighting +if version >= 508 || !exists("did_cpp_syntax_inits") + if version < 508 + let did_cpp_syntax_inits = 1 + command -nargs=+ HiLink hi link <args> + else + command -nargs=+ HiLink hi def link <args> + endif + HiLink cppSTL Identifier + HiLink cppSTLtype Type + delcommand HiLink +endif + diff --git a/vim/.vim/specific/ddl.vim b/vim/.vim/specific/ddl.vim new file mode 100644 index 0000000..31b9c56 --- /dev/null +++ b/vim/.vim/specific/ddl.vim @@ -0,0 +1 @@ +set filetype=sql diff --git a/vim/.vim/specific/egg.vim b/vim/.vim/specific/egg.vim new file mode 100644 index 0000000..137b3bd --- /dev/null +++ b/vim/.vim/specific/egg.vim @@ -0,0 +1 @@ +setf egg diff --git a/vim/.vim/specific/html.vim b/vim/.vim/specific/html.vim new file mode 100644 index 0000000..6c65216 --- /dev/null +++ b/vim/.vim/specific/html.vim @@ -0,0 +1 @@ +map <F2> <Esc>:%w !xmllint --valid --noout -<CR> diff --git a/vim/.vim/specific/java.vim b/vim/.vim/specific/java.vim new file mode 100644 index 0000000..8e94e99 --- /dev/null +++ b/vim/.vim/specific/java.vim @@ -0,0 +1 @@ +let java_highlight_functions="style" diff --git a/vim/.vim/specific/js.vim b/vim/.vim/specific/js.vim new file mode 100644 index 0000000..3829e28 --- /dev/null +++ b/vim/.vim/specific/js.vim @@ -0,0 +1 @@ +set ft=javascript.jquery diff --git a/vim/.vim/specific/mp.vim b/vim/.vim/specific/mp.vim new file mode 100644 index 0000000..3202f68 --- /dev/null +++ b/vim/.vim/specific/mp.vim @@ -0,0 +1 @@ +set nospell diff --git a/vim/.vim/specific/pro.vim b/vim/.vim/specific/pro.vim new file mode 100644 index 0000000..202f824 --- /dev/null +++ b/vim/.vim/specific/pro.vim @@ -0,0 +1 @@ +set filetype=prolog diff --git a/vim/.vim/specific/py.vim b/vim/.vim/specific/py.vim new file mode 100644 index 0000000..dcd9ced --- /dev/null +++ b/vim/.vim/specific/py.vim @@ -0,0 +1,201 @@ +" Python indent file +" Language: Python +" Maintainer: Eric Mc Sween <em@tomcom.de> +" Original Author: David Bustos <bustos@caltech.edu> +" Last Change: 2004 Jun 07 + +" Only load this indent file when no other was loaded. +if exists("b:did_indent") + finish +endif +let b:did_indent = 1 + +setlocal expandtab +setlocal nolisp +"setlocal autoindent +setlocal shiftwidth=4 +setlocal tabstop=4 +setlocal indentexpr=GetPythonIndent(v:lnum) +setlocal indentkeys=!^F,o,O,<:>,0),0],0},=elif,=except +"Retour à la ligne auto au bout de 80 lignes +setlocal textwidth=80 + +let s:maxoff = 50 + +" Find backwards the closest open parenthesis/bracket/brace. +function! s:SearchParensPair() + let line = line('.') + let col = col('.') + + " Skip strings and comments and don't look too far + let skip = "line('.') < " . (line - s:maxoff) . " ? dummy :" . + \ 'synIDattr(synID(line("."), col("."), 0), "name") =~? ' . + \ '"string\\|comment"' + + " Search for parentheses + call cursor(line, col) + let parlnum = searchpair('(', '', ')', 'bW', skip) + let parcol = col('.') + + " Search for brackets + call cursor(line, col) + let par2lnum = searchpair('\[', '', '\]', 'bW', skip) + let par2col = col('.') + + " Search for braces + call cursor(line, col) + let par3lnum = searchpair('{', '', '}', 'bW', skip) + let par3col = col('.') + + " Get the closest match + if par2lnum > parlnum || (par2lnum == parlnum && par2col > parcol) + let parlnum = par2lnum + let parcol = par2col + endif + if par3lnum > parlnum || (par3lnum == parlnum && par3col > parcol) + let parlnum = par3lnum + let parcol = par3col + endif + + " Put the cursor on the match + if parlnum > 0 + call cursor(parlnum, parcol) + endif + return parlnum +endfunction + +" Find the start of a multi-line statement +function! s:StatementStart(lnum) + let lnum = a:lnum + while 1 + if getline(lnum - 1) =~ '\\$' + let lnum = lnum - 1 + else + call cursor(lnum, 1) + let maybe_lnum = s:SearchParensPair() + if maybe_lnum < 1 + return lnum + else + let lnum = maybe_lnum + endif + endif + endwhile +endfunction + +" Find the block starter that matches the current line +function! s:BlockStarter(lnum, block_start_re) + let lnum = a:lnum + let maxindent = 10000 " whatever + while lnum > 1 + let lnum = prevnonblank(lnum - 1) + if indent(lnum) < maxindent + if getline(lnum) =~ a:block_start_re + return lnum + else + let maxindent = indent(lnum) + " It's not worth going further if we reached the top level + if maxindent == 0 + return -1 + endif + endif + endif + endwhile + return -1 +endfunction + +function! GetPythonIndent(lnum) + + " First line has indent 0 + if a:lnum == 1 + return 0 + endif + + " If we can find an open parenthesis/bracket/brace, line up with it. + call cursor(a:lnum, 1) + let parlnum = s:SearchParensPair() + if parlnum > 0 + let parcol = col('.') + let closing_paren = match(getline(a:lnum), '^\s*[])}]') != -1 + if match(getline(parlnum), '[([{]\s*$', parcol - 1) != -1 + if closing_paren + return indent(parlnum) + else + return indent(parlnum) + &shiftwidth + endif + else + if closing_paren + return parcol - 1 + else + return parcol + endif + endif + endif + + " Examine this line + let thisline = getline(a:lnum) + let thisindent = indent(a:lnum) + + " If the line starts with 'elif' or 'else', line up with 'if' or 'elif' + if thisline =~ '^\s*\(elif\|else\)\>' + let bslnum = s:BlockStarter(a:lnum, '^\s*\(if\|elif\)\>') + if bslnum > 0 + return indent(bslnum) + else + return -1 + endif + endif + + " If the line starts with 'except' or 'finally', line up with 'try' + " or 'except' + if thisline =~ '^\s*\(except\|finally\)\>' + let bslnum = s:BlockStarter(a:lnum, '^\s*\(try\|except\)\>') + if bslnum > 0 + return indent(bslnum) + else + return -1 + endif + endif + + " Examine previous line + let plnum = a:lnum - 1 + let pline = getline(plnum) + let sslnum = s:StatementStart(plnum) + + " If the previous line is blank, keep the same indentation + if pline =~ '^\s*$' + return -1 + endif + + " If this line is explicitly joined, try to find an indentation that looks + " good. + if pline =~ '\\$' + let compound_statement = '^\s*\(if\|while\|for\s.*\sin\|except\)\s*' + let maybe_indent = matchend(getline(sslnum), compound_statement) + if maybe_indent != -1 + return maybe_indent + else + return indent(sslnum) + &sw * 2 + endif + endif + + " If the previous line ended with a colon, indent relative to + " statement start. + if pline =~ ':\s*$' + return indent(sslnum) + &sw + endif + + " If the previous line was a stop-execution statement or a pass + if getline(sslnum) =~ '^\s*\(break\|continue\|raise\|return\|pass\)\>' + " See if the user has already dedented + if indent(a:lnum) > indent(sslnum) - &sw + " If not, recommend one dedent + return indent(sslnum) - &sw + endif + " Otherwise, trust the user + return -1 + endif + + " In all other cases, line up with the start of the previous statement. + return indent(sslnum) +endfunction + diff --git a/vim/.vim/specific/tex.vim b/vim/.vim/specific/tex.vim new file mode 100644 index 0000000..204235a --- /dev/null +++ b/vim/.vim/specific/tex.vim @@ -0,0 +1,10 @@ +" this is mostly a matter of taste. but LaTeX looks good with just a bit +" of indentation. +set sw=2 +set softtabstop=2 +" TIP: if you write your \label's as \label{fig:something}, then if you +" type in \ref{fig: and press <C-n> you will automatically cycle through +" all the figure labels. Very useful! +set iskeyword+=: + +set makeprg=pdflatex\ -shell-escape\ % diff --git a/vim/.vim/specific/tla.vim b/vim/.vim/specific/tla.vim new file mode 100644 index 0000000..9629698 --- /dev/null +++ b/vim/.vim/specific/tla.vim @@ -0,0 +1,2 @@ +set syntax=vhdl +set nospell diff --git a/vim/.vim/specific/xml.vim b/vim/.vim/specific/xml.vim new file mode 100644 index 0000000..3202f68 --- /dev/null +++ b/vim/.vim/specific/xml.vim @@ -0,0 +1 @@ +set nospell diff --git a/vim/.vim/templates/autocompletion.vim b/vim/.vim/templates/autocompletion.vim new file mode 100644 index 0000000..a4dca09 --- /dev/null +++ b/vim/.vim/templates/autocompletion.vim @@ -0,0 +1,11 @@ +" <+DATE+> : Date du jour +%s/<+DATE+>/\=strftime("%d %b %Y")/g + +" <+AUTEUR+> : Auteur +%s/<+AUTEUR+>/Audric Schiltknecht \/ Viveris Technologies/g + +" <+VERSION+> : Par défaut -> 1.0 +%s/<+VERSION+>/1\.0/g + +" <+FILE+> : nom du fichier +%s/<+FILE+>/\=expand('%')/g diff --git a/vim/.vim/templates/c.tpl b/vim/.vim/templates/c.tpl new file mode 100644 index 0000000..0e86285 --- /dev/null +++ b/vim/.vim/templates/c.tpl @@ -0,0 +1,8 @@ +/** + * @file <+FILE+> + * @author <+AUTEUR+> + * @date <+DATE+> + * @version <+VERSION+> + * @brief <+DESCRIPTION_COURTE+> + * + */ diff --git a/vim/.vim/templates/cpp.tpl b/vim/.vim/templates/cpp.tpl new file mode 100644 index 0000000..0e86285 --- /dev/null +++ b/vim/.vim/templates/cpp.tpl @@ -0,0 +1,8 @@ +/** + * @file <+FILE+> + * @author <+AUTEUR+> + * @date <+DATE+> + * @version <+VERSION+> + * @brief <+DESCRIPTION_COURTE+> + * + */ diff --git a/vim/.vim/templates/h.tpl b/vim/.vim/templates/h.tpl new file mode 100644 index 0000000..53a7226 --- /dev/null +++ b/vim/.vim/templates/h.tpl @@ -0,0 +1,14 @@ +/** + * @file <+FILE+> + * @author <+AUTEUR+> + * @version <+VERSION+> + * @brief <+DESCRIPTION_COURTE+> + * + * <+DESCRIPTION_LONGUE+> + * + */ +#ifndef <+HEADER_H+> +#define <+HEADER_H+> + + +#endif diff --git a/vim/.vim/templates/html.tpl b/vim/.vim/templates/html.tpl new file mode 100644 index 0000000..1b18da7 --- /dev/null +++ b/vim/.vim/templates/html.tpl @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head > +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<title></title> +</head> +<body> + +</body> +</html> diff --git a/vim/.vim/templates/java.tpl b/vim/.vim/templates/java.tpl new file mode 100644 index 0000000..7b4f715 --- /dev/null +++ b/vim/.vim/templates/java.tpl @@ -0,0 +1,11 @@ +/** +* @author : <+AUTEUR+> +* @date : <+DATE+> +* @version : <+VERSION+> +*/ + +package <+NOM_PACKAGE+>; + +class <+FILE+> { + +} diff --git a/vim/.vim/templates/py.tpl b/vim/.vim/templates/py.tpl new file mode 100644 index 0000000..606c45a --- /dev/null +++ b/vim/.vim/templates/py.tpl @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- +# Author: <+AUTEUR+> +# $Id:$ + diff --git a/vim/.vimrc b/vim/.vimrc new file mode 100644 index 0000000..e7bace8 --- /dev/null +++ b/vim/.vimrc @@ -0,0 +1,365 @@ +"Fichier de configuration perso de VIM + +" Enlève la compatibilité avec le "vieux vi" +set nocompatible + +" Affiche la commande que vous êtes en train de taper, le mode en cours, et +" votre position dans le texte +set showcmd +set showmode +set ruler + +" Une petite fenêtre pour voir les complétions possibles +set wildmenu + +"" Indentation +"Auto-indentation +"set autoindent +" Indentation à la C +"set cindent +" Indentation intelligente +set smartindent + +" Copie l'indentation lors d'une nouvelle ligne +set copyindent + +" Le terminal a un fond foncé +set background=dark + +" Coloration syntaxique +syntax on + +" Détection automatique du type de fichier & activation des plugins/indentations +filetype plugin on + +" Animation lors de la fermeture des parenthèses +set showmatch + +" Retour à la ligne auto au bout de 80 lignes +set textwidth=80 + +" Utilisation de ack a la place de grep +set grepprg=ack\ -a + +" Utilisation de la souris +set mouse=a +set nopaste + + +""""""""""""" +" Options d'affichage +""""""""""""" + +" Surligne la ligne courante +"set cursorline +"highlight CursorLine term=reverse cterm=reverse + +" Taille des tabs +set shiftwidth=4 +set softtabstop=4 +set tabstop=4 + +" Affiche les numéros des lignes +"set number +highlight LineNr ctermbg=black ctermfg=gray + +" Personnalisation de la barre de status +set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [ASCII=\%03.3b]\ [Line=%04l]\ [Col=%04v]\ [%p%%] +set laststatus=2 + +" Amélioration de la lisibilité des noms des onglets +highlight TabLine term=none cterm=none +highlight TabLineSel ctermbg=darkblue + +" On ouvre le fichier avec le curseur à la position de la dernière édition +autocmd BufReadPost * silent! call s:CursorOldPosition() + +" Activation de la gestion des ouvertures/fermetures de code +set foldenable +" Affichage de "=" sur les pliages +set fillchars=fold:= +" Définition de la fonction perso d'affichage du pliage +set foldtext=MyFoldFunction() + +""""""""""""" +" Dictionnaire +""""""""""""" + +"setlocal spell spelllang=fr +set spellfile=~/.vim/spellfile.utf-8.add + +""""""""" +" Recherche +"""""""""" + +" Recherche insensible à la casse lorsque qu'auncune majuscule n'est utilisée. +" Les deux options suivantes sont nécéssaires. +set ignorecase +set smartcase +" Recherche incrémentielle +set incsearch + +" Colore les recherches en cours +set hlsearch + +"""""""""" +" Programmation +"""""""""" +set tags+=~/.vim/ctags/c +set tags+=~/.vim/ctags/c++ + +"""""""""" +" Cscope plugin : +"""""""""" + +" This tests to see if vim was configured with the '--enable-cscope' option +" when it was compiled. If it wasn't, time to recompile vim... +if has("cscope") + + """"""""""""" Standard cscope/vim boilerplate + + " use both cscope and ctag for 'ctrl-]', ':ta', and 'vim -t' + set cscopetag + + " check cscope for definition of a symbol before checking ctags: set to 1 + " if you want the reverse search order. + set csto=0 + + " add any cscope database in current directory + if filereadable("cscope.out") + cs add cscope.out + " else add the database pointed to by environment variable + elseif $CSCOPE_DB != "" + cs add $CSCOPE_DB + endif + + " do NOT show msg when any other cscope db added - annoying as hell + set nocscopeverbose + + + """"""""""""" My cscope/vim key mappings + " + " The following maps all invoke one of the following cscope search types: + " + " 's' symbol: find all references to the token under cursor + " 'g' global: find global definition(s) of the token under cursor + " 'c' calls: find all calls to the function name under cursor + " 't' text: find all instances of the text under cursor + " 'e' egrep: egrep search for the word under cursor + " 'f' file: open the filename under cursor + " 'i' includes: find files that include the filename under cursor + " 'd' called: find functions that function under cursor calls + " + " Below are three sets of the maps: one set that just jumps to your + " search result, one that splits the existing vim window horizontally and + " diplays your search result in the new window, and one that does the same + " thing, but does a vertical split instead (vim 6 only). + " + " I've used CTRL-\ and CTRL-@ as the starting keys for these maps, as it's + " unlikely that you need their default mappings (CTRL-\'s default use is + " as part of CTRL-\ CTRL-N typemap, which basically just does the same + " thing as hitting 'escape': CTRL-@ doesn't seem to have any default use). + " If you don't like using 'CTRL-@' or CTRL-\, , you can change some or all + " of these maps to use other keys. One likely candidate is 'CTRL-_' + " (which also maps to CTRL-/, which is easier to type). By default it is + " used to switch between Hebrew and English keyboard mode. + " + " All of the maps involving the <cfile> macro use '^<cfile>$': this is so + " that searches over '#include <time.h>" return only references to + " 'time.h', and not 'sys/time.h', etc. (by default cscope will return all + " files that contain 'time.h' as part of their name). + + + " To do the first type of search, hit 'CTRL-\', followed by one of the + " cscope search types above (s,g,c,t,e,f,i,d). The result of your cscope + " search will be displayed in the current window. You can use CTRL-T to + " go back to where you were before the search. + " + + nmap <C-@>s :cs find s <C-R>=expand("<cword>")<CR><CR> + nmap <C-@>g :cs find g <C-R>=expand("<cword>")<CR><CR> + nmap <C-@>c :cs find c <C-R>=expand("<cword>")<CR><CR> + nmap <C-@>t :cs find t <C-R>=expand("<cword>")<CR><CR> + nmap <C-@>f :cs find f <C-R>=expand("<cfile>")<CR><CR> + nmap <C-@>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR> + + + " Using 'CTRL-spacebar' (intepreted as CTRL-@ by vim) then a search type + " makes the vim window split horizontally, with search result displayed in + " the new window. + " + " (Note: earlier versions of vim may not have the :scs command, but it + " can be simulated roughly via: + " nmap <C-@>s <C-W><C-S> :cs find s <C-R>=expand("<cword>")<CR><CR> + + nmap <C-@><C-@>ss :scs find s <C-R>=expand("<cword>")<CR><CR> + nmap <C-@><C-@>sd :scs find g <C-R>=expand("<cword>")<CR><CR> + nmap <C-@><C-@>sc :scs find c <C-R>=expand("<cword>")<CR><CR> + nmap <C-@><C-@>st :scs find t <C-R>=expand("<cword>")<CR><CR> + nmap <C-@><C-@>sf :scs find f <C-R>=expand("<cfile>")<CR><CR> + nmap <C-@><C-@>si :scs find i ^<C-R>=expand("<cfile>")<CR>$<CR> + + + """"""""""""" key map timeouts + " + " By default Vim will only wait 1 second for each keystroke in a mapping. + " You may find that too short with the above typemaps. If so, you should + " either turn off mapping timeouts via 'notimeout'. + " + "set notimeout + " + " Or, you can keep timeouts, by uncommenting the timeoutlen line below, + " with your own personal favorite value (in milliseconds): + " + "set timeoutlen=4000 + " + " Either way, since mapping timeout settings by default also set the + " timeouts for multicharacter 'keys codes' (like <F1>), you should also + " set ttimeout and ttimeoutlen: otherwise, you will experience strange + " delays as vim waits for a keystroke after you hit ESC (it will be + " waiting to see if the ESC is actually part of a key code like <F1>). + " + "set ttimeout + " + " personally, I find a tenth of a second to work well for key code + " timeouts. If you experience problems and have a slow terminal or network + " connection, set it higher. If you don't set ttimeoutlen, the value for + " timeoutlent (default: 1000 = 1 second, which is sluggish) is used. + " + "set ttimeoutlen=100 + +endif + +"""""""""" +" Fonctions d'affichage tirées de GLMF +"""""""""" + +" Affichage en inverse couleur +function! s:DisplayStatus(msg) + echohl Todo + echo a:msg + echohl None +endfunction + +"" Fonctions de gestion de la souris +"Enregistrement de l'état de la gestion de la souris +let s:mouseActivate = 1 +"Fonction permettant l'activation/désactivation de la gestion de la souris +function! ToggleMouseActivate() + if (s:mouseActivate) + let s:mouseActivate = 0 + set mouse=n + set paste + call s:DisplayStatus('Désactivation de la gestion de la souris (mode collage)') + else + let s:mouseActivate = 1 + set mouse=a + set nopaste + call s:DisplayStatus('Activation de la gestion de la souris (mode normal)') + endif +endfunction + +"" Fonction de "nettoyage" d'un fichier : +" - Suppression des ^M en fin de ligne +" - Encodage UTF-8 +function! ClearCode() + set fileformat=unix + set fileencoding=utf-8 + call s:DisplayStatus('Code nettoyé') +endfunction + +"" Déplacement de l'onglet courant vers la g ou la d +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 + +"" Ouverture des fichiers avec le curseur à la position de la dernière édition +function! s:CursorOldPosition() + if line("'\"") > 0 && line("'\"") <= line("$") + exe "normal g`\"" + end if +endfunction + +"" Affichage personnalisé des replis de code +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 + + +" Activation des templates lors de la création d'un nouveau fichier, et +" chargement des abbreviations et des commandes Vim spécifiques +function! LoadTemplate(extension, type) + if (a:type == 'all') + silent! execute '0r ' . $HOME . '/.vim/templates/' . a:extension . '.tpl' + silent! execute 'source ' . $HOME . '/.vim/templates/autocompletion.vim' + endif + " Insertion des abbreviations + silent! execute 'source ' . $HOME . '/.vim/abbreviations/' . a:extension . '.abb.vim' + " Insertion du dictionnaire + set dictionary+=$HOME . '/.vim/dictionary/' . a:extension . '.dict' + " Insertion des commandes spécifiques Vim + silent! execute 'source ' . $HOME . '/.vim/specific/' . a:extension . '.vim' +endfunction + +" Activation des templates et des chargements spécifiques en fonction de +" l'extenion du fichier chargé +autocmd BufNewFile * silent! call LoadTemplate('%:e', 'all') +autocmd BufRead * silent! call LoadTemplate('%:e', 'noTemplate') + +" Surlignement des champs à remplir dans les templates +3match Todo /<+.\++>/ + +"" Aide mémoire +" Variable indiquant l'état de l'affichage de l'aide +let helpDisplay = 0 +" Affiche/Masque l'aide +function! HelpMemory() + if g:helpDisplay == 0 + silent! topleft vertical 40split +buffer helpMemory + let g:helpDisplay = 1 + set buftype=nofile + 0read $HOME/.vim/memory.txt + highlight Memory ctermfg=white ctermbg=blue + "3match Memory /^.\+\ \+:/ + 3match Memory /<.\+>/ + else + bdelete helpMemory + let g:helpDisplay = 0 + endif +endfunction + +" Affiche/Masque les caracteres +function! DisplayChar() + set list! lcs=tab:\|_,eol:¶,nbsp:~ +endfunction + +" Surligne les lignes trop longues +" Variable indiquant l'état +let hlTooLarge = 0 +function! HlTooLarge() + if g:hlTooLarge == 0 + let g:hlTooLarge = 1 + highlight OverLength ctermbg=red ctermfg=white guibg=#592929 + match OverLength /\%81v.\+/ + else + match + let g:hlTooLarge = 0 + endif +endfunction + + +" Lecture des raccourcis claviers généraux +source $HOME/.vim/shortkeys.vim |