dotfiles/vim/.vimrc
2024-06-20 11:38:15 +02:00

170 lines
4.1 KiB
VimL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

" {{{ Vundle
set nocompatible " be iMproved, required
filetype off " required
" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" let Vundle manage Vundle, required
Plugin 'VundleVim/Vundle.vim'
Plugin 'scrooloose/nerdtree.git'
Plugin 'bling/vim-airline'
Plugin 'vim-jp/vim-go-extra'
Plugin 'fatih/vim-go'
Plugin 'posva/vim-vue'
Plugin 'leafgarland/typescript-vim'
Bundle 'Quramy/tsuquyomi'
Bundle 'chase/vim-ansible-yaml'
" }}}
" {{{ airline
if !exists('g:airline_symbols')
let g:airline_symbols = {}
endif
" unicode symbols
let g:airline_left_sep = '»'
let g:airline_left_sep = '▶'
let g:airline_right_sep = '«'
let g:airline_right_sep = '◀'
let g:airline_symbols.linenr = '␊'
let g:airline_symbols.linenr = '␤'
let g:airline_symbols.linenr = '¶'
let g:airline_symbols.branch = '⎇'
let g:airline_symbols.paste = 'ρ'
let g:airline_symbols.paste = 'Þ'
let g:airline_symbols.paste = '∥'
let g:airline_symbols.whitespace = 'Ξ'
" powerline symbols
let g:airline_left_sep = ''
let g:airline_left_alt_sep = ''
let g:airline_right_sep = ''
let g:airline_right_alt_sep = ''
let g:airline_symbols.branch = ''
let g:airline_symbols.readonly = ''
let g:airline_symbols.linenr = ''
set laststatus=2
let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#tab_nr_type = 1 " tab number
let g:airline#extensions#tabline#buffer_nr_show = 1
let g:airline#extensions#tabline#show_close_button = 0
let g:airline#extensions#tabline#fnamemod = ':t:.'
" }}}
syntax enable
set history=500
set nu
set cursorline
set ai
set smartindent
" lignes autour du curseur lors d'un déplacement (j/k)
set so=5
" nombre de colonnes pour représenter une tabulation, nombre d'espaces d'une
" tabulation, nombre d'espaces d'une indentation, ne pas remplacer les
" tabulations par des espaces
set ts=4 sts=4 sw=4 noexpandtab
" detection du type de fichier et indentation adequate (touche =)
filetype on
filetype plugin on
filetype indent on
" permet de quiter un buffer modifié sans alerte (avec :bn ou :bp)
" on a toujours l'alerte si on quitte vim
set hidden
" theme de couleur
set t_Co=256
set background=dark
let g:solarized_termtrans=1
let g:solarized_termcolors=256
colorscheme solarized
" recherche avec surbrillance
set incsearch
set showmatch
set hlsearch
" relecture fichier si modif externe
set autoread
" indent javascript
filetype plugin indent on
" completion améliorée, ignore certains fichiers
set wildmenu
set wildignore=*~,*/.git/*
" changement de ligne en fin/debut de ligne pour ces mouvements
set whichwrap+=h,l
" abandon buffer quitté
set hid
" remap <ESC>
inoremap jk <ESC>
" leader key
let mapleader = "\<Space>"
" modeline
set modeline
" tabs
set expandtab
set tabstop=2
set shiftwidth=2
" {{{ Shortcuts
" disable ex mode
nnoremap Q <Nop>
" clear search
nnoremap <Leader>c :nohl<cr>
" NERdTree
nnoremap <Leader>o :NERDTree<cr>
" save
nnoremap <Leader>w :w<CR>
" quit
nnoremap <Leader>q :q<CR>
" navigate buffers
nnoremap <Leader>l :bn<CR>
nnoremap <Leader>h :bp<CR>
nnoremap <Leader>d :bd<CR>
" copy/paste system clipboard
nnoremap <Leader>pp :setlocal paste!<CR>
vmap <Leader>y "+y
vmap <Leader>d "+d
nmap <Leader>p "+p
nmap <Leader>P "+P
vmap <Leader>p "+p
vmap <Leader>P "+P
" enter visual mode
nmap <Leader><Leader> V
" Automatically jump to end of text you pasted
vnoremap <silent> y y`]
vnoremap <silent> p p`]
nnoremap <silent> p p`]
" }}}
" Stop that stupid window from popping up
map q: :q
" {{{ Vundle
" All of your Plugins must be added before the following line
call vundle#end() " required
filetype plugin indent on " required
" }}}
" {{{ Go auto-format
autocmd FileType go autocmd BufWritePre <buffer> Fmt
nnoremap <Leader>i :GoImports<cr>
" }}}
" {{{ Vue.js components
autocmd FileType vue syntax sync fromstart
" }}}
" {{{ Typescript
autocmd BufNewFile,BufRead *.ts setlocal filetype=typescript
" }}}
" {{{ Markdown + spell
au BufNewFile,BufFilePre,BufRead *.md set filetype=markdown
au BufNewFile,BufFilePre,BufRead *.md set spell
au BufNewFile,BufFilePre,BufRead *.md set linebreak
set spelllang=fr
" }}}