1
0
Fork 0
vdotfiles/vimrc

188 lines
5.9 KiB
VimL
Raw Normal View History

set backspace=indent,eol,start
set foldmethod=marker
set history=50
set hlsearch
set ignorecase
set incsearch
set laststatus=2
set nobackup
set ruler
set showcmd
set smartcase
set suffixes=.bak,~,.swp,.o,.info,.aux,.log,.dvi,.bbl,.blg,.brf,.cb,.ind,.idx,.ilg,.inx,.out,.toc
2016-02-03 13:54:15 +02:00
" scroll before reaching the first / final line set scrolloff=3
set sidescrolloff=15
set sidescroll=1
2014-11-12 18:33:26 +02:00
" disable bell
set noerrorbells visualbell t_vb=
2016-09-09 13:45:34 +03:00
" indentation_RIP
"set shiftwidth=3 tabstop=3 noexpandtab
" indentation_OK
set tabstop=3 softtabstop=4 shiftwidth=4 smarttab expandtab
2016-09-09 13:45:34 +03:00
2016-08-31 19:21:42 +03:00
set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%04l,%04v][%p%%]\ [LEN=%L]
" 256 colours at almost all times; do I even need it?..
if $TERM =~ '^[xterm|rxvt-unicode|screen|st]'
let &t_Co=256
endif
2015-06-30 00:48:12 +03:00
if $LANG =~ '[UTF\-8|utf8]$'
2016-09-12 13:05:31 +03:00
set termencoding=utf-8
set encoding=utf-8
2015-06-19 18:33:36 +03:00
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 = ","
noremap <F1> <Esc>
2016-02-19 11:56:59 +02:00
"fold/unfold via spacebar
nnoremap <Space> za
2015-06-19 13:23:02 +03:00
"enable cursorline on demand
nnoremap <Leader>c :set cursorline!<CR>
"clear search highlight
nnoremap <Leader>/ :nohls<CR>
"make wrapped lines navigation easier
2016-05-19 17:05:20 +03:00
noremap <silent> <expr> j (v:count == 0 ? 'gj' : 'j')
noremap <silent> <expr> k (v:count == 0 ? 'gk' : 'k')
"home / end
nnoremap H ^
nnoremap L $
" still have to deal with old vim versions :<
if v:version >= 700
2016-09-12 13:05:31 +03:00
if v:version >= 703
set colorcolumn=80
2016-09-12 13:05:31 +03:00
set relativenumber
nnoremap <Leader>r :setlocal relativenumber!<CR>
endif
if v:version >= 800
set breakindent
endif
2016-09-12 13:05:31 +03:00
set helplang=en
set list
set number
set listchars=tab:\|_,nbsp:x,trail:*
nnoremap <Leader>n :setlocal number!<CR>
nnoremap <Leader>l :setlocal list!<CR>
" enable case indentation
let g:sh_indent_case_labels=1
" plugins
if filereadable(expand("$HOME/.vim/plugged/vim-plug/plug.vim"))
set noshowmode
source ~/.vim/plugged/vim-plug/plug.vim
silent!call plug#begin('~/.vim/plugged')
Plug 'junegunn/vim-plug' "plugin manager
" general plugins
Plug 'Lokaltog/vim-easymotion' "easy motion
Plug 'directionalWindowResizer' "resize windows with simple hotkeys
Plug 'jeetsukumaran/vim-buffergator' "buffer management
Plug 'junegunn/vim-easy-align' "aligning
Plug 'mhinz/vim-signify' "version control system gutter info
Plug 'nvie/vim-togglemouse' "hotkey to toggle mouse
Plug 'vim-airline/vim-airline' "airline
Plug 'vim-airline/vim-airline-themes' "themes for airline
Plug 'vimwiki/vimwiki' "another attempt at doing notebook via vim
Plug 'neomake/neomake' "linter
Plug 'davidhalter/jedi-vim' "python support
Plug 'ervandew/supertab' "TAB autocompletion
2016-09-12 13:05:31 +03:00
" colorschemes
2016-11-30 19:03:15 +02:00
Plug 'lifepillar/vim-solarized8'
Plug 'KeitaNakamura/neodark.vim'
Plug 'jonathanfilip/vim-lucius'
Plug 'chriskempson/base16-vim'
2016-09-12 13:05:31 +03:00
" syntax highlight plugins
Plug 'neilhwatson/vim_cf3'
call plug#end()
" easymotion options
let g:EasyMotion_do_mapping=0
let g:EasyMotion_smartcase=1
nmap f <Plug>(easymotion-s)
map <Leader>j <Plug>(easymotion-j)
map <Leader>k <Plug>(easymotion-k)
" airline options
let g:airline_symbols={}
let g:airline_symbols.whitespace='!'
let g:airline_powerline_fonts=1
let g:airline_exclude_preview=1
2016-09-12 13:05:31 +03:00
let g:airline_extensions=['hunks']
let g:airline_section_z='%3p%% %{g:airline_symbols.linenr}%4l:%3v'
" buffergator options
map <Leader><Tab> :BuffergatorToggle<CR>
" signify options
let g:signify_vcs_list=[ 'svn', 'git', 'fossil' ]
let g:signify_sign_change='~'
" vim-togglemouse options
nmap <Leader>m <F12>
" easy-align options
xmap <Leader>a <Plug>(EasyAlign)
nmap <Leader>a <Plug>(EasyAlign)
" neomake
nmap <Leader>p :Neomake<CR>
2016-09-12 13:05:31 +03:00
let g:neomake_error_sign={
\ 'text': 'e>',
2016-09-12 13:05:31 +03:00
\ 'texthl': 'ErrorMsg',
\ }
let g:neomake_warning_sign={
\ 'text': 'w>',
2016-09-12 13:05:31 +03:00
\ 'texthl': 'WarningMsg',
\ }
let g:neomake_info_sign={
\ 'text': 'i>',
2016-09-12 13:05:31 +03:00
\ 'texthl': 'InfoMsg',
\ }
endif
" gvim and colorschemes related stuff
if has("gui_running")
set guioptions=aegimLl
set mouse=a
set guifont=Fantasque\ Sans\ Mono\ 11
2016-09-12 13:05:31 +03:00
set novb
set guicursor=a:block "block cursor by default
set guicursor+=i:ver1-Cursor/lCursor "i-beam for insert mode
set guicursor+=r:hor1-Cursor/lCursor "underline for replace
2016-09-12 13:05:31 +03:00
set guicursor+=a:blinkon0 "and none of them should blink
set guiheadroom=0
colorscheme neodark
2016-09-12 13:05:31 +03:00
map <S-Insert> <MiddleMouse>
map! <S-Insert> <MiddleMouse>
elseif (has("nvim") || v:version >= 704) && $TERM != 'screen'
2016-11-30 19:03:15 +02:00
" fix tmux and st
set t_8f=[38;2;%lu;%lu;%lum
set t_8b=[48;2;%lu;%lu;%lum
set termguicolors
set mouse=a
colorscheme neodark
2016-09-12 13:05:31 +03:00
else
set bg=light
2016-09-12 13:05:31 +03:00
set mouse=
colorscheme solarized8_light
2016-09-12 13:05:31 +03:00
endif
else
2016-09-12 13:05:31 +03:00
colorscheme default
endif
syntax on
2015-03-10 01:14:57 +02:00
filetype plugin on