home/dotfiles/.vimrc

161 lines
4.1 KiB
VimL
Raw Normal View History

2020-06-19 08:03:11 +02:00
" VIM Configuration - DarKou
2020-04-24 19:21:58 +02:00
2020-06-19 08:03:11 +02:00
" Cancel VI compatibility
set nocompatible
2020-04-24 19:21:58 +02:00
2020-06-19 08:03:11 +02:00
" -- Vim-plug
if empty(glob('~/.vim/autoload/plug.vim'))
silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs
\ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
autocmd VimEnter * PlugInstall --sync | source $MYVIMRC
endif
call plug#begin('~/.vim/plugged')
Plug 'arcticicestudio/nord-vim'
Plug 'sjbach/lusty'
Plug 'kshenoy/vim-signature'
Plug 'w0rp/ale'
Plug 'ap/vim-css-color'
Plug 'mileszs/ack.vim'
Plug 'ctrlpvim/ctrlp.vim'
2020-06-21 19:37:49 +02:00
Plug 'moll/vim-node'
2020-07-11 08:27:10 +02:00
Plug 'pangloss/vim-javascript'
2020-08-17 11:52:31 +02:00
Plug 'briancollins/vim-jst'
2020-07-11 08:27:10 +02:00
Plug '1995eaton/vim-better-javascript-completion'
2020-07-05 10:47:31 +02:00
Plug 'heavenshell/vim-jsdoc', {
\ 'for': ['javascript', 'javascript.jsx','typescript'],
\ 'do': 'make install'
\}
2020-07-11 08:27:10 +02:00
Plug 'JamshedVesuna/vim-markdown-preview'
2020-07-22 15:19:00 +02:00
Plug 'ternjs/tern_for_vim', {'do': 'yarn install'}
2020-08-30 21:46:08 +02:00
Plug 'alvan/vim-closetag'
Plug 'psykidellic/vim-jekyll'
Plug 'airblade/vim-gitgutter'
2021-01-18 12:48:42 +01:00
Plug 'yuezk/vim-js'
Plug 'maxmellon/vim-jsx-pretty'
2021-02-17 10:15:11 +01:00
Plug 'dpelle/vim-grammalecte'
2020-06-19 08:03:11 +02:00
" Initialize plugin system
call plug#end()
2020-07-11 08:27:10 +02:00
" -- Markdown preview
let vim_markdown_preview_browser='Mozilla Firefox'
2020-06-19 08:03:11 +02:00
" -- Display
colorscheme nord
set title
set number
set ruler
set wrap
set scrolloff=5
syntax enable
2020-07-11 08:27:10 +02:00
set encoding=utf-8
set fileencoding=utf-8
set showmatch " When a bracket is inserted, briefly jump to the matching one
set cursorline " Highlight the screen line of the cursor
2020-06-19 08:03:11 +02:00
filetype on
filetype plugin on
filetype indent on
2020-07-22 15:19:00 +02:00
set omnifunc=syntaxcomplete#Complete
2020-06-19 08:03:11 +02:00
:highlight ExtraWhitespace ctermbg=red guibg=red
:match ExtraWhitespace /\s\+$/
:match errorMsg /\s\+$/
2020-06-19 08:03:11 +02:00
" -- Search
set ignorecase
set smartcase
set incsearch
set hlsearch
" -- Ack search
let g:ackprg="ack -H --nocolor --nogroup --column"
nmap <leader>j mA:Ack<space>
nmap <leader>ja mA:Ack "<C-r>=expand("<cword>")<cr>"
nmap <leader>jA mA:Ack "<C-r>=expand("<cWORD>")<cr>"
" -- Ctrlp
let g:ctrlp_map='<leader>c'
" -- Beep
set visualbell
set noerrorbells
"
set backspace=indent,eol,start
" Hide file when open other file
set hidden
" Code formating
2020-07-11 08:27:10 +02:00
set smartindent " Do smart autoindenting when starting a new line
set tabstop=2 " Number of spaces that a <Tab> in the file counts for
set shiftwidth=2 " Alignment with '<' and '>'
set expandtab " Use spaces instead of tab
2020-06-19 08:03:11 +02:00
2020-07-05 10:47:31 +02:00
augroup myTodo
autocmd!
autocmd Syntax * syntax match myTodo /\v\_.<(TODO|FIXME|INFO).*/hs=s+1 containedin=.*Comment
augroup END
highlight link myTodo Todo
2020-07-11 08:27:10 +02:00
2020-07-22 15:19:00 +02:00
" Auto close brackets/…
inoremap " ""<left>
inoremap ' ''<left>
inoremap ` ``<left>
inoremap ( ()<left>
inoremap [ []<left>
inoremap { {}<left>
inoremap {<CR> {<CR>}<ESC>O
inoremap {;<CR> {<CR>};<ESC>O
" -- Remove unwantedd spaces
2020-08-17 11:52:31 +02:00
function GlobalTrimWhiteSpace()
2020-07-22 15:19:00 +02:00
%s/\s*$//
''
endfunction
set list listchars=trail:.,extends:>
2020-08-17 11:52:31 +02:00
autocmd FileWritePre * call GlobalTrimWhiteSpace()
autocmd FileAppendPre * call GlobalTrimWhiteSpace()
autocmd FilterWritePre * call GlobalTrimWhiteSpace()
autocmd BufWritePre * call GlobalTrimWhiteSpace()
2020-07-22 15:19:00 +02:00
2020-08-17 11:52:31 +02:00
map <F2> :call GlobalTrimWhiteSpace()<CR>
map! <F2> :call GlobalTrimWhiteSpace()<CR>
2020-07-22 15:19:00 +02:00
2020-07-11 08:27:10 +02:00
" -- Plugins configurations
2021-02-17 10:15:11 +01:00
" Grammalecte
:let g:grammalecte_cli_py='$HOME/.Grammalecte/grammalecte-cli.py'
2020-08-17 11:52:31 +02:00
" ale
let b:ale_linters = ['eslint']
let g:ale_fixers = {
\ '*': ['remove_trailing_lines', 'trim_whitespace'],
\ 'javascript': ['prettier', 'eslint'],
\ 'css': ['prettier']
\ }
let g:ale_sign_error = '❌'
let g:ale_sign_warning = '⚠️'
let g:ale_fix_on_save = 1
2020-07-11 08:27:10 +02:00
" vim-javascript
let g:javascript_plugin_jsdoc = 1 " Enables syntax highlighting for JSDocs
let g:javascript_plugin_flow = 1 " Enables syntax highlighting for Flow
2020-08-30 21:46:08 +02:00
" vim-closetag
let g:closetag_filenames = '*.html,*.xhtml,*.phtml'
let g:closetag_xhtml_filenames = '*.xhtml,*.jsx, *.ejs'
let g:closetag_filetypes = 'html,xhtml,phtml'
let g:closetag_xhtml_filetypes = 'xhtml,jsx'
let g:closetag_emptyTags_caseSensitive = 1
let g:closetag_regions = {
\ 'typescript.tsx': 'jsxRegion,tsxRegion',
\ 'javascript.jsx': 'jsxRegion',
\ }
let g:closetag_shortcut = '>'
let g:closetag_close_shortcut = '<leader>>'