1
0
Fork 0
vdotfiles/vimrc

213 lines
6.6 KiB
VimL
Raw Normal View History

2015-03-05 18:45:48 +02:00
set nocompatible
set background=dark
set backspace=indent,eol,start
set clipboard=exclude:.*
set cursorline
set foldmethod=marker
set history=50
set hlsearch
set ignorecase
set incsearch
set laststatus=2
set nobackup
set noexpandtab
set ruler
set showcmd
set smartcase
set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%04l,%04v][%p%%]\ [LEN=%L]
set suffixes=.bak,~,.swp,.o,.info,.aux,.log,.dvi,.bbl,.blg,.brf,.cb,.ind,.idx,.ilg,.inx,.out,.toc
set termencoding=utf-8
" scroll before reaching the first / final line
set scrolloff=8
set sidescrolloff=15
set sidescroll=1
2014-11-12 18:33:26 +02:00
" disable bell
set noerrorbells visualbell t_vb=
" enforce 256 colours for ssh connections and VTE
2015-01-12 17:06:13 +02:00
if $TERM == 'xterm' || $TERM == 'screen' || exists("$SSH_CLIENT")
let &t_Co=256
endif
" insert shebang in the beginning of the file based on its name extension
2014-11-29 11:02:39 +02:00
autocmd BufNewFile *.zsh 0put =\"#!/usr/bin/env zsh\<nl>\"|$
autocmd BufNewFile *.lua 0put =\"#!/usr/bin/env lua\<nl>\"|$
autocmd BufNewFile *.sh 0put =\"#!/usr/bin/env bash\<nl>\"|$
autocmd BufNewFile *.rb 0put =\"#!/usr/bin/env ruby\<nl>\"|$
autocmd BufNewFile *.py 0put =\"#!/usr/bin/env python3\<nl>\"|$
2014-11-29 11:02:39 +02:00
autocmd BufNewFile *.pl 0put =\"#!/usr/bin/env perl\<nl>\use strict;\<nl>\use warnings;\<nl>\use feature 'say';\<nl>\"|$
2014-11-12 18:33:26 +02:00
" maps
let mapleader = ","
2014-11-12 18:33:26 +02:00
nmap <Space> <C-W>
noremap <F1> <Esc>
"clear search highlight
nnoremap <Leader>/ :nohls<CR>
"make wrapped lines navigation easier
nnoremap j gj
nnoremap k gk
vnoremap j gj
vnoremap k gk
"home / end
nnoremap H ^
nnoremap L $
" still have to deal with old vim versions :<
if v:version >= 700
2014-11-17 11:28:43 +02:00
set helplang=en
set modeline
2014-11-17 11:28:43 +02:00
set number
2014-11-17 11:28:43 +02:00
set list
set listchars=tab:\|.,trail:*,nbsp:x
nnoremap <Leader>n :setlocal number!<CR>
nnoremap <Leader>l :setlocal list!<CR>
2014-11-17 11:28:43 +02:00
" enable case indentation
let g:sh_indent_case_labels=1
" plugins
if filereadable(expand("$HOME/.vim/bundle/Vundle.vim/autoload/vundle.vim"))
filetype off
set noshowmode
set rtp+=~/.vim/bundle/Vundle.vim/
2014-11-17 11:28:43 +02:00
silent! call vundle#begin()
Plugin 'gmarik/Vundle.vim' "plugin manager
" general plugins
Plugin 'bling/vim-airline' "stylish info display
Plugin 'bling/vim-bufferline' "stylish buffer display
Plugin 'jeetsukumaran/vim-buffergator' "buffer management
Plugin 'mhinz/vim-signify' "version control system gutter info
Plugin 'scrooloose/nerdcommenter' "comment manager
Plugin 'scrooloose/nerdtree' "file manager
Plugin 'Shougo/unite.vim' "fuzzy file open
Plugin 'tpope/vim-fugitive' "git awesomeness
Plugin 'tpope/vim-surround' "quotes replacement made easy
Plugin 'tpope/vim-tbone' "tmux support
"Plugin 'kien/ctrlp.vim' "some quick file accessing goodness
" IDE like features
Plugin 'davidhalter/jedi-vim' "python autocompletion
Plugin 'jiangmiao/auto-pairs' "automatically place closing bracket / quote
Plugin 'majutsushi/tagbar' "class / module browser
Plugin 'msanders/snipmate.vim' "snippets support
Plugin 'nvie/vim-flake8' "python checking with flake8
Plugin 'scrooloose/syntastic' "syntax checker
2015-03-07 15:05:51 +02:00
Plugin 'indentpython' "smarter python indentation
"Plugin 'klen/python-mode' "python IDE stuff
"Plugin 'xolox/vim-misc' "deps for lua-ftplugin
"Plugin 'xolox/vim-lua-ftplugin' "lua stuff (very slow)
"Plugin 'vimacs' "it's emacs, in vim insert mode
" from vim.sf.net
Plugin 'directionalWindowResizer' "resize windows with simple hotkeys
2014-11-13 01:49:29 +02:00
" colorscheme ...
Plugin 'vdrandom/forked-solarized.vim' "solarized
Plugin 'chriskempson/vim-tomorrow-theme' "Tomorrow-*
Plugin 'junegunn/seoul256.vim' "seoul256
2015-01-17 18:23:42 +02:00
Plugin 'morhetz/gruvbox' "gruvbox
2015-03-09 13:39:55 +02:00
Plugin 'nanotech/jellybeans.vim' "jellybeans
2015-01-16 08:21:54 +02:00
" syntax highlight plugins
Plugin 'puppetlabs/puppet-syntax-vim' "puppet
Plugin 'nagios-syntax' "nagios / icinga
2014-11-17 11:28:43 +02:00
silent! call vundle#end()
" airline options
let g:airline_symbols={}
let g:airline_symbols.whitespace='!'
let g:airline_powerline_fonts=1
" buffergator options
map <Leader><Tab> :BuffergatorToggle<CR>
" bufferline options
let g:bufferline_show_bufnr=0
" jedi-vim options
let g:jedi#popup_on_dot=0
let g:jedi#show_call_signatures=0
let g:jedi#force_py_version=3
2014-11-12 18:33:26 +02:00
" nerdtree options
2014-11-13 01:49:29 +02:00
let NERDTreeDirArrows=0
map <Leader>, :NERDTreeToggle<CR>
" signify options
let g:signify_vcs_list=[ 'svn', 'git' ]
let g:signify_sign_change='~'
" tagbar options
map <Leader>. :TagbarToggle<CR>
endif
" gvim and colorschemes related stuff
if has("gui_running")
let NERDTreeDirArrows=1
set guioptions=aegimLl
set mouse=a
2014-11-26 19:02:01 +02:00
set guifont=Terminus\ 11
set novb
2015-02-23 10:10:01 +02:00
set guicursor=a:hor1-Cursor/lCursor "underline cursor by default
set guicursor+=i:ver1-Cursor/lCursor "vertical cursor for insert mode
set guicursor+=r:block "block for replace
set guicursor+=a:blinkon0 "and none of them should blink
map <S-Insert> <MiddleMouse>
map! <S-Insert> <MiddleMouse>
endif
2015-03-09 13:39:55 +02:00
"------- gruvbox -------
2015-03-09 22:12:29 +02:00
let g:gruvbox_italic=0
let g:gruvbox_underline=0
colorscheme gruvbox
2015-03-09 13:39:55 +02:00
"------ solarized ------
"let g:solarized_bold=0
"let g:solarized_italic=0
"let g:solarized_underline=0
"let g:solarized_visibility='low'
"let g:solarized_termtrans=1
"colorscheme solarized
"------- seoul256 ------
"let g:seoul256_background=233
"colorscheme seoul256
"let g:airline_theme='powerlineish'
"-----------------------
2015-03-10 01:14:57 +02:00
syntax on
" Filetype specific stuff
function PythonHighlights()
" Declare new highlight groups
" self keyword
syn keyword pythonSelf self
" dots
syn match pythonDottedName "\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*\%(\.\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*\)*" display contained
syn match pythonDot "\." display containedin=pythonDottedName
" colons and commas
syn match pythonColon ":"
syn match pythonComma ","
" parenthesis
syn match pythonParens /[(){}\[\]]/
" Apply highlights
hi link pythonSelf Identifier
hi link pythonDottedName Function
hi link pythonDot Normal
hi link pythonColon Structure
hi link pythonComma Structure
hi link pythonParens Special
" Some preferences
setlocal softtabstop=4 shiftwidth=4 colorcolumn=80 textwidth=80 smarttab expandtab
endfunction
autocmd FileType python call PythonHighlights()
else
colorscheme elflord
2015-03-10 01:14:57 +02:00
syntax on
endif
2015-03-10 01:14:57 +02:00
" Enable autoindent
filetype plugin indent on