昨日typescriptをペアプロで教えてもらっているときにIDEだとここに型の説明でるからわかり易いということを言われた為ぼくは明日からIDEに移り、、、ません。(理由は察し、、早くて楽チンだから)
補完だけじゃなく、lsp対応してさらに説明も表示させちゃいましょう。
node.js
rm-rf ~/.yarn/
curl -sL install-node.now.sh/lts | sh
curl --compressed-o--L https://yarnpkg.com/install.sh | zsh
~/.config/nvim/dein.toml
[[plugins]]repo='neoclide/coc.nvim'build='coc#util#install()'hook_add='source~/.config/nvim/coc-setting.vim'
~/.config/nvim/coc-setting.vim
" coc.nvim" if hidden is not set, TextEdit might fail.set hidden
" Some servers have issues with backup files, see #649set nobackup
set nowritebackup
" Better display for messagesset cmdheight=2" Smaller updatetime for CursorHold & CursorHoldIset updatetime=300" don't give |ins-completion-menu| messages.set shortmess+=c" always show signcolumnsset signcolumn=yes
" Use tab for trigger completion with characters ahead and navigate." Use command ':verbose imap <tab>' to make sure tab is not mapped by other plugin.
inoremap <silent><expr><TAB> \ pumvisible() ? "\<C-n>": \<SID>check_back_space() ? "\<TAB>": \ coc#refresh()
inoremap <expr><S-TAB> pumvisible() ? "\<C-p>":"\<C-h>"function!s:check_back_space() abort
letcol=col('.')-1return!col|| getline('.')[col-1]=~# '\s'endfunction" Use <c-space> to trigger completion.
inoremap <silent><expr><c-space> coc#refresh()" Use <cr> to confirm completion, `<C-g>u` means break undo chain at current position." Coc only does snippet and additional edit on confirm.
inoremap <expr><cr> pumvisible() ? "\<C-y>":"\<C-g>u\<CR>"" Use `[c` and `]c` to navigate diagnostics
nmap <silent>[c<Plug>(coc-diagnostic-prev)
nmap <silent>]c<Plug>(coc-diagnostic-next)" Remap keys for gotos
nmap <silent> gd <Plug>(coc-definition)
nmap <silent> gy <Plug>(coc-type-definition)
nmap <silent> gi <Plug>(coc-implementation)
nmap <silent>gr<Plug>(coc-references)" Use K to show documentation in preview window
nnoremap <silent> K :call<SID>show_documentation()<CR>function!s:show_documentation()if(index(['vim','help'],&filetype)>=0)
execute 'h '.expand('<cword>')elsecall CocAction('doHover')endifendfunction" Highlight symbol under cursor on CursorHold
autocmd CursorHold * silentcall CocActionAsync('highlight')" Remap for rename current word
nmap <leader>rn <Plug>(coc-rename)" Remap for format selected region
xmap <leader>f<Plug>(coc-format-selected)
nmap <leader>f<Plug>(coc-format-selected)
augroup mygroup
autocmd!" Setup formatexpr specified filetype(s).
autocmd FileType typescript,json setl formatexpr=CocAction('formatSelected')" Update signature help on jump placeholder
autocmd User CocJumpPlaceholder call CocActionAsync('showSignatureHelp')
augroup end" Remap for do codeAction of selected region, ex: `<leader>aap` for current paragraph
xmap <leader>a<Plug>(coc-codeaction-selected)
nmap <leader>a<Plug>(coc-codeaction-selected)" Remap for do codeAction of current line
nmap <leader>ac <Plug>(coc-codeaction)" Fix autofix problem of current line
nmap <leader>qf <Plug>(coc-fix-current)" Use `:Format` to format current buffer
command!-nargs=0 Format :call CocAction('format')" Use `:Fold` to fold current buffer
command!-nargs=? Fold :call CocAction('fold',<f-args>)" Add diagnostic info for https://github.com/itchyny/lightline.vimletg:lightline={ \'colorscheme':'wombat', \'active':{ \'left':[['mode','paste'], \['cocstatus','readonly','filename','modified']] \}, \'component_function':{ \'cocstatus':'coc#status' \}, \}" Using CocList" Show all diagnostics
nnoremap <silent><space>a:<C-u>CocList diagnostics<cr>" Manage extensions
nnoremap <silent><space>e:<C-u>CocList extensions<cr>" Show commands
nnoremap <silent><space>c:<C-u>CocList commands<cr>" Find symbol of current document
nnoremap <silent><space>o:<C-u>CocList outline<cr>" Search workspace symbols
nnoremap <silent><space>s :<C-u>CocList -I symbols<cr>" Do default action for next item.
nnoremap <silent><space>j:<C-u>CocNext<CR>" Do default action for previous item.
nnoremap <silent><space>k:<C-u>CocPrev<CR>" Resume latest coc list
nnoremap <silent><space>p:<C-u>CocListResume<CR>
:checkhealth
health#coc#check
========================================================================
- OK: Environment check passed
- OK: Javascript bundle found
- OK: Service started
~/.config/nvim/coc-settings.json
:CocConfig
{//設定}
:CocInstall coc-<インストールしたいもの>
現在インストールされているプラグインリスト
:CocList extensions
neovim0.4.0 floating window
brew unlink neovim
brew install neovim --HEAD
~/.config/nvim/init.vim
" denite
nmap ; :Denite buffer -split=floating -winrow=1<CR>
nmap <leader>t:Denite file/rec-split=floating -winrow=1<CR>
nnoremap <leader>g:<C-u>Denite grep:.-no-empty -mode=normal<CR>
nnoremap <leader>j:<C-u>DeniteCursorWord grep:.-mode=normal<CR>