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
|
|||
|
|