Created
March 27, 2016 19:09
-
-
Save zphixon/2417ccd574f392876f27 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
"_vimrc - Zack Hixon, cheezgi at github | |
"last updated 2016-03-24 | |
"pre-installed options, not going to touch | |
set nocompatible | |
source $VIMRUNTIME/vimrc_example.vim | |
source $VIMRUNTIME/mswin.vim | |
behave mswin | |
set diffexpr=MyDiff() | |
function MyDiff() | |
let opt = '-a --binary ' | |
if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif | |
if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif | |
let arg1 = v:fname_in | |
if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif | |
let arg2 = v:fname_new | |
if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif | |
let arg3 = v:fname_out | |
if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif | |
let eq = '' | |
if $VIMRUNTIME =~ ' ' | |
if &sh =~ '\<cmd' | |
let cmd = '""' . $VIMRUNTIME . '\diff"' | |
let eq = '"' | |
else | |
let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"' | |
endif | |
else | |
let cmd = $VIMRUNTIME . '\diff' | |
endif | |
silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq | |
endfunction | |
"User-set varibles: vim behavior | |
set nobackup | |
set nowritebackup | |
set noswapfile | |
let $NVIM_TUI_ENABLE_CURSOR_SHAPE=1 | |
"no error bells | |
set noerrorbells visualbell t_vb= | |
autocmd GUIEnter * set visualbell t_vb= | |
"relative numbers | |
set nornu | |
function! RelativeNumbers() | |
if &rnu | |
set nornu | |
else | |
set rnu | |
endif | |
endfunction | |
map <C-O> :call RelativeNumbers() <cr> | |
"unhighlight search results | |
nmap <C-l> :noh <cr> | |
"VTerm PS1 | |
let g:VTermPs1 = '[%d] $ ' | |
"window cursor movement | |
nmap W <C-w> | |
"re-tab files | |
map <F7> mzgg=G`z | |
"highlight 80th column | |
highlight ColorColumn guibg=Magenta | |
call matchadd('ColorColumn', '\%81v', 100) | |
"show trailing whitespace | |
exec "set listchars=tab:\uBB\uBB,trail:\uB7,nbsp:~" | |
set list | |
"graphical settings | |
colo yowish | |
set number | |
set nowrap | |
"font | |
set guifont=Lucida_Console:h10 | |
set encoding=utf8 | |
"tabs: 4 spaces, no tab characters | |
set tabstop=4 softtabstop=0 expandtab shiftwidth=4 smarttab | |
"formatting | |
set formatoptions-=t | |
set textwidth=0 wrapmargin=0 | |
set tw=0 | |
"NERDTree setup | |
cd ~/Desktop | |
map <C-n> :NERDTreeToggle<CR> | |
autocmd vimenter * NERDTree | |
autocmd StdinReadPre * let s:std_in=1 | |
autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif | |
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif | |
let NERDTreeShowHidden=1 | |
"VTerm | |
map <C-'> :VTermStart <cr> | |
"lightline settigns: beware, do not try to change | |
let g:lightline = { | |
\ 'colorscheme': 'wombat', | |
\ 'active': { | |
\ 'left': [ [ 'mode', 'paste' ], [ 'fugitive', 'filename' ], ['ctrlpmark'] ], | |
\ 'right': [ [ 'syntastic', 'lineinfo' ], ['percent'], [ 'fileformat', 'fileencoding', 'filetype' ] ] | |
\ }, | |
\ 'component_function': { | |
\ 'fugitive': 'LightLineFugitive', | |
\ 'filename': 'LightLineFilename', | |
\ 'fileformat': 'LightLineFileformat', | |
\ 'filetype': 'LightLineFiletype', | |
\ 'fileencoding': 'LightLineFileencoding', | |
\ 'mode': 'LightLineMode', | |
\ 'ctrlpmark': 'CtrlPMark', | |
\ }, | |
\ 'component_expand': { | |
\ 'syntastic': 'SyntasticStatuslineFlag', | |
\ }, | |
\ 'component_type': { | |
\ 'syntastic': 'error', | |
\ }, | |
\ 'subseparator': { 'left': '|', 'right': '|' } | |
\ } | |
function! LightLineModified() | |
return &ft =~ 'help' ? '' : &modified ? '+' : &modifiable ? '' : '-' | |
endfunction | |
function! LightLineReadonly() | |
return &ft !~? 'help' && &readonly ? 'RO' : '' | |
endfunction | |
function! LightLineFilename() | |
let fname = expand('%:t') | |
return fname == 'ControlP' ? g:lightline.ctrlp_item : | |
\ fname == '__Tagbar__' ? g:lightline.fname : | |
\ fname =~ '__Gundo\|NERD_tree' ? '' : | |
\ &ft == 'vimfiler' ? vimfiler#get_status_string() : | |
\ &ft == 'unite' ? unite#get_status_string() : | |
\ &ft == 'vimshell' ? vimshell#get_status_string() : | |
\ ('' != LightLineReadonly() ? LightLineReadonly() . ' ' : '') . | |
\ ('' != fname ? fname : '[No Name]') . | |
\ ('' != LightLineModified() ? ' ' . LightLineModified() : '') | |
endfunction | |
function! LightLineFugitive() | |
try | |
if expand('%:t') !~? 'Tagbar\|Gundo\|NERD' && &ft !~? 'vimfiler' && exists('*fugitive#head') | |
let mark = '' " edit here for cool mark | |
let _ = fugitive#head() | |
return strlen(_) ? mark._ : '' | |
endif | |
catch | |
endtry | |
return '' | |
endfunction | |
function! LightLineFileformat() | |
return winwidth(0) > 70 ? &fileformat : '' | |
endfunction | |
function! LightLineFiletype() | |
return winwidth(0) > 70 ? (strlen(&filetype) ? &filetype : 'no ft') : '' | |
endfunction | |
function! LightLineFileencoding() | |
return winwidth(0) > 70 ? (strlen(&fenc) ? &fenc : &enc) : '' | |
endfunction | |
function! LightLineMode() | |
let fname = expand('%:t') | |
return fname == '__Tagbar__' ? 'Tagbar' : | |
\ fname == 'ControlP' ? 'CtrlP' : | |
\ fname == '__Gundo__' ? 'Gundo' : | |
\ fname == '__Gundo_Preview__' ? 'Gundo Preview' : | |
\ fname =~ 'NERD_tree' ? 'NERDTree' : | |
\ &ft == 'unite' ? 'Unite' : | |
\ &ft == 'vimfiler' ? 'VimFiler' : | |
\ &ft == 'vimshell' ? 'VimShell' : | |
\ winwidth(0) > 60 ? lightline#mode() : '' | |
endfunction | |
function! CtrlPMark() | |
if expand('%:t') =~ 'ControlP' | |
call lightline#link('iR'[g:lightline.ctrlp_regex]) | |
return lightline#concatenate([g:lightline.ctrlp_prev, g:lightline.ctrlp_item | |
\ , g:lightline.ctrlp_next], 0) | |
else | |
return '' | |
endif | |
endfunction | |
let g:ctrlp_status_func = { | |
\ 'main': 'CtrlPStatusFunc_1', | |
\ 'prog': 'CtrlPStatusFunc_2', | |
\ } | |
function! CtrlPStatusFunc_1(focus, byfname, regex, prev, item, next, marked) | |
let g:lightline.ctrlp_regex = a:regex | |
let g:lightline.ctrlp_prev = a:prev | |
let g:lightline.ctrlp_item = a:item | |
let g:lightline.ctrlp_next = a:next | |
return lightline#statusline(0) | |
endfunction | |
function! CtrlPStatusFunc_2(str) | |
return lightline#statusline(0) | |
endfunction | |
let g:tagbar_status_func = 'TagbarStatusFunc' | |
function! TagbarStatusFunc(current, sort, fname, ...) abort | |
let g:lightline.fname = a:fname | |
return lightline#statusline(0) | |
endfunction | |
augroup AutoSyntastic | |
autocmd! | |
autocmd BufWritePost *.c,*.cpp call s:syntastic() | |
augroup END | |
function! s:syntastic() | |
SyntasticCheck | |
call lightline#update() | |
endfunction | |
let g:unite_force_overwrite_statusline = 0 | |
let g:vimfiler_force_overwrite_statusline = 0 | |
let g:vimshell_force_overwrite_statusline = 0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment