Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 28-12-2013 17:07:26

Vertical
Membre
Lieu : Dans la boîte de chocolats
Distrib. : Arch GNU/Linux, Debian Wheezy (x2)
Noyau : 3.2.0-4-amd64, 3.12-0.bpo.1-amd64
(G)UI : (Open|Flux)box, Xfce
Inscription : 03-11-2013
Site Web

Sujet-fleuve sur les vimrc

Voici un petit sujet pour ceux qui voudraient poster leur vimrc ("documenté" de préférence). Ça peut être l'occasion de découvrir des plugins, des commandes ou des mappages intéressants.
J'invite d'ailleurs les utilisateurs de Emacs à faire de même.
Voici le mien :

set nocompatible
call pathogen#infect()
call pathogen#helptags()
"-> Ces 3 lignes me permettent d'utiliser [url=http://logicalfriday.com/2011/07/18/using-vim-with-pathogen/]pathogen[/url], qui gère "automatiquement" les plugins vim.

set number
"-> Active la numérotation des lignes


syntax on
set background=dark
"-> Ces deux lignes activent la coloration syntaxique pour un fond sombre (mon terminal est en blanc sur fond noir)


let g:tex_flavor='latex'
"-> Pour utiliser le plugin vim-latex http://vim-latex.sourceforge.net/


nnoremap <C-p> :Unite file_rec/async<cr>
nnoremap<space>/ :Unite grep:.<cr>
"-> Deux mappings du plugin Unite.vim ( https://github.com/Shougo/unite.vim ). Le premier me permet d'ouvrir un buffer de recherche de fichiers avec Ctrl+p. Le deuxième me permet de chercher du texte et de naviguer parmi les résultats.


nnoremap <silent> gr dWWP
nnoremap <silent> gl BdWBP
nnoremap <silent> gc xph
" -> ces 3 mappings me permettent d'inverser des mots (les 2 premiers) ou des caractères (le dernier).

" À noter, les 2 premiers ne sont pas parfaits (l'idée étant d'approcher au mieux le M-x transpose-words de Emacs, mais le résultat est malheureusement mitigé)


nnoremap <C-I> :%s/^-/\t\\item/g<cr>
" -> Travaillant en LaTeX avec des collègues, j'ai parfois des documents avec des tirets pour indiquer une liste. Ce mapping me permet de les convertir automatiquement pour le compilo LaTeX.


nnoremap <C-n> :bn<cr>
" -> Ctrl+n passe au buffer suivant

nnoremap <F4> :sbn<cr>
"-> F4 splitte l'écran et passe au buffer suivant

nnoremap <C-b> :bp<cr>
" -> C-b passe au buffer précédent

nnoremap <F3> :sbp<cr>
" -> F3 splitte l'écran et passe au buffer précédent.


 



Voilà, si vous avez des remarques, des astuces (je suis preneur de toute astuce qui me permettrait d'imiter parfaitement le comportement du M-x transpose-words d'Emacs, à ce propos).

Hors ligne

#2 01-01-2014 19:46:12

captnfab
Admin-Girafe
Lieu : /dev/random
Distrib. : Debian Stretch/Sid/Rc-Buggy
Noyau : Linux (≥ 4.3)
(G)UI : i3-wm (≥ 4.11)
Inscription : 07-07-2008
Site Web

Re : Sujet-fleuve sur les vimrc

Y'a sans doute pas mal de choses inutiles là-dedans, je ne l'ai quasiment pas touché depuis 5 ans… Mais au moins une bonne partie est commentée :

" #####################
" # Options generales #

" #####################


" ## Ne pas utiliser le mode de compatibilité vi

"set nocompatible (inutile)

set runtimepath+=~/.local/share/vim/

" ## Encodage


" Encodage par défaut des buffers en utf-8

set encoding=utf-8
" Encodage par défaut des fichiers en utf-8

set fileencoding=utf-8

" ## Sauvegarde


" Fait une copie de sauvegarde lors de l'écrasement d'un fichier

set backup
" Dossier contenant la sauvegarde. N'oubliez pas de le créer et de lui faire un

