2018-05-26 17:18:09 +00:00
|
|
|
" ===== hasufell's vimrc ))))
|
|
|
|
|
2018-08-14 15:55:58 +00:00
|
|
|
" no ATTENTION messages when swap file is already found
|
|
|
|
set shortmess+=A
|
2018-05-26 17:18:09 +00:00
|
|
|
|
2020-10-12 19:33:25 +00:00
|
|
|
let g:pymode_python = 'python3'
|
2022-07-27 16:13:09 +00:00
|
|
|
let g:python_host_prog = '/usr/bin/python2'
|
|
|
|
let g:python3_host_prog = '/usr/bin/python3'
|
2020-10-12 19:33:25 +00:00
|
|
|
|
2018-05-26 17:18:09 +00:00
|
|
|
" plugin stuff
|
|
|
|
filetype plugin on
|
|
|
|
|
2020-10-11 11:50:17 +00:00
|
|
|
set backspace=indent,eol,start " backspace through everything in insert mode
|
2020-08-22 18:37:20 +00:00
|
|
|
set cmdheight=1
|
2018-05-26 17:18:09 +00:00
|
|
|
|
2022-04-29 19:56:19 +00:00
|
|
|
" if has("gui_running")
|
|
|
|
" autocmd GUIEnter * set vb t_vb=
|
|
|
|
" endif
|
|
|
|
set belloff=all
|
|
|
|
|
2020-10-11 11:50:17 +00:00
|
|
|
set wildmenu
|
|
|
|
" set wildmode=longest,list,full
|
2018-05-26 17:18:09 +00:00
|
|
|
|
2020-10-11 15:55:02 +00:00
|
|
|
" plugins
|
|
|
|
if &compatible
|
|
|
|
set nocompatible " Be iMproved
|
2018-06-15 17:02:14 +00:00
|
|
|
endif
|
|
|
|
|
2020-10-11 15:55:02 +00:00
|
|
|
" Required:
|
2020-10-18 21:11:23 +00:00
|
|
|
set runtimepath+=~/.cache/dein/repos/github.com/Shougo/dein.vim
|
2018-05-26 17:18:09 +00:00
|
|
|
|
2020-10-18 21:11:23 +00:00
|
|
|
let s:toml = $HOME . '/.vim/plugins.toml'
|
2022-07-27 16:13:09 +00:00
|
|
|
let g:dein#lazy_rplugins = v:false
|
2020-10-11 15:55:02 +00:00
|
|
|
" Required:
|
2020-10-18 21:11:23 +00:00
|
|
|
if dein#load_state($HOME . '/.cache/dein')
|
|
|
|
call dein#begin($HOME . '/.cache/dein', [$HOME . '/.vim/vimrc', $HOME . '/.vim/plugins.toml'])
|
2022-04-29 19:56:19 +00:00
|
|
|
call dein#add('wsdjeg/dein-ui.vim')
|
2020-10-11 15:55:02 +00:00
|
|
|
call dein#load_toml(s:toml)
|
|
|
|
|
|
|
|
" Let dein manage dein
|
|
|
|
" Required:
|
2020-10-18 21:11:23 +00:00
|
|
|
call dein#add($HOME . '/.cache/dein/repos/github.com/Shougo/dein.vim')
|
2020-10-11 15:55:02 +00:00
|
|
|
|
|
|
|
" Required:
|
|
|
|
call dein#end()
|
|
|
|
call dein#save_state()
|
|
|
|
endif
|
2022-04-29 19:56:19 +00:00
|
|
|
filetype plugin indent on
|
2018-05-26 17:18:09 +00:00
|
|
|
|
2018-06-15 17:02:14 +00:00
|
|
|
" ===== further plugin initialization and default config =====
|
2018-05-26 17:18:09 +00:00
|
|
|
so ~/.vim/plugged/cmdalias.vim/plugin/cmdalias.vim
|
2022-04-29 19:56:19 +00:00
|
|
|
so ~/.vim/autoload/log-autocmds.vim
|
2018-05-26 17:18:09 +00:00
|
|
|
|
2018-06-15 17:39:17 +00:00
|
|
|
" lustyexplorer
|
|
|
|
set hidden
|
|
|
|
|
2018-05-26 17:18:09 +00:00
|
|
|
|
|
|
|
" ==== conque ====
|
|
|
|
" command aliases
|
|
|
|
call CmdAlias('t','tabnew')
|
|
|
|
" call CmdAlias('cmd','ConqueTermSplit')
|
|
|
|
" call CmdAlias('bash','ConqueTermSplit bash<CR>')
|
|
|
|
call CmdAlias('openall','tab sball')
|
|
|
|
call CmdAlias('stripw','call StripTrailingWhitespaces()<CR>')
|
|
|
|
call CmdAlias('hotkeys', 'tabnew ~/.vim/hotkeys')
|
|
|
|
call CmdAlias('TC', 'call ToggleComment()<CR>')
|
|
|
|
call CmdAlias('TF', 'call ToggleFoldText()<CR>')
|
|
|
|
call CmdAlias('ctags', '!/usr/bin/ctags -R --langmap=c:.c.h --c++-kinds=+p --c-kinds=+p+x --fields=+i+a+S+t+l+m+n --extra=+q .<CR>')
|
2020-01-25 18:22:22 +00:00
|
|
|
call CmdAlias('Nf', 'Neoformat')
|
|
|
|
call CmdAlias('NF', 'Neoformat')
|
|
|
|
call CmdAlias('nf', 'Neoformat')
|
|
|
|
call CmdAlias('LS', 'LanguageClientStart')
|
2022-07-27 16:13:09 +00:00
|
|
|
call CmdAlias('LspLog', 'lua vim.cmd("e"..vim.lsp.get_log_path())<CR>')
|
2018-05-26 17:18:09 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
2018-06-15 17:02:14 +00:00
|
|
|
" global settings
|
2020-08-22 18:37:20 +00:00
|
|
|
if has('gui_running')
|
|
|
|
set guioptions -=T
|
2020-10-11 15:55:02 +00:00
|
|
|
|
|
|
|
" disable gvim tab
|
|
|
|
set guioptions-=e
|
|
|
|
|
2020-08-22 18:37:20 +00:00
|
|
|
set winaltkeys=no
|
|
|
|
set guiheadroom=0
|
|
|
|
else
|
|
|
|
set termguicolors
|
|
|
|
endif
|
2018-06-15 17:02:14 +00:00
|
|
|
set foldmethod=syntax "fold based on indent
|
|
|
|
set foldnestmax=10 "deepest fold is 10 levels
|
|
|
|
set nofoldenable "dont fold by default
|
|
|
|
set foldlevel=1 "this is just what i useset directory=~/.vimtmp
|
|
|
|
set mouse=a
|
|
|
|
set autoread
|
|
|
|
set number
|
|
|
|
set encoding=utf8
|
2022-04-29 19:56:19 +00:00
|
|
|
set guifont=Hack\ Nerd\ Font\ Mono\ 16
|
2018-06-15 17:02:14 +00:00
|
|
|
set clipboard=unnamedplus
|
|
|
|
set textwidth=0
|
|
|
|
set tabstop=4
|
|
|
|
set shiftwidth=4
|
|
|
|
set directory=~/.vimtmp
|
|
|
|
set modeline
|
|
|
|
set modelines=1
|
2020-10-11 11:50:17 +00:00
|
|
|
set autoindent
|
2020-10-12 19:33:25 +00:00
|
|
|
set laststatus=2
|
2018-05-26 17:18:09 +00:00
|
|
|
|
2020-01-30 00:07:59 +00:00
|
|
|
let g:nickID = 'hasufell'
|
2018-05-26 17:18:09 +00:00
|
|
|
|
|
|
|
" don't yank to buffer on deletion
|
|
|
|
" vnoremap d "_d
|
|
|
|
" nnoremap d "_d
|
|
|
|
vnoremap x "_x
|
|
|
|
nnoremap x "_x
|
|
|
|
|
|
|
|
" Syntax
|
2018-06-18 10:00:54 +00:00
|
|
|
syntax on
|
2018-05-26 17:18:09 +00:00
|
|
|
|
|
|
|
" pane navigation
|
|
|
|
" Use ctrl-[hjkl] to select the active split!
|
|
|
|
let g:C_Ctrl_j = 'off'
|
|
|
|
let g:BASH_Ctrl_j = 'off'
|
|
|
|
|
2018-06-15 17:02:14 +00:00
|
|
|
try
|
|
|
|
lang en_US
|
|
|
|
catch
|
|
|
|
endtry
|
2018-05-26 17:18:09 +00:00
|
|
|
|
|
|
|
" ===========================
|
|
|
|
|
|
|
|
|
2018-06-15 17:02:14 +00:00
|
|
|
" Disable annoying auto line break
|
|
|
|
fu! DisableBr()
|
|
|
|
set wrap
|
|
|
|
set linebreak
|
|
|
|
set nolist " list disables linebreak
|
|
|
|
set textwidth=0
|
|
|
|
set wrapmargin=0
|
2020-01-30 00:07:59 +00:00
|
|
|
set formatoptions-=t
|
2018-06-15 17:02:14 +00:00
|
|
|
endfu
|
|
|
|
|
|
|
|
" Disable line breaks for all file types
|
|
|
|
au BufNewFile,BufRead *.* call DisableBr()
|
|
|
|
|
|
|
|
|
|
|
|
" ==========copy/paste===========
|
|
|
|
function! Paste(mode)
|
2020-01-30 00:07:59 +00:00
|
|
|
if a:mode == 'v'
|
2018-06-15 17:02:14 +00:00
|
|
|
normal gv
|
|
|
|
normal "_d
|
|
|
|
normal "+gP
|
|
|
|
normal l
|
2020-01-30 00:07:59 +00:00
|
|
|
elseif a:mode == 'i'
|
2018-06-15 17:02:14 +00:00
|
|
|
set virtualedit=all
|
|
|
|
normal `^"+gP
|
2020-01-30 00:07:59 +00:00
|
|
|
let &virtualedit = ''
|
2018-06-15 17:02:14 +00:00
|
|
|
endif
|
|
|
|
endfunction
|
|
|
|
|
|
|
|
|
|
|
|
" ======select all=======
|
|
|
|
function! Select()
|
|
|
|
set virtualedit=all
|
|
|
|
normal `^ggVG
|
2020-01-30 00:07:59 +00:00
|
|
|
let &virtualedit = ''
|
2018-06-15 17:02:14 +00:00
|
|
|
endfunction
|
|
|
|
" =======================
|
2018-05-26 17:18:09 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
" ====== traling whitespace =====
|
|
|
|
fun! ShowTrailingWhitespace(pattern)
|
|
|
|
if &ft == 'conque_term'
|
|
|
|
call clearmatches()
|
|
|
|
return
|
|
|
|
endif
|
|
|
|
if &ft == 'diff'
|
|
|
|
call clearmatches()
|
|
|
|
return
|
|
|
|
endif
|
|
|
|
let str=a:pattern
|
|
|
|
if str == '1'
|
|
|
|
match ExtraWhitespace /\s\+$/
|
|
|
|
elseif str == '2'
|
|
|
|
call clearmatches()
|
|
|
|
" match ExtraWhitespace /\s\+\%#\@<!$/
|
|
|
|
elseif str == '3'
|
|
|
|
match ExtraWhitespace /\s\+$/
|
|
|
|
endif
|
|
|
|
endfun
|
|
|
|
|
|
|
|
|
|
|
|
highlight ExtraWhitespace ctermbg=red guibg=red
|
|
|
|
match ExtraWhitespace /\s\+$/
|
|
|
|
autocmd BufWinEnter * call ShowTrailingWhitespace('1')
|
|
|
|
autocmd InsertEnter * call ShowTrailingWhitespace('2')
|
|
|
|
autocmd InsertLeave * call ShowTrailingWhitespace('3')
|
|
|
|
autocmd BufWinLeave * call clearmatches()
|
|
|
|
|
|
|
|
|
|
|
|
fun! StripTrailingWhitespaces()
|
|
|
|
let l = line(".")
|
|
|
|
let c = col(".")
|
|
|
|
%s/\s\+$//e
|
|
|
|
call cursor(l, c)
|
|
|
|
endfun
|
|
|
|
|
2022-04-29 19:56:19 +00:00
|
|
|
function! ComIfGit(com1, com2)
|
|
|
|
silent! !git rev-parse --is-inside-work-tree
|
|
|
|
if v:shell_error == 0
|
|
|
|
execute a:com1
|
|
|
|
else
|
|
|
|
execute a:com2
|
|
|
|
endif
|
|
|
|
endfunction
|
2018-05-26 17:18:09 +00:00
|
|
|
|
|
|
|
" ===========================
|
|
|
|
|
|
|
|
|
|
|
|
" comment hiding
|
|
|
|
func! IsComment( lnum )
|
2020-01-30 00:07:59 +00:00
|
|
|
return synIDattr(synID(a:lnum, match(getline(a:lnum),'\S')+1, 1),'name') =~? 'comment'
|
2018-05-26 17:18:09 +00:00
|
|
|
endfun
|
|
|
|
|
|
|
|
|
|
|
|
"set fdm=expr
|
|
|
|
set fde=IsComment(v:lnum)?1:IsComment(prevnonblank(v:lnum))?1:IsComment(nextnonblank\(v:lnum))?1:0
|
|
|
|
|
|
|
|
|
|
|
|
" light #073642 dark #002b36 grey #586e75
|
|
|
|
highlight Folded gui=NONE guifg=#586e75 guibg=#002b36
|
|
|
|
set foldtext='\ '
|
|
|
|
|
|
|
|
|
|
|
|
let g:folded = 0
|
|
|
|
function! ToggleComment()
|
|
|
|
if (g:folded == 0)
|
|
|
|
highlight Comment guifg=#002b36
|
|
|
|
let g:folded=1
|
|
|
|
else
|
|
|
|
highlight Comment guifg=#586e75
|
|
|
|
let g:folded=0
|
|
|
|
endif
|
|
|
|
endfunction
|
|
|
|
|
|
|
|
|
|
|
|
let g:myfoldtext = 0
|
|
|
|
function! ToggleFoldText()
|
|
|
|
if (g:myfoldtext == 0)
|
|
|
|
set foldtext='--'.v:folddashes.'\ '.getline(v:foldstart).'\ '
|
|
|
|
let g:myfoldtext=1
|
|
|
|
else
|
|
|
|
set foldtext='\ '
|
|
|
|
let g:myfoldtext=0
|
|
|
|
endif
|
|
|
|
endfunction
|
|
|
|
|
|
|
|
|
|
|
|
""""""""""""""""""""""""""""""
|
|
|
|
" vim macro to jump to devhelp topics.
|
|
|
|
""""""""""""""""""""""""""""""
|
|
|
|
function! DevHelpCurrentWord()
|
2020-01-30 00:07:59 +00:00
|
|
|
let word = expand('<cword>')
|
|
|
|
exe '!devhelp -s ' . word . ' &'
|
2018-05-26 17:18:09 +00:00
|
|
|
endfunction
|
|
|
|
|
|
|
|
function! ManCurrentWord()
|
2020-01-30 00:07:59 +00:00
|
|
|
let word = expand('<cword>')
|
|
|
|
exe '!man 3 ' . word
|
2018-05-26 17:18:09 +00:00
|
|
|
endfunction
|
|
|
|
|
2022-04-29 19:56:19 +00:00
|
|
|
|
|
|
|
""""""""""""""""""""""""""""""
|
|
|
|
" Close preview after typing
|
|
|
|
""""""""""""""""""""""""""""""
|
|
|
|
autocmd WinEnter * call ClosePreviewWindow()
|
|
|
|
function ClosePreviewWindow()
|
|
|
|
if getwinvar(winnr("#"), "&pvw") == 1
|
|
|
|
pclose
|
|
|
|
endif
|
|
|
|
endfunction
|
|
|
|
|
|
|
|
|
|
|
|
set title
|
2022-07-27 16:13:09 +00:00
|
|
|
autocmd BufEnter * set titlestring=%t%(\ %M%)%(\ (%{expand(\"%:~:h\")})%)%(\ %a%)
|
|
|
|
|
2022-04-29 19:56:19 +00:00
|
|
|
|
2018-05-26 17:18:09 +00:00
|
|
|
" vim:foldmethod=marker:foldlevel=0
|