199 lines
5.8 KiB
VimL
199 lines
5.8 KiB
VimL
set backspace=indent,eol,start
|
|
set foldmethod=marker
|
|
set history=50
|
|
set hlsearch
|
|
set ignorecase
|
|
set incsearch
|
|
set laststatus=2
|
|
set nobackup
|
|
set nomodeline
|
|
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
|
|
set wildmenu
|
|
" scroll before reaching the first / final line
|
|
set scrolloff=3
|
|
set sidescrolloff=15
|
|
set sidescroll=1
|
|
" disable bell
|
|
set noerrorbells visualbell t_vb=
|
|
" indentation_RIP
|
|
"set shiftwidth=3 tabstop=3 noexpandtab
|
|
" indentation_OK
|
|
set tabstop=3 softtabstop=4 shiftwidth=4 smarttab expandtab
|
|
|
|
set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%04l,%04v][%p%%]\ [LEN=%L]
|
|
|
|
" termcap fixes
|
|
set t_Co=256
|
|
set t_ut=
|
|
set termencoding=utf-8
|
|
set encoding=utf-8
|
|
set fillchars+=vert:│
|
|
|
|
" maps
|
|
map <Space> <leader>
|
|
noremap <F1> <Esc>
|
|
"enable cursorline on demand
|
|
nnoremap <Leader>c :set cursorline!<CR>
|
|
"clear search highlight
|
|
nnoremap <Leader>/ :nohls<CR>
|
|
"make wrapped lines navigation easier
|
|
noremap <silent> <expr> j (v:count == 0 ? 'gj' : 'j')
|
|
noremap <silent> <expr> k (v:count == 0 ? 'gk' : 'k')
|
|
"home / end
|
|
nnoremap H ^
|
|
nnoremap L $
|
|
"copy to / paste from clipboard
|
|
vmap <Leader>y "+y
|
|
vmap <Leader>d "+d
|
|
nmap <Leader>p "+p
|
|
nmap <Leader>P "+P
|
|
vmap <Leader>p "+p
|
|
vmap <Leader>P "+P
|
|
"move macro somewhere I won't accidentally use it
|
|
nnoremap Q q
|
|
nnoremap q <Nop>
|
|
"quit / save
|
|
nmap qq :q<CR>
|
|
nmap qf :q!<CR>
|
|
nmap qa :qa<CR>
|
|
nmap qw :wq<CR>
|
|
nmap <Leader>w :w<CR>
|
|
|
|
" still have to deal with old vim versions :<
|
|
if v:version >= 700
|
|
if v:version >= 703
|
|
set colorcolumn=80
|
|
set relativenumber
|
|
nnoremap <Leader>r :setlocal relativenumber!<CR>
|
|
endif
|
|
if v:version >= 800
|
|
set breakindent
|
|
endif
|
|
|
|
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')
|
|
"plugin manager
|
|
Plug 'junegunn/vim-plug'
|
|
|
|
" 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 'wincent/command-t' "fuzzy file search
|
|
Plug 'tpope/vim-fugitive' "moar git awesomeness
|
|
|
|
" python, uncomment when needed
|
|
"Plug 'neomake/neomake' "linter
|
|
"Plug 'davidhalter/jedi-vim' "python support
|
|
"Plug 'ervandew/supertab' "TAB autocompletion
|
|
|
|
" colorschemes
|
|
Plug 'cocopon/iceberg.vim'
|
|
Plug 'lifepillar/vim-solarized8'
|
|
Plug 'KeitaNakamura/neodark.vim'
|
|
Plug 'jonathanfilip/vim-lucius'
|
|
Plug 'chriskempson/base16-vim'
|
|
|
|
" 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
|
|
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>i :Neomake<CR>
|
|
let g:neomake_error_sign={
|
|
\ 'text': 'e>',
|
|
\ 'texthl': 'ErrorMsg',
|
|
\ }
|
|
let g:neomake_warning_sign={
|
|
\ 'text': 'w>',
|
|
\ 'texthl': 'WarningMsg',
|
|
\ }
|
|
let g:neomake_info_sign={
|
|
\ 'text': 'i>',
|
|
\ 'texthl': 'InfoMsg',
|
|
\ }
|
|
endif
|
|
|
|
" gvim and colorschemes related stuff
|
|
if has("gui_running")
|
|
set guioptions=aegimLl
|
|
set mouse=a
|
|
set guifont=Fantasque\ Sans\ Mono\ 11
|
|
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
|
|
set guicursor+=a:blinkon0 "and none of them should blink
|
|
set guiheadroom=0
|
|
colorscheme iceberg
|
|
map <S-Insert> <MiddleMouse>
|
|
map! <S-Insert> <MiddleMouse>
|
|
elseif (has("nvim") || v:version >= 800) && $TERM != 'screen'
|
|
" 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
|
|
let g:airline_theme='neodark'
|
|
colorscheme iceberg
|
|
else
|
|
set mouse=
|
|
colorscheme solarized8_light
|
|
endif
|
|
else
|
|
colorscheme default
|
|
endif
|
|
|
|
syntax on
|
|
|
|
filetype plugin on
|