" chmod 700

set backupdir=~/.cache/vim/backup

" ## Sessions et Views

set viewdir=~/.local/var/vim/views


" #######################

" # Terminal, X et Unix #

" #######################


" ## Pour le terminal


" On transmet les 'beep' au terminal, on ne 'flash' pas

set noerrorbells

" Bien interpréter les caractères de contrôle

nmap <ESC>Od <C-Left>
nmap <ESC>Oc <C-Right>
nmap <ESC>Oa <C-Up>
nmap <ESC>Ob <C-Down>
nmap <ESC>[D <C-Left>
nmap <ESC>[C <C-Right>
nmap <ESC>[B <C-Down>
nmap <ESC>[A <C-Up>
nmap [1;5D <C-Left>
nmap [1;5C <C-Right>
nmap [1;5B <C-Down>

" ## Unixage


" Path pour la recherche de fichier avec :find, :sfind et :tabfind

set path=.,/usr/include,/usr/X11R6/include,/usr/local/include
" Shell par défaut

set shell=/bin/sh

" ## X


" Pas de souris, boudiou !

set mouse=
" Le texte sélectionné en mode visuel est collé dans le presse-papier PRIMARY

set clipboard=autoselect

" ############################

" # Indentation et formatage #

" ############################


" Taille maximale d'une ligne

set textwidth=80

" Indentation gérée par les plugins plutôt que par autoindent

set noautoindent
filetype plugin on
filetype indent on

" On remplace les \t par des espaces

set expandtab

" Largeur de l'autoindentation

set shiftwidth=2
" Largeur de l'indentation avec <tab>

set softtabstop=2
" Largeur du caractère <tab>

set tabstop=1

" Mappings

vnoremap <C-F> =$
vnoremap <tab> =
nnoremap <tab> =$
nnoremap <C-tab> mzvip=`z

" #########################

" # Coloration syntaxique #

" #########################


" ## Général


" Parenthèses électriques

set showmatch

" Coloration des caractères particuliers

set list
set listchars=nbsp:~,trail:¤,extends:>,precedes:<,tab:>-

" Coloration syntaxique

syntax on

" Configuration du parsing pour la coloration syntaxique

"syn sync minlines=10000 maxlines=10000


" Configuration du hilight quand vim est dans un terminal couleur

"hi Normal ctermfg=gray ctermbg=black


" ## Particularité des langages


" Pour les fichiers en général

autocmd FileType * set formatoptions=tcql nocindent comments&

" Pour les fichiers c/cpp :

" - numérotation automatique des lignes

" - indentation top moumoutte (je ne sais plus ce que ça fait)

autocmd FileType c,cpp set number cinoptions={.5s,+.5s,t0,n-1,p2s,(03s,=.5s,>1s,=1s,:1s formatoptions=croql cindent comments=sr:/*,mb:*,el:*/,://
autocmd FileType c,cpp let Tlist_Ctags_Cmd = "/usr/bin/ctags"
autocmd FileType c,cpp let Tlist_WinWidth = 50
autocmd FileType c,cpp map <F4> :TlistToggle<cr>
autocmd FileType c,cpp map <F8> :!/usr/bin/ctags -R --c++-kinds=+p --fields=+iaS --extra=+q . <CR> <CR>


" Pour les fichiers shell script

" - corrige la coloration syntaxique

autocmd FileType sh let g:is_posix = 1

" #############

" # Recherche #

" #############


" La recherche reprend au début du fichier (resp à la fin) une fois la fin (resp

" le début) atteint.

set wrapscan

" Highlight les paterns recherchés

set hlsearch

" Recherche en live

set incsearch

" #############

" # Interface #

" #############


" Complétion en mode insertion (<C-n>)

set completeopt=longest,menuone

" ## Ligne de statut et Menu


" Complétion dans la barre de commande

set wmnu
set wildmode=list:longest,list:full
" Fichiers ignorés lors de la complétion

set wildignore=*.o,*.r,*.so,*.sl
" Taille de l'historique de la barre de commandes

set history=2000
set viminfo='100,<50,s10,h,n~/.cache/vim/info
" Affichage de la position dans le fichier dans la barre de statut
set ruler
" Configuration de l'
affichage de la date et de la position dans le fichier
set rulerformat=%27(%{strftime('%a\ %e\ %b\ %I:%M\ %p')}\ %2l,%-2(%c%V%)\ %P%)
" Affichage du mode dans la barre de statut

set showmode
" Affichage intelligent des avertissements (file format, file status, etc.)

set shm=a
" La ligne de statut est l'avant dernière ligne

set laststatus=2

" Affichage ligne/colonne

au WinLeave * set nocursorline nocursorcolumn
au WinEnter * set cursorline cursorcolumn
set cursorline cursorcolumn

" ## Fenetres


" Hauteur minimale d'une fenêtre active

set winheight=1
" Hauteur minimale d'une fenêtre

set winminheight=0
" Ne redimensionne pas automatiquement toutes les fenêtres lors de

" l'ouverture/fermeture de l'une d'entre elles

set noequalalways
" Ajoute les nouvelles fenêtres en dessous ou à droite

set splitbelow
set splitright

" ## Tabs


" Raccourcis claviers pour les Tabs

map <C-Down>  :tabnew <CR>
nmap <C-Right> :tabnext <CR>
nmap <C-Left>  :tabprevious <CR>



" ############################

" # Configuration des plugin #

" ############################


" ## vim-scripts

"source /usr/share/vim-scripts/games/VimSokoban/sokoban.vim

"source /usr/share/vim-scripts/plugin/bufexplorer.vim

"source /usr/share/vim-scripts/plugin/taglist.vim


" ## TOHtml

" Le plugin 2html utilise le CSS

let html_use_css = 1

" ## Vérification orthographique

" en français, 10 suggestions

let loaded_vimspell = 1
set spelllang=fr
set spellsuggest=10
let spell_executable = "aspell"
let spell_auto_type = ''
let spell_insert_mode = 0

" ## ctags

" génération automatique pour les extensions connues

let generate_tags=1
" affichage dans la statusline

let g:ctags_statusline=1

" Configuration OmniCpp (C++)

let OmniCpp_DefaultNamespaces=["std", "_GLIBCXX_STD"]
let OmniCpp_GlobalScopeSearch = 1
let OmniCpp_NamespaceSearch = 1
let OmniCpp_MayCompleteDot = 1
let OmniCpp_MayCompleteArrow = 1
let OmniCpp_MayCompleteScope = 1
let OmniCpp_ShowPrototypeInAbbr = 1

" Configuration de taglist

"set tags+=~/.vim/tags/stl


" ################

" # Abréviations #

" ################


" ## Complétion par dictionnaire

" (Ctrl-x Ctrl-k)

set dictionary+=/usr/share/dict/american-english
set dictionary+=/usr/share/dict/french

" ## Latex

let g:tex_flavor='latex'
set foldenable
imap <buffer> <C>it <Plug>Tex_InsertItemOnThisLine
set grepprg=grep\ -nH\ $*
iabbrev \N \mathbb{N}
iabbrev \P \mathbb{P}

colo desert "elflord default torte darkblue

set t_Co=16
hi Cursor       ctermbg=12
hi CursorLine   ctermbg=16
hi CursorColumn ctermbg=16

" Siff

autocmd BufWritePost * if &diff == 1 | diffupdate | endif
hi DiffChange term=reverse cterm=bold ctermbg=cyan ctermfg=black
hi DiffText term=reverse cterm=bold ctermbg=gray ctermfg=black
hi DiffAdd term=reverse cterm=bold ctermbg=green ctermfg=white
hi DiffDelete term=reverse cterm=bold ctermbg=red ctermfg=black


"set runtimepath+=/srv/gaia64/usr/share/lilypond/2.12.2/vim


" Compilation rapide de ma thèse :

map é <esc>:!vserv gaia64 make -B manuscrit.pdf<cr>


captnfab,
Association Debian-Facile, bépo.
TheDoctor: Your wish is my command… But be careful what you wish for.

Hors ligne

Pied de page des forums