Created
November 16, 2019 08:34
-
-
Save hulucc/7822265634426b651bb30c9f276b6731 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
" level 0 | |
set nocompatible | |
syntax on | |
set encoding=utf-8 | |
set fileformat=unix | |
set fileformats=unix,dos | |
set clipboard=unnamed | |
let $LANG='en_US.utf8' | |
let mapleader='g' | |
nnoremap <silent> <leader>ev :e $MYVIMRC<cr> | |
nnoremap <silent> <leader>m :messages<cr> | |
nnoremap <silent> Q :q!<cr> | |
nnoremap <silent> Z :qa!<cr> | |
nnoremap <silent> W :w! ++ff=unix<cr> | |
nnoremap <silent> X :bd!<cr> | |
nnoremap <silent> R :e!<cr>G | |
nnoremap <silent> T :enew!<cr> | |
nnoremap <silent> L :nohls<cr> | |
nnoremap <silent> U :redo<cr> | |
nnoremap <silent> <c-g> :wincmd p<cr> | |
" level 1 | |
filetype on | |
filetype plugin on | |
filetype indent on | |
set number | |
set relativenumber | |
set numberwidth=1 | |
set tabstop=4 | |
set shiftwidth=4 | |
set shiftround | |
set expandtab | |
set autoindent | |
set nowrap | |
set linebreak | |
set belloff=all | |
set backspace=indent,eol,start | |
set hidden | |
set noshowmode | |
set modifiable | |
set autoread | |
set noautowrite | |
set scrolloff=4 | |
set sidescrolloff=8 | |
set sidescroll=1 | |
set virtualedit=all | |
set nolist | |
set display+=lastline | |
set modeline | |
set modelines=5 | |
set fileencodings=utf-8,gb2312,gb18030,gbk,ucs-bom,cp936,latin1 | |
set fileencoding=utf-8 | |
set termencoding=utf-8 | |
set ignorecase smartcase | |
set incsearch | |
set hlsearch | |
set wrapscan | |
let @/ = "" | |
set wildmenu | |
set splitright | |
set splitbelow | |
set foldlevelstart=20 | |
set noswapfile | |
set directory=~/vimfiles/files/swap/ | |
set backup | |
set backupdir=~/vimfiles/files/backup/ | |
set backupext=.bak | |
set undofile | |
set undodir=~/vimfiles/files/undo/ | |
set viminfo='100,n~/vimfiles/files/viminfo | |
set exrc | |
let g:netrw_silent=1 | |
packadd! matchit | |
"set termwinkey=<c-e> | |
"set ttimeoutlen=10 | |
nnoremap j gj | |
xnoremap j gj | |
nnoremap k gk | |
xnoremap k gk | |
xnoremap v $h | |
nnoremap <space> o<esc> | |
nnoremap <leader>p o<esc>P^ | |
nnoremap <leader>P O<esc>P^ | |
nnoremap <leader>H <c-w>H | |
nnoremap <leader>J <c-w>J | |
nnoremap <leader>K <c-w>K | |
nnoremap <leader>L <c-w>L | |
nnoremap <silent> yow :set wrap!<cr> | |
nnoremap <silent> yos :syntax sync fromstart<cr> | |
nnoremap <silent> yob :set invbuflisted<bar>redraw!<cr> | |
nnoremap <silent> yoc :let @*=expand('%:p')<bar>echo 'full path copied'<cr> | |
onoremap <silent> ae :<c-u>normal! ggVG<cr> | |
xnoremap <silent> ae :<c-u>normal! ggVG<cr> | |
onoremap <silent> il :<c-u>normal! ^v$h<cr> | |
xnoremap <silent> il :<c-u>normal! ^v$h<cr> | |
inoremap <c-v> <c-r>* | |
cnoremap <c-v> <c-r>* | |
tnoremap <c-v> <c-w>"* | |
vnoremap p "_dP | |
nnoremap <silent> ' :bnext<cr> | |
nnoremap <silent> <c-'> :bprev<cr> | |
nnoremap <silent> <leader>< 0d^ | |
" restore previous position of file | |
au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | execute "normal! g`\"" | endif | |
" level 3 | |
set pythondll=C:\Python27\python27.dll | |
set pythonthreedll=C:\Users\hulucc\AppData\Local\Programs\Python\Python37\python37.dll | |
nnoremap <silent> <leader>ei :AsyncRun volt build<cr> | |
nnoremap <silent> <leader>ep :e ~/volt/dbs.yaml<cr> | |
nnoremap <silent> <leader>en :e ~/notepad<cr> | |
nnoremap <silent> <leader>eh :e C:\Windows\System32\drivers\etc\hosts<cr> | |
nnoremap <silent> <leader>eu :e D:\project\config\cmder\user_aliases.cmd<cr> | |
nnoremap <silent> <leader>eo :cd D:\project\config <bar> :NERDTreeToggle<cr> | |
nnoremap <silent> <leader>es :e ~/.ssh/config<cr> | |
nnoremap <silent> <leader>qh :Hexmode<cr> | |
nnoremap <silent> <leader>s :new<cr> | |
nnoremap <silent> <leader>v :vnew<cr> | |
nnoremap <silent> <leader>x :wincmd x<cr> | |
nnoremap <silent> <leader>l :!clear<cr><cr> | |
nnoremap <silent> } :vsp<bar>wincmd p<bar>set nobuflisted<bar>Sayo!<cr> | |
nnoremap <silent> { :sp<bar>wincmd p<bar>set nobuflisted<bar>Sayo!<cr> | |
nnoremap <silent> X :set nobuflisted<bar>Sayo!<cr> | |
nnoremap <silent> Q :Sayo<cr> | |
nnoremap <silent> " :NERDCommenterToggle<cr> | |
xnoremap <silent> " :NERDCommenterToggle<cr> | |
nnoremap <silent> E :NERDTreeToggle<cr> | |
nnoremap <silent> e :NERDTreeFocus<cr> | |
nnoremap <silent> m :ChooseWin<cr> | |
nnoremap <silent> , :call ToggleWindows()<cr> | |
nnoremap <silent> H :GV!<cr> | |
nnoremap <silent> <c-h> :GV<cr> | |
nnoremap <silent> B :Gblame<cr> | |
nnoremap <silent> <c-a> :if !switch#Switch()<bar>exe "normal! \<lt>c-a>"<bar>endif<cr> | |
nnoremap <silent> <c-x> :if !switch#Switch({'reverse': 1})<bar>exe "normal! \<lt>c-x>"<bar>endif<cr> | |
nnoremap <silent> <c-e> :NERDTreeFind<cr> | |
nnoremap <silent> <c-w> :WinResizerStartResize<cr> | |
nnoremap <silent> <c-s> :AsyncStop<cr> | |
nnoremap <silent> - :Rg<cr> | |
nnoremap <silent> _ :Rg <c-r><c-w><cr> | |
xnoremap <silent> _ y:Rg <c-r>0<cr> | |
nnoremap <silent> \ :Rgu<cr> | |
nnoremap <silent> \| :Rgu <c-r><c-w><cr> | |
xnoremap <silent> \| y:Rgu <c-r>0<cr> | |
nnoremap <silent> <c-r> :Far <c-r><c-w> <c-r><c-w> *<cr> | |
nnoremap <silent> <c-;> :TagbarToggle<cr> | |
nnoremap <silent> <leader>al :SidewaysRight<cr> | |
nnoremap <silent> <leader>ah :SidewaysLeft<cr> | |
inoreabbrev <silent> uuid4 <c-o>:py3 from uuid import uuid4<cr><c-r>=py3eval('uuid4().hex')<cr> | |
inoreabbrev <silent> guid4 <c-o>:py3 from uuid import uuid4<cr><c-r>=py3eval('str(uuid4())')<cr> | |
" level 4 | |
function! s:init_python() | |
let $PYTHONUNBUFFERED=1 | |
let &l:errorformat = '%+GTraceback%.%#,%I%.%#File "%f"\, line %l%m,%Z %m' | |
nnoremap <buffer> <silent> <s-cr> :TestNearest<cr> | |
nnoremap <buffer> <silent> <leader><cr> :TestFile<cr> | |
nnoremap <buffer> <silent> <cr> :AsyncRun -cwd=<root> -save=2 python -m <c-r>=substitute(expand('%:.:r'), '[\/\\]', '.', 'g')<cr><cr> | |
nnoremap <buffer> <silent> <nl> :%AsyncRun python<cr> | |
xnoremap <buffer> <silent> <cr> :AsyncRun python<cr> | |
nmap <buffer> <c-]> <Plug>(lsp-definition) | |
nmap <buffer> K <Plug>(lsp-hover) | |
nmap <buffer> <leader>r <Plug>(lsp-references) | |
nnoremap <buffer> <silent> <c-r> :Far <c-r><c-w> <c-r><c-w> *.py<cr> | |
endfunction | |
function! s:init_javascript() | |
setlocal tabstop=2 shiftwidth=2 | |
nnoremap <buffer> <silent> <s-cr> :TestNearest<cr> | |
nnoremap <buffer> <silent> <leader><cr> :TestFile<cr> | |
nmap <buffer> <c-]> <Plug>(lsp-definition) | |
nmap <buffer> <leader>r <Plug>(lsp-rename) | |
nmap <buffer> K <Plug>(lsp-hover) | |
nmap <buffer> <c-k> <Plug>(lsp-references) | |
endfunction | |
function! s:init_vue() | |
syntax sync fromstart | |
endfunction | |
function! s:init_lua() | |
setlocal tabstop=2 shiftwidth=2 | |
nnoremap <buffer> <silent> <nl> :%AsyncRun lua<cr> | |
xnoremap <buffer> <silent> <cr> :AsyncRun lua<cr> | |
endfunction | |
nnoremap <silent> <leader>qs :set ft=db <bar> ListConnection<cr> | |
function! s:set_connection(conn) | |
let b:db = g:dbs['conns'][a:conn] | |
let type = matchlist(b:db, '\v^(.*)://')[1] | |
let &filetype=g:dbs['types'][type] | |
endfunction | |
function! s:init_db() | |
let $TERM = 'cygwin' | |
if !exists('g:dbs') | |
py3 import json, os, yaml | |
let g:dbs = py3eval('yaml.safe_load(open(os.path.expanduser("~/volt/dbs.yaml")))') | |
endif | |
command! -nargs=1 SetConnection call s:set_connection(<q-args>) | |
command! ListConnection execute 'LoadFzfVim' <bar> call fzf#run({'source': sort(keys(g:dbs['conns'])), 'sink': 'SetConnection', 'window': 'split', 'options': '--layout=reverse'}) | |
nnoremap <buffer> <silent> <cr> :%DB<cr> | |
nnoremap <buffer> <silent> <nl> mmvip:DB<cr>`m | |
nnoremap <buffer> <silent> <s-cr> :DB<cr> | |
xnoremap <buffer> <silent> <cr> :DB<cr> | |
nnoremap <buffer> R :let b:db='<c-r>=eval('b:db')<cr>'<left> | |
nnoremap <buffer> <silent> , :call TogglePreview()<cr> | |
endfunction | |
function! s:init_sql() | |
nnoremap <buffer> <silent> = :%!sqlformat -r -a -k upper -i lower -<cr> | |
xnoremap <buffer> <silent> = :!sqlformat -r -a -k upper -i lower -<cr> | |
endfunction | |
function! ToggleWindows() | |
let l:preview = get(filter(range(1, winnr('$')), "getwinvar(v:val, '&pvw')"), 0, 0) | |
if l:preview != 0 | |
execute 'pclose' | |
else | |
execute 'ToggleQuickFix' | |
endif | |
endfunction | |
function! TogglePreview() | |
let l:preview = get(filter(range(1, winnr('$')), "getwinvar(v:val, '&pvw')"), 0, 0) | |
if l:preview != 0 | |
let g:pbuffer = bufname(winbufnr(l:preview)) | |
execute 'pclose' | |
else | |
if get(g:, 'pbuffer', '') != '' | |
silent! execute 'bot pedit ' . g:pbuffer | |
endif | |
endif | |
endfunction | |
function! s:init_preview() | |
nnoremap <buffer> <silent> , :call TogglePreview()<cr> | |
"unsilent echom 3 | |
endfunction | |
if has('gui_running') | |
let g:shell = 'cmd /k ' . $CMDER_INSTALL_DIR . '\vendor\init.bat' | |
else | |
let g:shell = 'sh -c "cmd //k d:\\\\cmder\\\\vendor\\\\init.bat"' | |
endif | |
function! GetTerminal() | |
return get(filter(range(1,bufnr('$')), "getbufvar(v:val, '&buftype') == 'terminal'"), 0, -1) | |
endfunction | |
function! OpenTerminal(prefix, shell, focus) | |
let l:terminal = GetTerminal() | |
if l:terminal != -1 | |
let l:window = bufwinnr(l:terminal) | |
if l:window != -1 | |
if a:focus | execute l:window . "wincmd w" | endif | |
else | |
silent execute a:prefix . " sbuffer " . l:terminal | |
if !a:focus | execute "wincmd p" | endif | |
endif | |
else | |
execute a:prefix . " terminal " . a:shell | |
if !a:focus | execute "wincmd p" | endif | |
let l:terminal = GetTerminal() | |
endif | |
return l:terminal | |
endfunction | |
function! SendTerminal(raw, cmd) | |
let l:terminal = OpenTerminal('vertical bot', g:shell, 0) | |
let l:cmd = empty(a:cmd) ? @" : a:cmd | |
if !a:raw | |
let l:cmd = substitute(l:cmd, "[\<cr>\n\t]", " ", "g") | |
let l:cmd = substitute(l:cmd, ' \{2,}', " ", "g") | |
let l:cmd = trim(l:cmd, " ") . "\<cr>" | |
endif | |
call term_sendkeys(l:terminal, l:cmd) | |
endfunction | |
function! EnableSendTerminal() | |
nnoremap <buffer> <silent> <nl> mmvipy:call SendTerminal(0, 0)<cr>`m | |
xnoremap <buffer> <silent> <nl> y:call SendTerminal(0, 0)<cr>gv | |
nnoremap <buffer> <silent> <c-l> :call SendTerminal(1, "\<c-l>")<cr> | |
endfunction | |
nnoremap <c-z> :!<c-r>=g:shell<cr><cr><cr> | |
nnoremap <silent> ( :call OpenTerminal('bot', g:shell, 1)<cr> | |
nnoremap <silent> ) :call OpenTerminal('vertical bot', g:shell, 1)<cr> | |
nnoremap <buffer> <silent> <a-cr> mmvipy:call SendTerminal(0, 0)<cr>`m | |
function! s:init_terminal() | |
setlocal nobuflisted | |
tnoremap <a-b> <nop> | |
tnoremap <a-f> <nop> | |
tnoremap <buffer> <silent> <s-cr> <c-w>:quit<bar>wincmd p<cr> | |
" tnoremap <buffer> <silent> <nl> <c-w><c-c>:quit<cr> | |
tnoremap <buffer> <silent> <c-q> <c-w><c-c>:quit<cr> | |
nnoremap <buffer> <silent> <s-cr> :quit<bar>wincmd p<cr> | |
tnoremap <buffer> <silent> <c-o> <c-\><c-n> | |
tnoremap <buffer> <silent> <c-u> <c-\><c-n><c-u> | |
tnoremap <buffer> <silent> <c-w> <c-w>:WinResizerStartResize<cr> | |
tnoremap <buffer> <silent> <c-g> <c-w>:wincmd p<cr> | |
endfunction | |
function! ToggleHelp(prefix) | |
let l:help = get(filter(range(1,bufnr('$')), "getbufvar(v:val, '&buftype') == 'help' && bufwinnr(v:val) != -1"), 0, -1) | |
let l:window = bufwinnr(l:help) | |
if l:window != -1 | |
let g:help = l:help | |
execute l:window . 'hide' | |
elseif get(g:, 'help', -1) != -1 | |
execute printf('%s sbuffer %d | set nonu nornu | resize +5', a:prefix, g:help) | |
else | |
execute a:prefix . " help" | |
endif | |
endfunction | |
nnoremap <silent> <leader>k :call ToggleHelp('')<cr> | |
nnoremap <silent> <leader>K :call ToggleHelp('vert')<cr> | |
function! s:init_help() | |
nnoremap <buffer> <silent> Q :call ToggleHelp('')<cr> | |
endfunction | |
function! s:init_json() | |
nnoremap <buffer> <silent> = :%!jq .<cr> | |
xnoremap <buffer> <silent> = :!jq .<cr> | |
endfunction | |
function! s:init_markdown() | |
setlocal tabstop=2 shiftwidth=2 | |
nnoremap <buffer> <silent> <nl> :MarkdownPreview<cr> | |
hi link mkdLineBreak Comment | |
endfunction | |
function! s:init_lsp() | |
set wrap | |
endfunction | |
function! s:init_far() | |
nnoremap <buffer> <c-r> :FarReplace <c-r>=b:far_ctx['replace_with']<cr> | |
nnoremap <buffer> <s-cr> :Fardo<cr> | |
nnoremap <buffer> <silent> U :Farundo<cr> | |
nnoremap <buffer> <silent> <space> :call g:far#change_exclude_under_cursor(-1)<cr> | |
xnoremap <buffer> <silent> <space> :call g:far#change_exclude_under_cursor(-1)<cr> | |
endfunction | |
function! s:init_sh() | |
call EnableSendTerminal() | |
endfunction | |
function! s:init_go() | |
" nnoremap <buffer> <silent> <s-cr> :AsyncRun go build<cr> | |
nnoremap <buffer> <silent> <nl> :AsyncRun go run .<cr> | |
nnoremap <buffer> <silent> <s-cr> :TestNearest<cr> | |
nnoremap <buffer> <silent> <leader><cr> :TestFile<cr> | |
nmap <buffer> <c-]> <Plug>(lsp-definition) | |
nmap <buffer> K <Plug>(lsp-hover) | |
nnoremap <buffer> <silent> = :silent LspDocumentFormatSync<cr> | |
" nmap <buffer> <leader>r <Plug>(lsp-references) | |
endfunction | |
function! s:init_quickfix() | |
nnoremap <buffer> <silent> , :ToggleQuickFix<cr> | |
endfunction | |
function! s:init_asciidoc() | |
setlocal tabstop=2 shiftwidth=2 | |
endfunction | |
function! s:nginx() | |
nnoremap <buffer> <silent> <nl> :execute printf('AsyncRun nginx -p %s -c %s -s reload', $NGINX_HOME, 'd:\project\config\nginx\default.conf')<cr> | |
endfunction | |
au FileType python call s:init_python() | |
au FileType javascript,javascript.* call s:init_javascript() | |
au FileType lua call s:init_lua() | |
au FileType vue call s:init_vue() | |
au FileType db,db.* call s:init_db() | |
au FileType sql,*.sql,*.sql.* call s:init_sql() | |
au FileType help call s:init_help() | |
au FileType json call s:init_json() | |
au FileType markdown call s:init_markdown() | |
au FileType *.lsp-hover call s:init_lsp() | |
au FileType far call s:init_far() | |
au FileType sh call s:init_sh() | |
au FileType go call s:init_go() | |
au FileType qf call s:init_quickfix() | |
au FileType asciidoc call s:init_asciidoc() | |
au FileType nginx call s:nginx() | |
au BufRead,BufNewFile *.yaml.{tmpl,template} set filetype=yaml | |
au BufRead,BufNewFile *.template set filetype=yaml | |
au BufRead,BufNewFile *Dockerfile set filetype=dockerfile | |
au BufWinEnter * if &previewwindow | call s:init_preview() | endif | |
au TerminalOpen * if &buftype == 'terminal' | call s:init_terminal() | endif | |
" gui | |
if has('gui_running') | |
set guioptions-=g | |
set guioptions-=m | |
set guioptions-=r | |
set guioptions-=L | |
set guioptions-=t | |
set guioptions-=T | |
set guioptions+=c | |
set guifont=Fira_Code:h11:cDEFAULT:qDRAFT | |
set renderoptions=type:directx,gamma:1.0,contrast:0.5,level:1,geom:1,renmode:0,taamode:1 | |
set lines=30 | |
set columns=100 | |
set autowrite | |
au CursorHold * silent! write | |
au CursorHoldI * silent! write | |
au VimLeave * silent! write | |
cd D:\project\config\notes | |
silent edit $HOME/notepad | |
endif |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment