1
0
Fork 0
mirror of https://github.com/hcartiaux/dotfiles.git synced 2024-10-18 17:25:23 +02:00
dotfiles/vim/vimrc

256 lines
5.8 KiB
VimL
Raw Normal View History

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"
" .bashrc -- my personal VIM configuration
" see https://github.com/hcartiaux/dotfiles
"
" Copyright (c) 2013 Hyacinthe Cartiaux <Hyacinthe.Cartiaux@uni.lu>
" _
" __ _(_)_ __ ___ _ __ ___
" \ \ / / | '_ ` _ \| '__/ __|
" \ V /| | | | | | | | | (__
" (_)_/ |_|_| |_| |_|_| \___|
"
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Resources:
" * https://github.com/shingara/vim-conf/blob/master/vimrc
" * http://blog.shingara.fr/vundle-ou-le-bundler-de-vim.html
" * http://vim.wikia.com/wiki/Configuring_the_cursor
" * http://ftp.vim.org/pub/vim/runtime/spell/
" * http://stackoverflow.com/questions/6496778/vim-run-autocmd-on-all-filetypes-except
" * http://vim.wikia.com/wiki/Omni_completion
2014-01-06 23:18:56 +01:00
" * http://amix.dk/vim/vimrc.html
set nocompatible
""""""""""""
" => Vundle
""""""""""""
2013-05-02 23:39:27 +02:00
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()
2013-07-26 11:22:22 +02:00
" Git syntax highlighting and integration
2013-05-02 23:39:27 +02:00
Bundle 'tpope/vim-git'
2013-07-26 11:22:22 +02:00
Bundle 'tpope/vim-fugitive'
Bundle 'gregsexton/gitv'
" syntax highlighting
2013-05-02 23:39:27 +02:00
Bundle 'tpope/vim-markdown'
Bundle 'vim-ruby/vim-ruby'
2013-07-26 11:22:22 +02:00
" Surround selection with quotes, parenthesis…
Bundle 'tpope/vim-surround'
" Automatically closes functions, blocks, etc.
Bundle 'tpope/vim-endwise'
" A better stats bar
Bundle 'Lokaltog/vim-powerline'
" Aligns text.
Bundle 'godlygeek/tabular'
" Browse tags of source code files.
Bundle 'majutsushi/tagbar'
2013-05-02 23:39:27 +02:00
2014-01-06 23:18:56 +01:00
""""""""""""
" => General
""""""""""""
set history=1000
2013-05-02 23:39:27 +02:00
filetype on
2014-01-06 23:18:56 +01:00
filetype plugin on
filetype indent on
2013-05-02 23:39:27 +02:00
2014-01-06 23:18:56 +01:00
" Set to auto read when a file is changed from the outside
set autoread
" Fast saving
nmap <leader>w :w!<cr>
""""""""""""""""""""""""
" => VIM user interface
""""""""""""""""""""""""
" Turn on the WiLd menu
set wildmenu
set wildmode=list:longest,full
" Ignore compiled files
set wildignore=*.o,*~,*.pyc,*.obj,.git,*.rbc
" Use the mouse
set mouse=a
" Always show current position
2013-07-26 11:22:22 +02:00
set ruler
2014-01-06 23:18:56 +01:00
" A buffer becomes hidden when it is abandoned
set hid
" Show line numbers
" set number
" Configure backspace so it acts as it should act
set backspace=eol,start,indent
set whichwrap+=<,>,h,l
" Ignore case when searching
set ignorecase
" When searching try to be smart about cases
set smartcase
" Highlight search results
2013-05-02 23:39:27 +02:00
set hlsearch
2014-01-06 23:18:56 +01:00
" Makes search act like search in modern browsers
set incsearch
" Don't redraw while executing macros (good performance config)
set lazyredraw
" For regular expressions turn magic on
set magic
" Show matching brackets when text indicator is over them
set showmatch
" How many tenths of a second to blink when matching brackets
set mat=2
" No annoying sound on errors
set noerrorbells
set novisualbell
set t_vb=
set tm=500
" Keep 1 line when scrolling
2013-05-02 23:39:27 +02:00
set scrolloff=1
2014-01-06 23:18:56 +01:00
" Try to preserve column where cursor is positioned during motion commands
2013-05-02 23:39:27 +02:00
set nostartofline
2014-01-06 23:18:56 +01:00
" Displaying status line always
2013-07-26 11:22:22 +02:00
set laststatus=2
2014-01-06 23:18:56 +01:00
" Show information about the current command going on
2013-07-26 11:22:22 +02:00
set showcmd
2014-01-06 23:18:56 +01:00
""""""""""""""""""""""
" => Colors and Fonts
""""""""""""""""""""""
set background=dark
colorscheme default
2014-01-06 23:18:56 +01:00
" Set utf8 as standard encoding
set encoding=utf-8
set fileencoding=utf-8
2013-05-02 23:39:27 +02:00
2014-01-06 23:18:56 +01:00
" Use Unix as the standard file type
set ffs=unix,dos,mac
2013-05-02 23:39:27 +02:00
2014-01-06 23:18:56 +01:00
" Enable syntax highlighting
syntax enable
2013-05-02 23:39:27 +02:00
2014-01-06 23:18:56 +01:00
set cursorline
hi CursorLine term=bold cterm=bold ctermbg=blue ctermfg=white
2013-05-02 23:39:27 +02:00
2014-01-06 23:18:56 +01:00
if $XDG_CURRENT_DESKTOP == "KDE"
autocmd VimEnter * silent !konsoleprofile UseCustomCursorColor=1
let &t_SI = "\<Esc>]50;CustomCursorColor=orange;BlinkingCursorEnabled=1\x7"
let &t_EI = "\<Esc>]50;CustomCursorColor=red;BlinkingCursorEnabled=0\x7"
silent !konsoleprofile CustomCursorColor=red
autocmd VimLeave * silent !konsoleprofile CustomCursorColor=gray;BlinkingCursorEnabled=0
endif
" Set extra options when running in GUI mode
if has("gui_running")
set guioptions-=T
set guioptions+=e
set t_Co=256
set guitablabel=%M\ %t
endif
2013-05-02 23:39:27 +02:00
2014-01-06 23:18:56 +01:00
"""""""""""""""""""""""""""""
" => Files, backups and undo
"""""""""""""""""""""""""""""
2013-05-02 23:39:27 +02:00
" Centralize backups, swapfiles and undo history
2013-05-02 23:39:27 +02:00
set backup
set backupdir=$HOME/.vim/backup
set directory=$HOME/.vim/swap
if exists("&undodir")
set undodir=$HOME/.vim/undo
endif
set viminfo+=n$HOME/.vim/.viminfo
2013-05-02 23:39:27 +02:00
2014-01-06 23:18:56 +01:00
""""""""""""""""""""""""""""""""""
" => Text, tab and indent related
""""""""""""""""""""""""""""""""""
" Indent
set cindent
" Use spaces instead of tabs
set expandtab
" Be smart when using tabs ;)
set smarttab
" 1 tab = 2 spaces
set shiftwidth=2
set softtabstop=2
set tabstop=2
" Linebreak on 500 characters
set lbr
set textwidth=200
"""""""""""""
" => Helpers
"""""""""""""
2013-05-02 23:39:27 +02:00
" Vim 7 spell checker (z=)
if has("spell")
setlocal spell spelllang=
" Language : FR
map ,lf :setlocal spell spelllang=fr<cr>
" Language : EN
map ,le :setlocal spell spelllang=en<cr>
" Language : Aucun
map ,ln :setlocal spell spelllang=<cr>
endif
set spellsuggest=5
autocmd BufEnter *.txt,*.tex,*.md set spell
autocmd BufEnter *.txt,*.tex set spelllang=fr
autocmd BufEnter *.md set spelllang=en
autocmd BufNewFile,BufRead PKGBUILD set syntax=sh
2014-01-06 23:18:56 +01:00
" Automatic headers
2013-05-02 23:39:27 +02:00
autocmd bufnewfile *.rb so ~/.vim/header/ruby
autocmd bufnewfile *.pl so ~/.vim/header/perl
autocmd bufnewfile *.sh so ~/.vim/header/shell
au BufRead,BufNewFile *.md set syntax=markdown
" Display trailing white spaces
2013-05-02 23:39:27 +02:00
set list listchars=tab:\ \ ,trail
" Remove trailing white spaces in all files except *.md
fun! StripTrailingWhitespace()
" Only strip if the b:noStripeWhitespace variable isn't set
if exists('b:noStripWhitespace')
return
endif
%s/\s\+$//e
endfun
autocmd BufWritePre * call StripTrailingWhitespace()
autocmd FileType markdown let b:noStripWhitespace=1
2013-05-02 23:39:27 +02:00
2014-01-06 23:18:56 +01:00
" Shortcuts
2013-07-26 11:22:22 +02:00
map <F3> <Esc>:tabnext<CR>
map <F2> <Esc>:tabprevious<CR>
2014-01-06 23:18:56 +01:00
map <F4> <Esc>:set paste<CR>