" MEMO {{{ " :help internal-variables {{{ "+----+-------------------+---------------------------------------------+ "| b: | buffer-variable | Local to the current buffer. | "| w: | window-variable | Local to the current window. | "| t: | tabpage-variable | Local to the current tab page. | "| g: | global-variable | Global. | "| l: | local-variable | Local to a function. | "| s: | script-variable | Local to a :source'ed Vim script. | "| a: | function-argument | Function argument (only inside a function). | "| v: | vim-variable | Global, predefined by Vim. | "+----+-------------------+---------------------------------------------+ "}}} " :help map {{{ "+----------------------------------------------+--------------------------------------------------------------------------------+ "|commands: |modes: | "| Variables | Constants | Unset | Destroy | Normal | Visual | Select | Operator-pending | Insert | Command-line | Lang-Arg | "| :map | :noremap | :unmap | :mapclear | yes | yes | yes | yes | - | - | - | "| :nmap | :nnoremap | :nunmap | :nmapclear | yes | - | - | - | - | - | - | "| :vmap | :vnoremap | :vunmap | :vmapclear | - | yes | yes | - | - | - | - | "| :omap | :onoremap | :ounmap | :omapclear | - | - | - | yes | - | - | - | "| :xmap | :xnoremap | :xunmap | :xmapclear | - | yes | - | - | - | - | - | "| :smap | :snoremap | :sunmap | :smapclear | - | - | yes | - | - | - | - | "| :map! | :noremap! | :unmap! | :mapclear! | - | - | - | - | yes | yes | - | "| :imap | :inoremap | :iunmap | :imapclear | - | - | - | - | yes | - | - | "| :cmap | :cnoremap | :cunmap | :cmapclear | - | - | - | - | - | yes | - | "| :lmap | :lnoremap | :lunmap | :lmapclear | - | - | - | - | yes* | yes* | yes* | "+-----------+-----------+---------+------------+--------+--------+--------+------------------+--------+--------------+----------+ "}}} "}}} " Variables {{{ "if has('win32') || has ('win64') " let s:osType = 'win' "elseif has('macunix') "if has('macunix') let s:osType = 'macunix' "else " let s:osType = 'unix' "endif "function! s:GetTablineRight() abort "{{{ " let s:tablineRight = '%#TabLine# ' . strftime('%y-%m-%d %H:%M', s:currentTime) . ' ' " "if s:osType ==# 'macunix' " let l:battery = system("pmset -g ps|egrep -o '[0-9]{1,3}%'|egrep -o '[0-9]{1,3}'|tr -d '\n'") " let l:charge = system("pmset -g ps|egrep -o 'discharging'|tr -d '\n'") " if l:battery < 20 " if l:charge ==# 'discharging' " let s:tablineRight = s:tablineRight . '%#KazuakiMError# ' . l:battery . '%% ' " else " let s:tablineRight = s:tablineRight . '%#KazuakiMWarning# ' . l:battery . '%% ' " endif " else " let s:tablineRight = s:tablineRight . '%#KazuakiMInfo# ' . l:battery . '%% ' " endif " "endif " return s:tablineRight "endfunction "}}} "let s:currentTime = ! exists('s:currentTime') ? localtime() : s:currentTime let s:envHome = ! exists('s:envHome') ? $HOME : s:envHome let s:envUser = ! exists('s:envUser') ? $USER : s:envUser let s:statuslineSwitch = ! exists('s:statuslineSwitch') ? 0 : s:statuslineSwitch let s:swapFilePath = ! exists('s:swapFilePath') ? '' : s:swapFilePath let s:deinDir = ! exists('s:deinDir') ? s:envHome . '/.vim/dein.vim' : s:deinDir "if has('gui_running') " let s:tablineRight = ! exists('s:tablineRight') ? s:GetTablineRight() : s:tablineRight "else " let s:tablineRight = '' "endif "}}} " Common {{{ " encoding set encoding=utf-8 fileencoding=utf-8 fileformats=unix,dos,mac if iconv("\x87\x64\x87\x6a", 'cp932', 'eucjp-ms') ==# "\xad\xc5\xad\xcb" set fileencodings=ucs-bom,utf-8,default,eucjp-ms,latin1,iso-2022-jp-3,cp932 elseif iconv("\x87\x64\x87\x6a", 'cp932', 'euc-jisx0213') ==# "\xad\xc5\xad\xcb" set fileencodings=ucs-bom,utf-8,default,euc-jisx0213,latin1,iso-2022-jp-3,cp932 else set fileencodings=ucs-bom,utf-8,default,euc-jp,latin1,iso-2022-jp,cp932 endif scriptencoding utf-8 let g:mapleader = ',' noremap noremap map map ; augroup MyAutoCmd autocmd! augroup END function! s:AutoMkdir(dir) abort "{{{ if !isdirectory(a:dir) call mkdir(a:dir, 'p') endif endfunction "}}} function! s:VimStart(backupDir, undoDir) abort "{{{ "Check 256KB file size. if 262144 <= getfsize(expand('%:p')) call kazuakim#Minimal() return 1 endif let s:syntaxToggle = 0 return 0 endfunction "}}} if has('vim_starting') "if s:osType ==# 'win' " set runtimepath^=$HOME\.vim runtimepath+=$HOME\.vim\after " if s:VimStart(s:envHome . '\.vim\backup\', s:envHome . '\.vim\undo\') " finish " endif " " vimproc.vim {{{ " let g:vimproc#dll_path = s:deinDir . '/repos/github.com/Shougo/vimproc.vim/lib/vimproc_win64.dll' " let g:vimproc#download_windows_dll = 1 " "}}} "else if s:VimStart(s:envHome . '/.vim/backup/', s:envHome . '/.vim/undo/') finish endif "endif endif function! s:CheckString() abort "{{{ let w:m1 = matchadd('KazuakiMCheckString', '\t\|\r\|\r\n\|\s\+$\| ') let w:m2 = matchadd('KazuakiMTodo', 'FIXME\|MEMO\|NOTE\|TODO\|XXX\|WARNING\|WARN') endfunction "}}} function! s:FileTypeSyntaxOn() abort "{{{ filetype plugin indent on syntax enable let s:syntaxToggle = 0 endfunction "}}} function! s:FileTypeSyntaxOff() abort "{{{ filetype off filetype plugin indent off syntax off let s:syntaxToggle = 1 endfunction "}}} function! s:BufEnter() abort "{{{ " Auto close VimDiff if winnr('$') is# 1 && (&l:diff || &filetype is# 'quickrun') quit " Duplicate ban elseif v:servername is# 'GVIM1' setlocal noswapfile viminfo= call remote_send('GVIM', ':tabnew '.expand('%:p').'') call remote_foreground('GVIM') quit elseif v:servername is# 'VIM1' setlocal noswapfile viminfo= call remote_send('VIM', ':tabnew '.expand('%:p').'') call remote_foreground('VIM') quit endif " Move current file(/directory) path execute 'lcd '. fnameescape(expand('%:p:h')) " Forcibly update set formatoptions-=c formatoptions-=b formatoptions+=j formatoptions-=t formatoptions-=v textwidth=0 " Set StatusLine if &fileencoding is# 'utf-8' highlight StatusLine cterm=NONE gui=NONE ctermfg=Black guifg=Black ctermbg=Grey guibg=Grey else highlight StatusLine cterm=NONE gui=NONE ctermfg=Black guifg=Black ctermbg=Yellow guibg=Yellow endif " Change Big file or Normal file. if 262144 <= getfsize(expand('%:p')) && s:syntaxToggle ==# 0 call s:FileTypeSyntaxOff() elseif s:syntaxToggle ==# 1 call s:FileTypeSyntaxOn() endif endfunction "}}} function! s:BufReadPost() abort "{{{ " memory cursol if line("'\"") > 1 && line("'\"") <= line('$') execute "normal! g`\"" endif " Zun wiki http://www.kawaz.jp/pukiwiki/?vim#cb691f26 {{{ if &fileencoding =~# 'iso-2022-jp' && search("[^\x01-\x7e]", 'n') == 0 let &fileencoding = &encoding endif "}}} "TODO: delte duplicate tab & window & buffer " http://kannokanno.hatenablog.com/entry/2013/05/31/205858 endfunction "}}} "function! s:CursorHold() abort "{{{ " if v:servername is# '' && $TMUX !=# '' " redraw! " endif "endfunction "}}} function! s:InsertLeave() abort "{{{ set nopaste if &l:diff diffupdate endif endfunction "}}} function! s:VimEnter() abort "{{{ " Forcibly update set ambiwidth=double showtabline=2 call s:CheckString() if &l:diff wincmd h endif if 0 < len(s:swapFilePath) call delete(s:swapFilePath) let s:swapFilePath = '' endif endfunction "}}} function! s:WinEnter() abort "{{{ checktime call s:CheckString() endfunction "}}} autocmd MyAutoCmd BufEnter * call s:BufEnter() autocmd MyAutoCmd BufReadPost * call s:BufReadPost() autocmd MyAutoCmd CmdwinEnter * nmap :quit autocmd MyAutoCmd CmdwinLeave * nunmap "autocmd MyAutoCmd CursorHold * call s:CursorHold() autocmd MyAutoCmd FocusGained * checktime autocmd MyAutoCmd SwapExists * let s:swapFilePath = v:swapname autocmd MyAutoCmd InsertLeave * call s:InsertLeave() autocmd MyAutoCmd QuickfixCmdPost *grep* cwindow autocmd MyAutoCmd QuickfixCmdPost * call kazuakim#QuickfixCmdPost() autocmd MyAutoCmd VimEnter * call s:VimEnter() autocmd MyAutoCmd WinEnter * call s:WinEnter() autocmd MyAutoCmd BufNewFile,BufRead $HOME/.config/composer/vendor/*.php setlocal tags=$HOME/.vim/tags/global.tags autocmd MyAutoCmd BufNewFile,BufRead $HOME/work/dotfiles/.config/composer/vendor/*.php setlocal tags=$HOME/.vim/tags/global.tags " http://d.hatena.ne.jp/thinca/20111204/1322932585 function! s:TabpageLabelUpdate(tabNumber) abort "{{{ let l:highlight = a:tabNumber is# tabpagenr() ? '%#TabLineSel#' : '%#TabLine#' let l:bufnrs = tabpagebuflist(a:tabNumber) let l:bufnr = len(l:bufnrs) if l:bufnr is# 1 let l:bufnr = '' endif let l:modified = len(filter(copy(l:bufnrs), 'getbufvar(v:val, "&modified")')) ? '[+]' : '' return '%' . a:tabNumber . 'T' . l:highlight . l:bufnr . ' ' . fnamemodify(bufname(l:bufnrs[tabpagewinnr(a:tabNumber) - 1]), ':t') . ' ' . l:modified . '%T%#TabLineFill#' endfunction "}}} function! KazuakiMTabLineUpdate() abort "{{{ return join(map(range(1, tabpagenr('$')), 's:TabpageLabelUpdate(v:val)'), '|') . '%#TabLineFill#%T' "if has('gui_running') && 60 < abs(localtime() - s:currentTime) " let s:currentTime = localtime() " let s:tablineRight = s:GetTablineRight() "endif "return join(map(range(1, tabpagenr('$')), 's:TabpageLabelUpdate(v:val)'), '|') . '%#TabLineFill#%T%=%#TabLineSel# ' . getcwd() . ' ' . s:tablineRight endfunction "}}} " Basic set autoindent autoread set backspace=indent,eol,start backup backupdir=$HOME/.vim/backup belloff=all breakindentopt=shift:0 set clipboard+=autoselect,unnamed cmdheight=2 concealcursor=i conceallevel=2 completeopt=longest,menu cursorlineopt=both set diffopt=filler,context:5,iblank,iwhite,iwhiteall,iwhiteeol,horizontal,algorithm:histogram directory=$HOME/.vim/swap display=lastline set expandtab set fillchars+=diff:* foldmethod=marker set grepformat=%f:%l:%m,%f:%l%m,%f\ \ %l%m guioptions+=M set helplang=ja hidden history=1000 hlsearch set ignorecase iminsert=0 imsearch=-1 incsearch set laststatus=2 nolazyredraw set matchpairs+=<:> matchtime=1 mouse= set nobomb noequalalways nofixendofline nogdefault noimcmdline noimdisable noruler notitle nowrap number set pumheight=8 set redrawtime=9000 set scrolloff=999 shellslash shiftwidth=4 shortmess+=a shortmess+=I showbreak=> showcmd showmatch signcolumn=yes smartcase smartindent smarttab softtabstop=4 swapfile switchbuf=usetab set statusline=\ %t%m%r%h%w%q\ %<%=%F\ \|\ %Y\ \|\ %{&fileformat}\ \|\ %{&fileencoding}\ \|\ %l/%L\ set synmaxcol=350 set tabline=%!KazuakiMTabLineUpdate() tabstop=4 titleold= ttyfast t_vb= set undodir=$HOME/.vim/undo undofile updatecount=30 updatetime=1000 set viminfo='10,/100,:100,@100,c,f1,h,<100,s100,n~/.vim/viminfo/.viminfo virtualedit+=block set wildmenu wildmode=longest:full,full wrapscan set grepprg=grep\ -rnIH\ --exclude-dir=.svn\ --exclude-dir=.git\ --exclude-dir=coverage\ --exclude='*.cache'\ --exclude='*.log'\ --exclude='*min.js'\ --exclude='*min.css' set wildignore+=*.bmp,*.gif,*.git,*.ico,*.jpeg,*.jpg,*.log,*.mp3,*.ogg,*.otf,*.png,*.qpf2,*.svn,*.ttf,*.wav,C,.DS_Store,.,.. let &runtimepath = &runtimepath . ',' . s:deinDir . '/repos/github.com/Shougo/dein.vim' "set foldopen-=search "helptags $HOME/.vim/dein.vim/repos/github.com/vim-jp/vimdoc-ja/doc " Color colorscheme kazuakim " Mapping " ESC inoremap jk inoremap kj " Visual xnoremap Y y`> " Fold nnoremap zx :foldopen " Line nnoremap Y y$ inoremap u inoremap u " Tab nnoremap gr gT nnoremap ge :callkazuakim#TabMove() " Window Size nnoremap + + nnoremap - - nnoremap > > nnoremap < < " Cursor nmap ga % noremap noremap noremap $ noremap ^ " Sudo Write nnoremap w :w!sudotee%>/dev/null " Paste nmap v ':setpaste+' cmap * " Replace nnoremap R gR " Search cnoremap / getcmdtype() == '/' ? '\/' : '/' cnoremap ? getcmdtype() == '?' ? '\?' : '?' nnoremap +* *N " Tags nnoremap ] nnoremap [ nmap : :callkazuakim#TagJumper() " Diff nnoremap df :diffsplit " Register nnoremap x "_x nnoremap X "_x " Wildmenu cnoremap cnoremap " Special word noremap! ¥ \ " BookMark noremap b :callKazuakimBookMark() " $VIMRUNTIME/syntax/sql.vim let g:sql_type_default = 'mysql' " $VIMRUNTIME/syntax/php.vim let g:php_baselib = 1 let g:php_htmlInStrings = 1 let g:php_noShortTags = 1 let g:php_sql_query = 1 " $VIMRUNTIME/syntax/vim.vim let g:vimsyn_embed = 1 " $VIMRUNTIME/ftplugin/sql.vim let g:ftplugin_sql_objects = 1 let g:ftplugin_sql_omni_key = 1 let g:ftplugin_sql_omni_key_left = 1 let g:ftplugin_sql_omni_key_right = 1 let g:ftplugin_sql_statements = 1 let g:omni_sql_no_default_maps = 1 " disable plugin let g:did_install_default_menus = 1 "$VIMRUNTIME/menu.vim let g:loaded_getscript = 1 "$VIMRUNTIME/autoload/getscript.vim let g:loaded_netrw = 1 "$VIMRUNTIME/autoload/netrw.vim let g:loaded_netrwFileHandlers = 1 "$VIMRUNTIME/autoload/netrwFileHandlers.vim let g:loaded_netrwSettings = 1 "$VIMRUNTIME/autoload/netrwSettings.vim let g:loaded_sql_completion = 1 "$VIMRUNTIME/autoload/sqlcomplete.vim let g:loaded_syntax_completion = 1 "$VIMRUNTIME/autoload/syntaxcomplete.vim let g:loaded_tar = 1 "$VIMRUNTIME/autoload/tar.vim let g:loaded_vimball = 1 "$VIMRUNTIME/autoload/vimball.vim let g:loaded_zip = 1 "$VIMRUNTIME/autoload/zip.vim let g:loaded_getscriptPlugin = 1 "$VIMRUNTIME/plugin/getscriptPlugin.vim let g:loaded_gzip = 1 "$VIMRUNTIME/plugin/gzip.vim let g:loaded_logiPat = 1 "$VIMRUNTIME/plugin/logiPat.vim let g:loaded_matchparen = 1 "$VIMRUNTIME/plugin/matchparen.vim let g:loaded_netrwPlugin = 1 "$VIMRUNTIME/plugin/netrwPlugin.vim let g:loaded_rrhelper = 1 "$VIMRUNTIME/plugin/rrhelper.vim let g:loaded_spellfile_plugin = 1 "$VIMRUNTIME/plugin/spellfile.vim let g:loaded_tarPlugin = 1 "$VIMRUNTIME/plugin/tarPlugin.vim let g:loaded_2html_plugin = 1 "$VIMRUNTIME/plugin/tohtml.vim let g:loaded_vimballPlugin = 1 "$VIMRUNTIME/plugin/vimballPlugin.vim let g:loaded_zipPlugin = 1 "$VIMRUNTIME/plugin/zipPlugin.vim " Vim nnoremap [vim] nmap f [vim] nnoremap [vim]e :tabnew$MYVIMRC nnoremap [vim]w :source$MYVIMRC nnoremap [vim]s :tabnew$HOME/.vim/vim-sqlfix/sqlfix.sql nnoremap [vim]h :source$VIMRUNTIME/syntax/colortest.vim nnoremap [vim]c :IndentLinesToggle nnoremap [vim]p :echosubstitute(&runtimepath,',','\n','g') "}}} " VimDiff {{{ if &l:diff set cursorline set clipboard+=autoselect,unnamed cursorline set statusline=\ %t%m%r%h%w%q%=%l/%L\ \|\ %{&fileformat}\ \|\ %{&fileencoding}\ nnoremap [c nnoremap ]c nnoremap do nnoremap dp finish else set nocursorline autocmd MyAutoCmd InsertLeave * syntax clear neosnippetConcealExpandSnippets endif "}}} " dein.vim {{{ let g:dein#install_process_timeout = 600 let g:python3_host_prog = '/usr/local/opt/python@3.12/bin/python3.12' if dein#load_state(s:deinDir) call dein#begin(s:deinDir) call dein#load_dict({ \ 'fuenor/qfixgrep': {}, \ 'gcmt/wildfire.vim': {}, \ 'glidenote/memolist.vim': {}, \ 'hashivim/vim-terraform': {'on_ft': 'terraform'}, \ 'junegunn/vim-easy-align': {}, \ 'KazuakiM/neosnippet-snippets': {}, \ 'KazuakiM/vim-sqlfix': {}, \ 'koron/codic-vim': {}, \ 'LeafCage/yankround.vim': {}, \ 'mattn/vim-lsp-settings': {}, \ 'pearofducks/ansible-vim': {}, \ 'prabirshrestha/async.vim': {}, \ 'prabirshrestha/asyncomplete.vim': {}, \ 'prabirshrestha/asyncomplete-file.vim': {}, \ 'prabirshrestha/asyncomplete-lsp.vim': {}, \ 'prabirshrestha/asyncomplete-neosnippet.vim': {}, \ 'prabirshrestha/vim-lsp': {}, \ 'previm/previm': {'on_ft': 'markdown'}, \ 'rhysd/clever-f.vim': {}, \ 'roxma/nvim-yarp': {}, \ 'roxma/vim-hug-neovim-rpc': {}, \ 'sheerun/vim-polyglot': {'on_ft': 'typescript'}, \ 'Shougo/dein.vim': {}, \ 'Shougo/denite.nvim': {}, \ 'Shougo/neosnippet.vim': {}, \ 'Shougo/vimproc.vim': {'build': 'make'}, \ 'sjl/gundo.vim': {'on_i': 1}, \ 't9md/vim-quickhl': {}, \ 'thinca/vim-quickrun': {}, \ 'thinca/vim-qfreplace': {}, \ 'tpope/vim-surround': {}, \ 'tyru/open-browser.vim': {}, \ 'vim-scripts/matchit.zip': {}, \ 'Yggdroot/indentLine': {}, \ 'hail2u/vim-css3-syntax': {'lazy':1}, \ 'mattn/emmet-vim': {'lazy':1}, \ 'pangloss/vim-javascript': {'lazy':1}, \ 'thinca/vim-themis': {'lazy':1}, \ 'vim-jp/vimdoc-ja': {'lazy':1}, \ 'vim-jp/vital.vim': {'lazy':1}, \ 'fatih/vim-go': {'on_ft': 'go'}, \}) call dein#end() call dein#save_state() endif filetype plugin indent on syntax enable " qfixgrep {{{ let g:disable_MyGrep = 1 let g:QFix_PreviewHeight = 20 let g:QFixWin_EnableMode = 1 nnoremap grek ':grep! '. expand('') .' '. kazuakim#Path2ProjectDirectory('%') .'' nnoremap grel ':grep! '. kazuakim#Path2ProjectDirectory('%') .'' nnoremap greh ':grep! '. expand('') .' '. expand('%:p') "MEMO:tabnew gf "}}} "" wildfire.vim {{{ "let g:wildfire_fuel_map = '' "let g:wildfire_objects = ["i'", 'i"', 'i`', 'i,', 'i)', 'i}', 'i]', 'i>', 'ip', 'it'] "let g:wildfire_water_map = '' ""}}} " vim-ms-translator {{{ "nnoremap jj :Mstranslator "nnoremap jk :Mstranslator "let g:mstranslator#Config = { "\ 'timers': 1 "\} "}}} " yankround.vim {{{ nmap p (yankround-p) nmap (yankround-prev) nmap (yankround-next) let g:yankround_dir = s:envHome . '/.vim/yankround.vim' let g:yankround_region_hl_groupname = 'YankRoundRegion' let g:yankround_use_region_hl = 1 "}}} " ansible-vim {{{ augroup ansible_vim_fthosts autocmd! autocmd BufNewFile,BufRead hosts setfiletype yaml.ansible augroup END "}}} " indentLine {{{ let g:indentLine_faster = 1 "}}} " codic-vim {{{ nnoremap dic ':Codic ' . expand('') "}}} " dein.vim " memolist.vim {{{ nnoremap [unite] nmap u [unite] " Define mappings nnoremap [unite]f :callKazuakiMDeniteFileRecGit() function! s:DeniteMySettings() abort "{{{ nnoremap denite#do_map('do_action') nnoremap d denite#do_map('do_action', 'delete') nnoremap p denite#do_map('do_action', 'preview') nnoremap denite#do_map('quit') nnoremap i denite#do_map('open_filter_buffer') nnoremap denite#do_map('toggle_select').'j' endfunction "}}} function! KazuakiMDeniteFileRecGit() abort "{{{ if finddir('.git', ';') != '' execute 'Denite file/rec:' . kazuakim#Path2ProjectDirectory('%') . ' -default-action=tabopen' else Denite file/rec -default-action=tabopen endif endfunction "}}} " memolist nnoremap [memolist] nmap m [memolist] nnoremap [memolist]n :MemoNew nnoremap [memolist]l :MemoList let g:memolist_filename_prefix_none = 1 let g:memolist_template_dir_path = s:envHome .'/.vim/memolist.vim' let g:memolist_denite = 1 let g:memolist_denite_option = '-default-action=tabopen' let g:memolist_denite_source = 'file/rec' "}}} " vim-quickrun {{{ nnoremap [quickrun] nmap t [quickrun] nnoremap [quickrun]t :QuickRun nnoremap [quickrun]f :QuickRunphpfixer nnoremap [quickrun]i :QuickRunphpinfo nnoremap [quickrun]r :QuickRunphpunit let g:quickrun_config = { \ '_': { \ 'hook/close_buffer/enable_empty_data': 0, \ 'hook/close_buffer/enable_failure': 0, \ 'outputter': 'multi:buffer:quickfix', \ 'outputter/buffer/close_on_empty': 1, \ 'outputter/buffer/split': ':botright', \ 'runner': 'job' \ }, \ 'go': { \ 'command': 'go', \ 'cmdopt': 'run', \ 'exec': '%c %o %s:p', \ 'outputter': 'buffer', \ 'outputter/buffer/bufname': '/tmp/quickrun', \ 'outputter/buffer/into': 1, \ }, \ 'json': { \ 'command': 'python3', \ 'cmdopt': '-m json.tool', \ 'exec': '%c %o %s:p', \ 'outputter': 'buffer', \ 'outputter/buffer/bufname': '/tmp/quickrun', \ 'outputter/buffer/into': 1, \ }, \ 'php': { \ 'command': 'php', \ 'exec': '%c %s', \ 'hook/close_buffer/enable_empty_data': 0, \ 'hook/close_buffer/enable_failure': 0, \ 'outputter': 'buffer', \ 'outputter/buffer/close_on_empty': 0, \ 'outputter/buffer/into': 0, \ 'outputter/buffer/split': ':botright 7sp' \ }, \ 'phpfixer': { \ 'command': 'php-cs-fixer', \ 'cmdopt': 'fix', \ 'exec': '%c %o %s:p', \ 'outputter': 'buffer', \ 'outputter/buffer/into': 1, \ 'outputter/buffer/split': ':botright 7sp', \ 'runner': 'system' \ }, \ 'phpinfo': { \ 'command': 'php', \ 'cmdopt': '-info', \ 'exec': '%c %o', \ 'outputter': 'buffer' \ }, \ 'phpunit': { \ 'command': 'php', \ 'cmdopt': kazuakim#Path2ProjectDirectory('%') . '/vendor/bin/phpunit --configuration ' . kazuakim#Path2ProjectDirectory('%') . '/phpunit.xml.dist', \ 'exec': '%c %o %s', \ 'outputter': 'buffer' \ }, \ 'plantuml': { \ 'command': 'plantuml', \ 'exec': '%c %s:p', \ 'outputter': 'error', \ 'outputter/error/error': 'quickfix' \ }, \ 'sql': { \ 'type': 'sql/mysql' \ }, \ 'sql/mysql': { \ 'exec': "%c %o < %s | sed -e 's/\t/|/g'", \ 'outputter': 'buffer', \ 'outputter/buffer/into': 1 \ }, \ 'xml': { \ 'command': 'xmllint', \ 'cmdopt': '--noblanks --nowrap --encode UTF-8 --format', \ 'exec': '%c %o %s:p', \ 'outputter': 'buffer', \ 'outputter/buffer/into': 1 \ } \} "}}} " vital.vim {{{ let g:vitalizer#vital_dir = s:envHome . '/.vim/dein.vim/repos/github.com/vim-jp/vital.vim' "}}} " vim-qfreplace {{{ nnoremap qr :Qfreplace "}}} " vim-easy-align {{{ vnoremap a :EasyAlign let g:easy_align_delimiters = { \ '=': {'pattern': '===\|!==\|<=>\|\(&&\|||\|<<\|>>\)=\|=\~[#?]\?\|=>\|[:+/*!%^=><&|.-]\?=[#?]\?', 'left_margin': 1, 'right_margin': 1, 'stick_to_left': 0}, \ '>': {'pattern': '>>\|=>\|>'}, \ '?': {'pattern': '?', 'ignore_groups': ['String'], 'left_margin': 1, 'right_margin': 1}, \ '/': {'pattern': '//\+\|/\*\|\*/', 'ignore_groups': ['String']}, \ '#': {'pattern': '#\+', 'ignore_groups': ['String'], 'delimiter_align': 'l'}, \ '$': {'pattern': '\((.*\)\@!$\(.*)\)\@!', 'ignore_groups': ['String'], 'right_margin': 0, 'delimiter_align': 'l'}, \ ']': {'pattern': '[[\]]', 'ignore_groups': ['String'], 'left_margin': 0, 'right_margin': 0, 'stick_to_left': 0}, \ ')': {'pattern': '[()]', 'ignore_groups': ['String'], 'left_margin': 0, 'right_margin': 0, 'stick_to_left': 0}, \ 'd': {'pattern': '\(\S\+\s*[;=]\)\@=', 'ignore_groups': ['String'], 'left_margin': 0, 'right_margin': 0}} "}}} " vim-quickhl {{{ nmap m (quickhl-manual-this) nmap M (quickhl-manual-reset) let g:quickhl_manual_colors = [ \ 'cterm=NONE gui=NONE ctermfg=Black guifg=Black ctermbg=Green guibg=Green', \ 'cterm=NONE gui=NONE ctermfg=Black guifg=Black ctermbg=Cyan guibg=Cyan', \ 'cterm=NONE gui=NONE ctermfg=White guifg=White ctermbg=Brown guibg=Brown', \ 'cterm=NONE gui=NONE ctermfg=Black guifg=Black ctermbg=Grey guibg=Grey', \ 'cterm=NONE gui=NONE ctermfg=Grey guifg=Grey ctermbg=Blue guibg=Blue', \ 'cterm=NONE gui=NONE ctermfg=White guifg=White ctermbg=DarkGreen guibg=DarkGreen', \ 'cterm=NONE gui=NONE ctermfg=White guifg=White ctermbg=DarkMagenta guibg=DarkMagenta', \ 'cterm=NONE gui=NONE ctermfg=White guifg=White ctermbg=DarkRed guibg=DarkRed', \ 'cterm=NONE gui=NONE ctermfg=White guifg=White ctermbg=DarkCyan guibg=DarkCyan', \ 'cterm=NONE gui=NONE ctermfg=Black guifg=Black ctermbg=DarkGray guibg=DarkGray', \ 'cterm=NONE gui=NONE ctermfg=White guifg=White ctermbg=DarkBlue guibg=DarkBlue', \ 'cterm=NONE gui=NONE ctermfg=Black guifg=Black ctermbg=Yellow guibg=Yellow', \ 'cterm=NONE gui=NONE ctermfg=Black guifg=Black ctermbg=LightGreen guibg=LightGreen', \ 'cterm=NONE gui=NONE ctermfg=Black guifg=Black ctermbg=LightMagenta guibg=LightMagenta', \ 'cterm=NONE gui=NONE ctermfg=Black guifg=Black ctermbg=LightRed guibg=LightRed', \ 'cterm=NONE gui=NONE ctermfg=Black guifg=Black ctermbg=LightYellow guibg=LightYellow', \ 'cterm=NONE gui=NONE ctermfg=Black guifg=Black ctermbg=LightCyan guibg=LightCyan', \ 'cterm=NONE gui=NONE ctermfg=Black guifg=Black ctermbg=LightGray guibg=LightGray', \ 'cterm=NONE gui=NONE ctermfg=Black guifg=Black ctermbg=LightBlue guibg=LightBlue' \] "}}} " vim-sqlfix {{{ let g:sqlfix#Config = {'direcotry_path': s:envHome . '/.vim/vim-sqlfix'} "}}} " previm {{{ nnoremap pre :PrevimOpen "}}} " open-browser.vim {{{ nmap gx (openbrowser-open) "}}} " clever-f.vim {{{ nmap f (clever-f-f) let g:clever_f_across_no_line = 0 let g:clever_f_smart_case = 1 let g:clever_f_use_migemo = 0 "}}} " vim-over {{{ vnoremap "ay vnoremap "by nnoremap s ':%s/' . expand('') . '/' . expand('') . '/gc' nnoremap s ':%s/' . expand('') . '//gc' nnoremap s :%s/a/b/gc nnoremap r ':' . line('.') . 's/a/b/gc' "}}} " vim-surround {{{ nmap cs Csurround "}}} inoremap pumvisible() ? "\" : "\" inoremap pumvisible() ? "\" : "\" snoremap neosnippet#expandable_or_jumpable() ? neosnippet#mappings#expand_or_jump_impl() : "\" inoremap neosnippet#expandable_or_jumpable() ? neosnippet#mappings#expand_or_jump_impl() : "\" " asyncomplete-neosnippet.vim " neosnippet-snippets " neosnippet.vim " asyncomplete-file.vim {{{ let g:lsp_diagnostics_highlights_enabled = 0 let g:lsp_diagnostics_virtual_text_enabled = 0 nmap N (lsp-previous-error) nmap n (lsp-next-error) nmap b :callkazuakim#LspDocumentDiagnostics() nmap K (lsp-hover) nmap J :LspNextDiagnostic augroup MyAsyncomplete autocmd! autocmd User asyncomplete_setup call asyncomplete#register_source(asyncomplete#sources#neosnippet#get_source_options({ \ 'name': 'neosnippet', \ 'completor': function('asyncomplete#sources#neosnippet#completor'), \ 'whitelist': ['*'], \ })) autocmd User asyncomplete_setup call asyncomplete#register_source(asyncomplete#sources#file#get_source_options({ \ 'name': 'file', \ 'completor': function('asyncomplete#sources#file#completor'), \ 'priority': 10, \ 'whitelist': ['*'], \ })) augroup END "}}} "deoplete.nvim "nvim-yarp "vim-hug-neovim-rpc "vim-go let g:go_fmt_command = 'goimports' let g:go_def_mode = 'gopls' let g:go_info_mode = 'gopls' let g:go_highlight_functions = 1 let g:go_highlight_methods = 1 let g:go_highlight_structs = 1 let g:go_highlight_operators = 1 let g:go_highlight_build_constraints = 1 " gundo.vim {{{ nnoremap cu :callkazuakim#ClearUndo() nnoremap u g- nnoremap U g- nnoremap g+ "}}} " emmet-vim {{{ " " MEMO " * URL: http://docs.emmet.io/cheat-sheet/ " * , :execute trigger key " * html:5 && , " * div>ul>li.class#id_$$*5 && , "let g:user_emmet_complete_tag = 1 "let g:user_emmet_settings = { "\ 'variables': { "\ 'lang': 'ja', "\ 'default_attributes': { "\ 'a': { "\ 'href': '' "\ }, "\ 'link': [ "\ { "\ 'rel': 'stylesheet' "\ }, "\ { "\ 'href': '' "\ } "\ ] "\ } "\ }, "\ 'html': { "\ 'filters': 'html', "\ 'indentation': ' ' "\ }, "\ 'php' : { "\ 'extends': 'html', "\ 'filters': 'html,c' "\ } "\} "let g:user_emmet_mode = 'a' "let g:user_emmet_leader_key = '' "}}} " vim-markdown {{{ let g:vim_markdown_folding_disabled = 1 let g:vim_markdown_conceal = 0 "}}} " Exclusive {{{ "if s:osType !=# 'macunix' "endif " "if s:osType !=# 'win' " memolist.vim {{{ let g:memolist_path = s:envHome .'/.vim/memolist.vim' "}}} " neoinclude.vim {{{ let g:neoinclude#delimiters = '\' "}}} "endif " "if s:osType !=# 'unix' "endif "}}} " Only {{{ "if s:osType ==# 'macunix' " mapping {{{ nnoremap ao :!open-a nnoremap aq :!osascript-e'tellapplication""toquit' nnoremap af :!osascript-e'tellapplication""toactivate' "}}} " previm {{{ let g:previm_open_cmd = 'open -a "Google Chrome"' "}}} "elseif s:osType ==# 'win' " " previm {{{ " let g:previm_open_cmd = 'C:/Program\ Files\ (x86)/Google/Chrome/Application/chrome.exe' " "}}} " " memolist.vim {{{ " let g:memolist_path = '/cygwin64/home/' . $USER . '/.vim/memolist.vim' " "}}} " " neoinclude.vim {{{ " let g:neoinclude#delimiters = '/' " "}}} " "elseif s:osType ==# 'unix' "endif "}}} "}}} " FileType {{{ function! s:GetMatchWords() abort "{{{ let l:block_list = [] for l:block in s:match_words_php_list let l:blockMatch = '\<' . join(l:block, '\>:\<') .'\>' call add(l:block_list, l:blockMatch) endfor for l:block in s:match_words_html_list let l:blockMatch = join(l:block, ':') call add(l:block_list, l:blockMatch) endfor return join(l:block_list, ',') endfunction "}}} let s:match_words_php_list = [['do', 'while', 'endwhile'], ['for', 'endfor'], ['foreach', 'endforeach'], ['if', 'elseif', 'else', 'endif'], ['switch', 'case', 'default', 'endswitch']] let s:match_words_html_list = [[''], [''], [''], [''], [''], [''], [''], [''], \ [''], [''], [''], [''], ['']] let s:match_words = s:GetMatchWords() autocmd MyAutoCmd BufNewFile,BufRead *.go let g:deoplete#enable_at_startup = 1 autocmd MyAutoCmd BufNewFile,BufRead *.coffee setlocal filetype=coffee autocmd MyAutoCmd BufNewFile,BufRead *.tpl setlocal filetype=php autocmd MyAutoCmd BufNewFile,BufRead *.plantuml setlocal filetype=plantuml autocmd MyAutoCmd BufNewFile,BufRead *.snip* setlocal filetype=snippets autocmd MyAutoCmd BufNewFile,BufRead *.tex setlocal filetype=tex autocmd MyAutoCmd BufNewFile,BufRead *.vim* setlocal filetype=vim autocmd MyAutoCmd BufNewFile,BufRead *.{bin,exe} setlocal filetype=xxd autocmd MyAutoCmd BufNewFile,BufRead * setlocal cmdheight=2 autocmd MyAutoCmd FileType denite call s:DeniteMySettings() autocmd MyAutoCmd FileType go setlocal omnifunc=lsp#complete autocmd MyAutoCmd FileType html,js,php,xml syntax sync minlines=4000 autocmd MyAutoCmd FileType php let b:match_words = s:match_words "}}} " Function {{{ nnoremap :echo"\tFunction Key Help\nF1:Help(here!)\nF2:StatusLine\nF3:DataBase" nnoremap :callkazuakim#DatabaseSwitch() "}}} " Other setting files {{{ " Environment setting file source ~/.vim/vimrc.local if isdirectory(expand('%:p')) ==# 1 call KazuakimBookMark() endif "}}}