|
|
|
Sujet : Echange de conf... | posté par Skippythekangoo 102 messages le 19-11-2008 à 09:36 | | Salut, comme tout à chacun, j'essais de mefaire une conf au petit oignons (jeunes, frais et fondu dans du beurre, un vrai délice... :) ).
Donc, je propose, de faire un echange de scripts, conf d'appli utilisé par quasi-tous (pour ne pas provoquer le troll qui dort en chacun de nous), j'ai nommé weechat/irssi/..., bash/ksh/..., Vim/Emacs/d'autre??? et tout ce genre de truc.
Donc je vais commencer par mon .vimrc, et les plugin utiliser (dont mon premier code pour vim... :) )
" Apparement bien mieux comme ça ... :)
set nocompatible
" Fond de console sombre
"set background=dark
" Activations de la coloration syntaxique
syntax on
" Modification du modle de coloration syntaxique
"colorscheme darkblue
colorscheme default
" Fonction d'affichage d'un message en inverse vidéo
function! s:DisplayStatus(msg)
echol Todo
echo a:msg
echol None
endfunction
" Variable d'enregistrement de l'état de la gestion de la souris
let s:mouseActivation = 1
" Fonction permetant l'activation/désactivation de la gestion de la souris
function! ToggleMouseActivation()
if (s:mouseActivation)
let s:mouseActivation = 0
set mouse=n
set paste
call s:DisplayStatus('Désactivation de la gestion de la souris (mode collage)')
else
let s:mouseActvation = 1
set mouse=a
set nopaste
call s:DisplayDtatus('Activation de la getion de la souris (mode normal)')
endif
endfunction
" Activation par défaut au démarrage de la gestion de la souris
set mouse=a
set nopaste
" Personalisation de la ligne de status
set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%y]\ [ASCCII=\%03.3b]\ [Line=%04l]\ [Col=%04v]\ [%p%%]
set laststatus=2
" Activation de l'auto-indentation
set autoindent
" Redéfinition des tabulations
set expandtab
set shiftwidth=4
set softtabstop=4
set tabstop=4
" Fonction de 'nettoyage' d'un fichier
" - Remplacement des tabulations par des espaces
" - Suppressin des caractères en fin de ligne
function! CleanCode()
%retab
%s///g
call s:DispalyStatus('Code néttoyé')
endfunction
"Déplacement de l'eonglet courant vers la droite ou vers la gauche
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
" Ajout de la numérotatin des lignes
set number
highlight LineNr ctermbg=black ctermfg=gray
" Ajout d'une ligne colorée pour surligner la ligne en cour
set cursorline
highlight CursorLine term=reverse cterm=reverse
" Amélioration de la lisibilté des noms des onglets
highlight TabLine term=none cterm=none
highlight TabLineSel ctermbg=darkblue
" Définition du style des signets
sign define information text=>> linehl=Warning texthl=Error
" Variable d'enregistrement des identifiants de signets pour chaque buffer
let s:signMarks = {}
"Variable d'enregistrement des sauts sur les signets de chaque buffer
let s:jumpMarks = {}
" Fonction de marquage des signets
function! MarkSign()
let filename = bufname(winbufnr(winnr()))
if (has_key(s:signMarks, filename))
let s:signMarks[filename] += 1
else
let s:signMarks[filename] = 1
endif
exe ':sign place ' . s:signMarks[filename] . ' line=' . line('.') . ' name=information file=' .expand('%:p')
endfunction
" Fonction de saut sur un signet
function! JumpToSign()
let filename = bufname(winbufnr(winnr()))
if (has_key(s:signMarks, filename))
if (has_key(s:JumpMarks, filename))
let s:jumpMarks[filename] += 1
else
let s:jumpMarks[filename] = 1
endif
if (s:jumpMarks[filename] > s:signMarks[filename])
let s:jumpMarks[filename] = 1
endif
silent! execute ":sign jump ' . s:jumpMarks[filename] . ' file=' . expand('%:p')
endif
endfunction
"Auto-completion multiple
function! MutilpleAutoCompletion()
if &omnifunc != ''
return "\<C-x>\<C-o)"
elseif &dictionary != ''
return "\<C-x>\<C-k>"
else
return "<C-x>\<C-n>""
endif
endfunction
" Affichage textuele personalisé lors d'un pliage
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 de la gestion des ouvertures/fermetures des replis de code
set foldenable
" Affichage d'une ligne "=" sur les pliages
set fillchars=fold:=
" Définition personelle de l'affichage du pliage
set foldtext=MyFoldFunction()
" Active la touche Backspace
set backspace=2
" Active vimmp (client mpd et xmms2)
if has('python')
py import os, sys
py sys.path.append(os.path.expanduser("~/.vim/vimmp"))
pyf ~/.vim/vimmp/main.py
endif
let g:vimmp_server_type="mpd"
"nmap <silent> <leader>x :py vimmp_toggle()<cr>
nmap <silent> <F6> :py vimmp_toggle()<cr>
let g:mpd_music_directory="~/musiques"
let g:mpd_playlist_directory="~/.mpd/playlists"
" Définition des variables global"
let $MyName = "Skippy the kangoo"
let $MyMail = "Skippythekangoo CHEZ yahoo POINT fr"
let $ThisFile = expand("%:t")
" Ouvre .vimrc dans un nouvel onglet
map <silent> <F2> :tabnew ~/.vimrc <CR>
" Ouvre .bashrc dans un nouvel onglet
map <silent> <F3> :tabnew ~/.bashrc <CR>
" Ajoute/enleve les commentaires (necessite NEERDComments)
map <F4> ,c<space> <CR>
" Ouvre le navigateur de fichier NERDTree
map <silent> <F5> :NERDTree <CR>
" Navigue j'usqu'a l'onglet precedent
map <silent> <F7> :tabprevious <CR>
map <silent> <s-tab> :tabprevious <CR>
" Navigue jusqu'au prochain onglet
map <silent> <F8> :tabnext <CR>
map <silent> <tab> :tabnext <CR>
" Ouvre un onglet vierge
map <F9> :tabnew
" Active la numérotation des lignes
map <silent> <F11> :set nonumber <CR>
map <silent> <F12> :set number <CR>
" Desactive le Hightlight de la recherche
map <silent> <F10> :set nohlsearch <CR>
|
les plugins utilisés sont NERD_tree (un navigateur de fichier, NERD_commenter (gestionnaire de commentaire), autoclose (ferme les parentheses, crochet et autres, à leur ouverture), autocomplpop (affiche un popup avec les completions proposées, et le mien (ne pas se moque, hein...)
STK_autoheader (permet d'avoir une entete spécifique pour chaque nouveau fichier suivant l'extention) que voici
"""
" Codé avec les pieds par Skippy the kangoo
" <Skippythekangoo CHEZ yahoo POINT fr>
"""""
"""
" PRESENTATION DU SCRIPT : STK_autoheader.vim
"
" Objectif : Insere une entete aux nouveau fichier suivant leur extention
" en utilisant le shell et l'utilisateur courant
"
" Version 0.0.1
"""""
function Entete()
let @a = $MyName
let @b = $MyMail
normal i###
normal o# Codé avec les pieds par
normal "ap
normal o# <
normal "bp
normal A>
normal o#####
"normal 2o
endfunction
function Description_Entete()
let file_name = expand("%:t")
let @a = file_name
normal i###
normal o# PRESENTATION DU SCRIPT :
normal "ap
normal o#
normal o# Objectif :
normal o#####
endfunction
function Bash_Entete()
let @a = $SHELL
normal i#!
normal "ap
normal 2o
call Entete()
normal 2o
call Description_Entete()
normal kA
endfunction
function Python_Entete()
let @a = "/usr/bin/python"
normal i#!
normal "ap
normal 2o
call Entete()
normal 2o
call Description_Entete()
normal kA
endfunction
function Vim_Entete()
call Entete()
normal 2o
call Description_Entete()
1,10s/#/"/g
normal kA
endfunction
autocmd BufNewFile *.sh call Bash_Entete()
autocmd BufNewFile *.py call Python_Entete()
autocmd BufNewFile *.vim call Vim_Entete()
|
les codes des plugins se trouve sur http://vim.org
C'est un peu le bordel dans mon code...
et la prochaine fois, je poserais mes conf sur un ftp, ce sera plus simple...
P.S. TrueDD, il y a moyen d'avoir un espace pour ce genre d'idée pour tout regrouper ???
_______________________
º¿º Skippy the Kangoo º¿º |
|
|
|