Last active
March 22, 2018 06:04
-
-
Save y9c/1c70261f92a5cac0545e0f6e8ad99c26 to your computer and use it in GitHub Desktop.
This file contains 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
"============================================================================= | |
" Configuration for SpaceVim ( URL: https://spacevim.org ) | |
" Edited by yech | |
"============================================================================= | |
" SpaceVim Wraped Options: {{{ | |
let g:spacevim_enable_debug = 1 | |
let g:spacevim_realtime_leader_guide = 1 | |
let g:spacevim_enable_tabline_filetype_icon = 1 | |
let g:spacevim_enable_statusline_display_mode = 0 | |
let g:spacevim_enable_os_fileformat_icon = 1 | |
let g:spacevim_buffer_index_type = 1 | |
let g:spacevim_enable_vimfiler_welcome = 1 | |
let g:spacevim_enable_debug = 1 | |
" }}} | |
" SpaceVim Layers: {{{ | |
call SpaceVim#layers#load('lang#c') | |
call SpaceVim#layers#load('lang#go') | |
call SpaceVim#layers#load('lang#java') | |
call SpaceVim#layers#load('lang#rust') | |
call SpaceVim#layers#load('lang#lua') | |
call SpaceVim#layers#load('lang#swig') | |
call SpaceVim#layers#load('lang#perl') | |
call SpaceVim#layers#load('lang#python') | |
call SpaceVim#layers#load('lang#javascript') | |
call SpaceVim#layers#load('lang#typescript') | |
call SpaceVim#layers#load('lang#tmux') | |
call SpaceVim#layers#load('lang#vim') | |
call SpaceVim#layers#load('lang#xml') | |
call SpaceVim#layers#load('lang#markdown') | |
call SpaceVim#layers#load('colorscheme') | |
call SpaceVim#layers#load('incsearch') | |
call SpaceVim#layers#load('lsp') | |
call SpaceVim#layers#load('shell') | |
call SpaceVim#layers#load('VersionControl') | |
call SpaceVim#layers#load('tools#screensaver') | |
" }}} | |
" Global Env: {{{ | |
" fix python lints for python3 | |
" let g:pymode_python = 'python3' | |
" let g:python2_host_prog = "/usr/bin/python2" | |
" let g:python3_host_prog = "/usr/bin/python3" | |
" default conceallevel is 2, which is suitable for editing symbol and can't | |
" be editted in SpaceVim | |
let g:tex_conceal = "" "default is abdgm | |
let g:neotex_pdflatex_alternative = "xelatex" | |
" seems not work | |
" let g:neotex_latexdiff = 1 | |
" autoHeader | |
let g:autoHEADER_default_author = 'yech' | |
let g:autoHEADER_fill_char_repeat = 60 | |
" enable markdown file folding | |
let g:markdown_folding = 1 | |
let g:markdown_fenced_languages = ['html', 'python', 'bash=sh'] | |
" }}} | |
" Theme: {{{ | |
set termguicolors | |
let g:one_allow_italics = 1 " italic for comments | |
let g:spacevim_colorscheme = 'one' | |
" let g:spacevim_colorscheme_bg = 'light' " can switch to a light theme | |
let g:spacevim_colorscheme_bg = 'dark' | |
" highlight pythoon | |
let g:python_highlight_all = 1 | |
autocmd ColorScheme * hi Typing gui=italic guifg=#5c6370 guibg=#2c323c cterm=italic ctermfg=59 ctermbg=236 | |
" highlight typescript | |
autocmd ColorScheme * hi typescriptType gui=italic guifg=#5c6370 guibg=#2c323c cterm=italic ctermfg=59 ctermbg=236 | |
" more clear match paren | |
hi MatchParen cterm=bold ctermbg=none ctermfg=magenta | |
" }}} | |
" Keymapping: {{{ | |
noremap U <C-R> | |
" Fn keys shortcut mapping | |
" F1: disabled -- may conflict with system default | |
noremap <F1> <Esc>" | |
" F2: tag list -- DEFAULT SETTING | |
" F3: dir tree -- DEFAULT SETTING | |
" F7: version control -- DEFAULT SETTING | |
" F8: tag list -- DEFAULT SETTING | |
" WTF! another tag list? | |
" }}} | |
" Plugin Setting: {{{ | |
" If there is a particular plugin you don't like, you can define this variable to disable them entirely: | |
" let g:spacevim_disabled_plugins=[ | |
" \ ['othree/es.next.syntax.vim'], | |
" \ ] | |
" If you want to add some custom plugins, use these options: | |
let g:spacevim_custom_plugins = [ | |
\ ['yech1990/vim_enhanced_syntax', {'on_ft' : 'python'}], | |
\ ['donRaphaco/neotex', { 'for': 'tex' }] | |
\ ] | |
" }}} | |
" File and Characters: {{{ | |
"set encoding | |
set encoding=utf-8 | |
set fileencoding=utf-8 | |
"show CRLF | |
set ffs=unix | |
"show mark special symbol | |
" set listchars=eol:⏎,tab:␉·,trail:␠,nbsp:⎵ | |
" }}} | |
" Custom Functions {{{ | |
" Fx: format code -- changed for neovim | |
" noremap <Fx> :NeoFormat<CR> | |
" Fx: spell check | |
" set nospell | |
" nnoremap <Fx> :set spell! spell?<CR> | |
" Fx: paste mode -- both normal and insert mode works | |
" set pastetoggle=<Fx> | |
" disbale paste mode when leaving insert mode | |
" au InsertLeave * set nopaste | |
" nnoremap <Fx> :exec exists('syntax_on') ? 'syn off' : 'syn on'<CR> | |
" Fx: wrap line | |
" nnoremap <Fx> :set wrap! wrap?<CR> | |
" Fx: list | |
nnoremap <F4> :set list! list?<CR> | |
" Fx: toggle linenumber -- useful for mouse selection | |
function! ToggleLineNumber() | |
if(&relativenumber == &number) | |
set relativenumber! number! | |
elseif(&number) | |
set number! | |
else | |
set relativenumber! | |
endif | |
set number? | |
endfunc | |
" nnoremap <Fx> :call ToggleLineNumber()<CR> | |
" Fx: quick insert datetime -- both normal and insert mode | |
" nmap <Fx> i<C-R>=system('date --iso-8601=second')<CR><Esc> | |
" imap <Fx> <C-R>=system('date --iso-8601=second')<CR> | |
" self define task list | |
function! Toggle_Task_List() | |
if getline('.') =~ '^- \[ \]\ ' | |
s/^- \[ \]/- [x]/ | |
elseif getline('.') =~ '^- \[x\]\ ' | |
s/^- \[x\]/- [ ]/ | |
else | |
echo "Not a item of task list!" | |
endif | |
endfunction | |
" task list toggle | |
map <leader>tt :call Toggle_Task_List()<cr> | |
function! New_Task_List() | |
if getline('.') =~ '^- \[ \]\ ' | |
call append(line('.'), "- [ ] ") | |
call cursor(line('.')+1, 0) | |
startinsert! | |
elseif getline('.') =~ '^- \[x\]\ ' | |
call append(line('.'), "- [x] ") | |
call cursor(line('.')+1, 0) | |
startinsert! | |
else | |
echo "Not a item of task list!" | |
endif | |
endfunction | |
" task list new | |
map <leader>tn :call New_Task_List()<cr> | |
function! New_Task_List() | |
if getline('.') =~ '^- \[ \]\ ' | |
call append(line('.'), "- [ ] ") | |
call cursor(line('.')+1, 0) | |
startinsert! | |
elseif getline('.') =~ '^- \[x\]\ ' | |
call append(line('.'), "- [x] ") | |
call cursor(line('.')+1, 0) | |
startinsert! | |
else | |
echo "Not a item of task list!" | |
endif | |
endfunction | |
" task list fold | |
map <leader>tf :call Fold_Task_List()<cr> | |
function! Fold_Task_List() | |
if &foldlevel | |
echo "file is unfold" | |
set foldmethod=expr | |
set foldexpr=getline(v:lnum)=~'^-\ [x\\]\ ' | |
set fml=0 | |
set foldlevel=0 | |
else | |
echo "file is fold" | |
set foldmethod=manual | |
set foldexpr=0 | |
set fml=1 | |
set foldlevel=1 | |
endif | |
endfunction | |
" async run method, alternation in SpaceVim | |
augroup SPACEVIM_ASYNCRUN | |
autocmd! | |
" Automatically open the quickfix window | |
autocmd User AsyncRunStart call asyncrun#quickfix_toggle(15, 1) | |
augroup END | |
function! s:compile_and_run() | |
exec 'w' | |
if &filetype == 'c' | |
exec "AsyncRun! gcc % -o %<; time ./%<" | |
elseif &filetype == 'cpp' | |
exec "AsyncRun! g++ -std=c++11 % -o %<; time ./%<" | |
elseif &filetype == 'java' | |
exec "AsyncRun! javac %; time java %<" | |
elseif &filetype == 'sh' | |
exec "AsyncRun! time bash %" | |
elseif &filetype == 'python' | |
exec "AsyncRun! time python3 %" | |
endif | |
endfunction | |
" }}} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment