236 lines
6.2 KiB
VimL
236 lines
6.2 KiB
VimL
" Plugins
|
||
call plug#begin('~/.vim/plugged')
|
||
Plug 'sunaku/tmux-navigate'
|
||
Plug 'dracula/vim', {'as' : 'dracula'}
|
||
Plug 'vim-scripts/django.vim'
|
||
Plug 'tmhedberg/simpylfold'
|
||
Plug 'scrooloose/nerdtree', {'on' : 'NERDTreeToggle'}
|
||
Plug 'liquidfun/vim-comment-banners'
|
||
Plug 'valloric/youcompleteme', {'commit':'d98f896'}
|
||
" Plug 'rdnetto/ycm-generator'
|
||
Plug 'cometsong/commentframe.vim'
|
||
Plug 'wikitopian/hardmode'
|
||
Plug 'mhinz/vim-startify'
|
||
Plug 'dag/vim-fish'
|
||
Plug 'lervag/vimtex'
|
||
" Plug 'xuhdev/vim-latex-live-preview', { 'for': 'tex' }
|
||
Plug 'raimondi/delimitmate'
|
||
Plug 'easymotion/vim-easymotion'
|
||
Plug 'roosta/srcery'
|
||
Plug 'vim-syntastic/syntastic'
|
||
Plug 'tpope/vim-fugitive'
|
||
Plug 'yggdroot/indentline'
|
||
Plug 'chrisbra/csv.vim'
|
||
Plug 'vim-airline/vim-airline'
|
||
Plug 'vim-airline/vim-airline-themes'
|
||
" Plug 'edkolev/tmuxline.vim'
|
||
Plug 'tpope/vim-sensible'
|
||
Plug 'kien/ctrlp.vim'
|
||
Plug 'tpope/vim-surround'
|
||
Plug 'airblade/vim-gitgutter'
|
||
Plug 'godlygeek/tabular'
|
||
Plug 'ntpeters/vim-better-whitespace'
|
||
Plug 'xolox/vim-notes'
|
||
Plug 'xolox/vim-misc'
|
||
Plug 'jceb/vim-orgmode'
|
||
Plug 'tpope/vim-speeddating'
|
||
Plug 'mattn/calendar-vim'
|
||
Plug 'preservim/nerdcommenter'
|
||
Plug 'sickill/vim-monokai'
|
||
call plug#end()
|
||
|
||
" Defaults
|
||
let g:Powerline_symbols = 'fancy'
|
||
set ttymouse=xterm2
|
||
set mouse=n
|
||
set fdm=syntax
|
||
set mouse=a
|
||
set encoding=utf-8
|
||
set colorcolumn=80
|
||
set number
|
||
" NERD Tree
|
||
autocmd VimEnter * :NERDTreeToggle
|
||
noremap <F3> :NERDTreeToggle<CR>:NERDTreeMirror<CR>
|
||
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
|
||
let NERDTreeWinSize=35
|
||
" simply fold
|
||
let g:SimpylFold_docstring_preview = 1
|
||
" set notermguicolors t_Co=256
|
||
" set termguicolors
|
||
colorscheme dracula
|
||
let g:airline_theme='dracula'
|
||
let g:airline#extensions#tabline#enabled = 1
|
||
let g:airline_powerline_fonts = 1
|
||
" let g:tmuxline_preset = 'powerline'
|
||
set hlsearch
|
||
set tabstop=4
|
||
set shiftwidth=4
|
||
filetype indent on
|
||
set cursorline
|
||
set showcmd
|
||
set wildmenu
|
||
syntax enable
|
||
set ignorecase
|
||
" let g:better_whitespace_ctermcolor='red'
|
||
" let g:better_whitespace_enabled=1
|
||
" let g:strip_whitespace_on_save=1
|
||
set linebreak
|
||
set conceallevel=0
|
||
|
||
" Easy Motion
|
||
" <Leader>f{char} to move to {char}
|
||
map <Leader>f <Plug>(easymotion-bd-f)
|
||
nmap <Leader>f <Plug>(easymotion-overwin-f)
|
||
|
||
" s{char}{char} to move to {char}{char}
|
||
nmap s <Plug>(easymotion-overwin-f2)
|
||
|
||
" Move to line
|
||
map <Leader>L <Plug>(easymotion-bd-jk)
|
||
nmap <Leader>L <Plug>(easymotion-overwin-line)
|
||
|
||
" Move to word
|
||
map <Leader>w <Plug>(easymotion-bd-w)
|
||
nmap <Leader>w <Plug>(easymotion-overwin-w)
|
||
|
||
" Comment Banner
|
||
autocmd VimEnter * CommentBannerMapping g1 :CommentBanner --pattern #,1#,# --width 80 --comment true
|
||
autocmd VimEnter * CommentBannerMapping g2 :CommentBanner --pattern =,1-,= --width 80 --comment true
|
||
|
||
" Commenting
|
||
let g:NERDCreateDefaultMappings = 1
|
||
let g:NERDCompactSexyComs = 1
|
||
let g:NERDSpaceDelims = 1
|
||
let g:NERDDefaultAlign = 'left'
|
||
let g:NERDCommentEmptyLines = 1
|
||
|
||
" Indent Highlights
|
||
let g:indentLine_char = '│'
|
||
set list
|
||
set lcs=tab:\┆\ ,trail:⎵
|
||
|
||
" CTRL-P
|
||
let g:ctrlp_map = '<c-p>'
|
||
let g:ctrlp_cmd = 'CtrlP'
|
||
|
||
" Hardmode
|
||
let g:HardMode_level = 'wannabe'
|
||
autocmd VimEnter,BufNewFile,BufReadPost * silent! call HardMode()
|
||
|
||
" Tab control
|
||
" nnoremap 1 1gt
|
||
" nnoremap 2 2gt
|
||
" nnoremap 3 3gt
|
||
" nnoremap 4 4gt
|
||
" nnoremap 5 5gt
|
||
" nnoremap 6 6gt
|
||
" nnoremap 7 7gt
|
||
" nnoremap 8 8gt
|
||
" nnoremap 9 9gt
|
||
" nnoremap 0 0gt
|
||
" nnoremap ` gt
|
||
|
||
" Shortcuts
|
||
nnoremap <F2> :set number!<CR>:set relativenumber!<CR>
|
||
nnoremap <F4> :set wrap!<CR>
|
||
nnoremap <F5> :w<CR>
|
||
nnoremap <F9> :source ~/.vimrc<CR>
|
||
|
||
" Tab Numbers
|
||
" if has('gui')
|
||
" set guioptions-=e
|
||
" endif
|
||
" if exists("+showtabline")
|
||
" function MyTabLine()
|
||
" let s = ''
|
||
" let t = tabpagenr()
|
||
" let i = 1
|
||
" while i <= tabpagenr('$')
|
||
" let buflist = tabpagebuflist(i)
|
||
" let winnr = tabpagewinnr(i)
|
||
" let s .= '%' . i . 'T'
|
||
" let s .= (i == t ? '%1*' : '%2*')
|
||
" let s .= ' ['
|
||
" let s .= i . ':'
|
||
" let s .= winnr . '/' . tabpagewinnr(i,'$')
|
||
" let s .= '] %*'
|
||
" let s .= (i == t ? '%#TabLineSel#' : '%#TabLine#')
|
||
" let bufnr = buflist[winnr - 1]
|
||
" let file = bufname(bufnr)
|
||
" let buftype = getbufvar(bufnr, 'buftype')
|
||
" if buftype == 'nofile'
|
||
" if file =~ '\/.'
|
||
" let file = substitute(file, '.*\/\ze.', '', '')
|
||
" endif
|
||
" else
|
||
" let file = fnamemodify(file, ':p:t')
|
||
" endif
|
||
" if file == ''
|
||
" let file = '[No Name]'
|
||
" endif
|
||
" let s .= file
|
||
" let i = i + 1
|
||
" endwhile
|
||
" let s .= '%T%#TabLineFill#%='
|
||
" let s .= (tabpagenr('$') > 1 ? '%999XX' : 'X')
|
||
" return s
|
||
" endfunction
|
||
" set stal=2
|
||
" set tabline=%!MyTabLine()
|
||
" endif
|
||
|
||
" Auto Highlight
|
||
" autosave delay, cursorhold trigger, default: 4000ms
|
||
setl updatetime=100
|
||
" highlight the word under cursor (CursorMoved is inperformant)
|
||
highlight WordUnderCursor cterm=underline gui=underline
|
||
autocmd CursorHold * call HighlightCursorWord()
|
||
function! HighlightCursorWord()
|
||
" if hlsearch is active, don't overwrite it!
|
||
let search = getreg('/')
|
||
let cword = expand('<cword>')
|
||
if match(cword, search) == -1
|
||
exe printf('match WordUnderCursor /\V\<%s\>/', escape(cword, '/\'))
|
||
endif
|
||
endfunction
|
||
|
||
" Latex
|
||
" let g:vimtex_compiler_method = 'latexmk'
|
||
|
||
command! -nargs=? -range Dec2hex call s:Dec2hex(<line1>, <line2>, '<args>')
|
||
function! s:Dec2hex(line1, line2, arg) range
|
||
if empty(a:arg)
|
||
if histget(':', -1) =~# "^'<,'>" && visualmode() !=# 'V'
|
||
let cmd = 's/\%V\<\d\+\>/\=printf("0x%x",submatch(0)+0)/g'
|
||
else
|
||
let cmd = 's/\<\d\+\>/\=printf("0x%x",submatch(0)+0)/g'
|
||
endif
|
||
try
|
||
execute a:line1 . ',' . a:line2 . cmd
|
||
catch
|
||
echo 'Error: No decimal number found'
|
||
endtry
|
||
else
|
||
echo printf('%x', a:arg + 0)
|
||
endif
|
||
endfunction
|
||
|
||
command! -nargs=? -range Hex2dec call s:Hex2dec(<line1>, <line2>, '<args>')
|
||
function! s:Hex2dec(line1, line2, arg) range
|
||
if empty(a:arg)
|
||
if histget(':', -1) =~# "^'<,'>" && visualmode() !=# 'V'
|
||
let cmd = 's/\%V0x\x\+/\=submatch(0)+0/g'
|
||
else
|
||
let cmd = 's/0x\x\+/\=submatch(0)+0/g'
|
||
endif
|
||
try
|
||
execute a:line1 . ',' . a:line2 . cmd
|
||
catch
|
||
echo 'Error: No hex number starting "0x" found'
|
||
endtry
|
||
else
|
||
echo (a:arg =~? '^0x') ? a:arg + 0 : ('0x'.a:arg) + 0
|
||
endif
|
||
endfunction
|
||
|