2015-03-05 18:45:48 +02:00
|
|
|
set nocompatible
|
2015-03-06 23:55:31 +02:00
|
|
|
set background=dark
|
2014-07-18 06:11:03 +03:00
|
|
|
set backspace=indent,eol,start
|
2015-03-06 23:55:31 +02:00
|
|
|
set clipboard=exclude:.*
|
|
|
|
set foldmethod=marker
|
2014-07-18 06:11:03 +03:00
|
|
|
set history=50
|
|
|
|
set hlsearch
|
|
|
|
set ignorecase
|
2015-03-06 23:55:31 +02:00
|
|
|
set incsearch
|
|
|
|
set laststatus=2
|
|
|
|
set nobackup
|
|
|
|
set noexpandtab
|
|
|
|
set ruler
|
|
|
|
set showcmd
|
2014-07-18 06:11:03 +03:00
|
|
|
set smartcase
|
|
|
|
set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%04l,%04v][%p%%]\ [LEN=%L]
|
2015-03-06 23:55:31 +02:00
|
|
|
set suffixes=.bak,~,.swp,.o,.info,.aux,.log,.dvi,.bbl,.blg,.brf,.cb,.ind,.idx,.ilg,.inx,.out,.toc
|
2015-02-06 23:23:05 +02:00
|
|
|
" 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
|
2014-10-30 15:46:46 +02:00
|
|
|
set noerrorbells visualbell t_vb=
|
2014-07-18 06:11:03 +03:00
|
|
|
|
2014-11-24 12:21:42 +02:00
|
|
|
" enforce 256 colours for ssh connections and VTE
|
2015-06-30 00:29:16 +03:00
|
|
|
if $TERM =~ '^xterm.*$' || $TERM =~ '^rxvt-unicode.*$' || $TERM == '^screen.*$'
|
|
|
|
let &t_SI .= "\<Esc>[6 q"
|
|
|
|
let &t_EI .= "\<Esc>[4 q"
|
2014-11-24 12:21:42 +02:00
|
|
|
let &t_Co=256
|
|
|
|
endif
|
2015-06-30 00:29:16 +03:00
|
|
|
if $LANG =~ 'UTF-8$' || $LANG =~ 'utf8$'
|
2015-06-19 18:33:36 +03:00
|
|
|
set termencoding=utf-8
|
|
|
|
set encoding=utf-8
|
|
|
|
endif
|
2014-11-24 12:21:42 +02:00
|
|
|
|
2015-02-06 23:23:05 +02:00
|
|
|
" 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>\"|$
|
2015-03-06 02:24:40 +02:00
|
|
|
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-07-18 06:11:03 +03:00
|
|
|
|
2015-04-20 14:01:55 +03:00
|
|
|
" remove trailing spaces and tabs on exit - apparently takes a shit ton of
|
|
|
|
" time to close the document, so no, let us keep it out of business for now
|
|
|
|
"function! <SID>StripTrailingWhitespaces()
|
|
|
|
" let l = line(".")
|
|
|
|
" let c = col(".")
|
|
|
|
" %s/\s\+$//e
|
|
|
|
" call cursor(l, c)
|
|
|
|
" unlet l
|
|
|
|
" unlet c
|
|
|
|
"endfunction
|
|
|
|
"autocmd BufWritePre * :call <SID>StripTrailingWhitespaces()
|
2015-04-12 04:02:00 +03:00
|
|
|
|
2014-11-12 18:33:26 +02:00
|
|
|
" maps
|
2015-02-06 23:23:05 +02:00
|
|
|
let mapleader = ","
|
2014-11-12 18:33:26 +02:00
|
|
|
nmap <Space> <C-W>
|
2015-02-06 23:23:05 +02:00
|
|
|
noremap <F1> <Esc>
|
2015-06-19 13:23:02 +03:00
|
|
|
"enable cursorline on demand
|
|
|
|
nnoremap <Leader>c :set cursorline!<CR>
|
2015-02-06 23:23:05 +02:00
|
|
|
"clear search highlight
|
|
|
|
nnoremap <Leader>/ :nohls<CR>
|
2015-05-26 17:18:01 +03:00
|
|
|
"disable auto indent
|
2015-06-01 18:39:31 +03:00
|
|
|
nnoremap <Leader>a :set autoindent!<CR>
|
2015-02-06 23:23:05 +02:00
|
|
|
"make wrapped lines navigation easier
|
2014-11-18 08:12:57 +02:00
|
|
|
nnoremap j gj
|
|
|
|
nnoremap k gk
|
|
|
|
vnoremap j gj
|
|
|
|
vnoremap k gk
|
2015-02-06 23:23:05 +02:00
|
|
|
"home / end
|
|
|
|
nnoremap H ^
|
|
|
|
nnoremap L $
|
2014-07-18 06:11:03 +03:00
|
|
|
|
|
|
|
" still have to deal with old vim versions :<
|
2014-11-24 16:16:45 +02:00
|
|
|
if v:version >= 700
|
2014-11-17 11:28:43 +02:00
|
|
|
set helplang=en
|
2014-12-07 04:31:20 +02:00
|
|
|
set modeline
|
2014-11-17 11:28:43 +02:00
|
|
|
|
2015-03-06 23:55:31 +02:00
|
|
|
set number
|
2014-11-17 11:28:43 +02:00
|
|
|
set list
|
2015-06-19 13:23:02 +03:00
|
|
|
set listchars=tab:\|_,nbsp:x
|
2015-02-06 23:23:05 +02:00
|
|
|
nnoremap <Leader>n :setlocal number!<CR>
|
2015-03-06 23:55:31 +02:00
|
|
|
nnoremap <Leader>l :setlocal list!<CR>
|
2014-11-17 11:28:43 +02:00
|
|
|
|
2014-07-18 06:11:03 +03: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
|
2015-03-08 02:29:02 +02:00
|
|
|
set noshowmode
|
2014-07-18 06:11:03 +03:00
|
|
|
set rtp+=~/.vim/bundle/Vundle.vim/
|
2014-11-17 11:28:43 +02:00
|
|
|
silent! call vundle#begin()
|
2015-04-13 01:36:05 +03:00
|
|
|
Plugin 'gmarik/Vundle.vim' "plugin manager
|
2014-07-18 06:11:03 +03:00
|
|
|
|
|
|
|
" general plugins
|
2015-04-13 01:36:05 +03:00
|
|
|
Plugin 'Lokaltog/vim-easymotion' "easy motion
|
|
|
|
Plugin 'Shougo/unite.vim' "fuzzy file open
|
|
|
|
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/nerdtree' "file manager
|
|
|
|
Plugin 'tpope/vim-fugitive' "git awesomeness
|
|
|
|
Plugin 'tpope/vim-surround' "quotes replacement made easy
|
|
|
|
Plugin 'directionalWindowResizer' "resize windows with simple hotkeys
|
2015-06-01 18:39:31 +03:00
|
|
|
"Plugin 'scrooloose/nerdcommenter' "comment manager
|
2015-04-13 01:36:05 +03:00
|
|
|
"Plugin 'tpope/vim-tbone' "tmux support
|
|
|
|
"Plugin 'kien/ctrlp.vim' "some quick file accessing goodness
|
|
|
|
"Plugin 'vimacs' "it's emacs, in vim insert mode
|
2015-03-06 23:55:31 +02:00
|
|
|
|
|
|
|
" IDE like features
|
2015-04-13 01:36:05 +03:00
|
|
|
Plugin 'jiangmiao/auto-pairs' "automatically place closing bracket / quote
|
2015-05-13 13:44:10 +03:00
|
|
|
"Plugin 'davidhalter/jedi-vim' "python autocompletion
|
|
|
|
"Plugin 'indentpython' "smarter python indentation
|
2015-04-13 01:36:05 +03:00
|
|
|
"Plugin 'klen/python-mode' "python IDE stuff
|
2015-05-13 13:44:10 +03:00
|
|
|
"Plugin 'majutsushi/tagbar' "class / module browser
|
2015-06-01 18:39:31 +03:00
|
|
|
"Plugin 'msanders/snipmate.vim' "snippets support
|
2015-05-13 13:44:10 +03:00
|
|
|
"Plugin 'nathanaelkane/vim-indent-guides' "indent guides on demand
|
|
|
|
"Plugin 'nvie/vim-flake8' "python checking with flake8
|
2015-06-01 18:39:31 +03:00
|
|
|
"Plugin 'scrooloose/syntastic' "syntax checker
|
2015-04-13 01:36:05 +03:00
|
|
|
"Plugin 'xolox/vim-misc' "deps for lua-ftplugin
|
|
|
|
"Plugin 'xolox/vim-lua-ftplugin' "lua stuff (very slow)
|
2014-11-24 12:21:42 +02:00
|
|
|
|
2015-04-12 04:02:00 +03:00
|
|
|
" colorschemes
|
|
|
|
Plugin 'morhetz/gruvbox'
|
2015-06-01 18:39:31 +03:00
|
|
|
"Plugin 'MaxSt/FlatColor'
|
|
|
|
"Plugin 'vdrandom/forked-solarized.vim'
|
|
|
|
"Plugin 'whatyouhide/vim-gotham'
|
2015-01-16 08:21:54 +02:00
|
|
|
|
2014-07-18 06:11:03 +03:00
|
|
|
" syntax highlight plugins
|
2015-04-13 01:36:05 +03:00
|
|
|
Plugin 'puppetlabs/puppet-syntax-vim'
|
|
|
|
Plugin 'nagios-syntax'
|
2014-11-17 11:28:43 +02:00
|
|
|
silent! call vundle#end()
|
2014-10-12 20:43:19 +03:00
|
|
|
|
2015-05-26 17:18:01 +03:00
|
|
|
" auto-pairs options
|
|
|
|
let g:AutoPairsShortcutToggle='<Leader>p'
|
|
|
|
|
2015-04-12 04:02:00 +03:00
|
|
|
" easymotion options
|
2015-04-13 01:36:05 +03:00
|
|
|
let g:EasyMotion_do_mapping=0
|
2015-04-12 04:02:00 +03:00
|
|
|
let g:EasyMotion_smartcase=1
|
|
|
|
nmap s <Plug>(easymotion-s)
|
|
|
|
map <Leader>j <Plug>(easymotion-j)
|
|
|
|
map <Leader>k <Plug>(easymotion-k)
|
|
|
|
|
2014-10-12 20:43:19 +03:00
|
|
|
" airline options
|
2015-03-06 23:55:31 +02:00
|
|
|
let g:airline_symbols={}
|
|
|
|
let g:airline_symbols.whitespace='!'
|
|
|
|
let g:airline_powerline_fonts=1
|
2014-10-12 20:43:19 +03:00
|
|
|
|
2015-03-08 02:29:02 +02:00
|
|
|
" buffergator options
|
|
|
|
map <Leader><Tab> :BuffergatorToggle<CR>
|
|
|
|
|
2014-11-13 12:41:36 +02:00
|
|
|
" bufferline options
|
2015-03-06 23:55:31 +02:00
|
|
|
let g:bufferline_show_bufnr=0
|
2014-11-13 12:41:36 +02:00
|
|
|
|
2015-03-08 02:29:02 +02:00
|
|
|
" jedi-vim options
|
2015-05-13 13:44:10 +03:00
|
|
|
"let g:jedi#popup_on_dot=0
|
|
|
|
"let g:jedi#show_call_signatures=0
|
|
|
|
"let g:jedi#force_py_version=3
|
2014-10-12 20:43:19 +03:00
|
|
|
|
2014-11-12 18:33:26 +02:00
|
|
|
" nerdtree options
|
2014-11-13 01:49:29 +02:00
|
|
|
let NERDTreeDirArrows=0
|
2015-02-07 02:14:34 +02:00
|
|
|
map <Leader>, :NERDTreeToggle<CR>
|
2014-11-18 12:07:11 +02:00
|
|
|
|
2015-03-08 02:29:02 +02:00
|
|
|
" signify options
|
|
|
|
let g:signify_vcs_list=[ 'svn', 'git' ]
|
|
|
|
let g:signify_sign_change='~'
|
2015-02-07 02:14:34 +02:00
|
|
|
|
|
|
|
" tagbar options
|
2015-05-13 13:44:10 +03:00
|
|
|
"map <Leader>. :TagbarToggle<CR>
|
2014-11-24 12:21:42 +02:00
|
|
|
endif
|
2014-10-15 00:54:19 +03:00
|
|
|
|
2014-11-24 16:16:45 +02:00
|
|
|
" 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
|
2014-11-24 16:16:45 +02:00
|
|
|
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
|
2014-11-24 16:16:45 +02:00
|
|
|
map <S-Insert> <MiddleMouse>
|
|
|
|
map! <S-Insert> <MiddleMouse>
|
|
|
|
endif
|
2015-03-09 13:39:55 +02:00
|
|
|
"------- gruvbox -------
|
2015-04-06 21:52:37 +03: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
|
|
|
|
"-----------------------
|
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 /[(){}\[\]]/
|
2015-03-22 00:37:27 +02:00
|
|
|
" TODO: do something about the next thing matching all the strings without .format().
|
|
|
|
syn match pythonStringFmt "{[^}]*}" display containedin=pythonString
|
2015-03-10 01:14:57 +02:00
|
|
|
|
|
|
|
" Apply highlights
|
|
|
|
hi link pythonSelf Identifier
|
|
|
|
hi link pythonDottedName Function
|
|
|
|
hi link pythonDot Normal
|
|
|
|
hi link pythonColon Structure
|
|
|
|
hi link pythonComma Structure
|
2015-03-11 10:11:43 +02:00
|
|
|
hi link pythonParens Keyword
|
2015-03-22 00:37:27 +02:00
|
|
|
hi link pythonStringFmt Identifier
|
2015-03-10 01:14:57 +02:00
|
|
|
|
|
|
|
" Some preferences
|
|
|
|
setlocal softtabstop=4 shiftwidth=4 colorcolumn=80 textwidth=80 smarttab expandtab
|
|
|
|
endfunction
|
|
|
|
|
|
|
|
autocmd FileType python call PythonHighlights()
|
2014-11-24 12:47:29 +02:00
|
|
|
else
|
2014-11-24 12:21:42 +02:00
|
|
|
colorscheme elflord
|
2015-03-10 01:14:57 +02:00
|
|
|
syntax on
|
2014-10-15 00:54:19 +03:00
|
|
|
endif
|
|
|
|
|
2015-03-10 01:14:57 +02:00
|
|
|
|
|
|
|
" Enable autoindent
|
2014-07-18 06:11:03 +03:00
|
|
|
filetype plugin indent on
|
2015-06-01 18:39:31 +03:00
|
|
|
|