Coc.nvim: :CocInstall์— ๋Œ€ํ•œ ์ƒ๊ฐ๊ณผ ์งˆ๋ฌธ

์— ๋งŒ๋“  2019๋…„ 04์›” 01์ผ  ยท  4์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: neoclide/coc.nvim

์šฐ์„  ์ด๊ฒƒ์€ ๋งค์šฐ ๋ฉ‹์ง„ ํ”„๋กœ์ ํŠธ์ด๋ฉฐ ํ˜„์žฌ coc.nvim์„ ์‚ฌ์šฉํ•˜๋„๋ก vim์„ ์žฌ๊ตฌ์„ฑํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋‚ด vim ๋‚ด์—์„œ ๋‘ ๊ฐœ์˜ ๋‹ค๋ฅธ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์ด ์•ฝ๊ฐ„ ์–ด์ƒ‰ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” vim-plug๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ ์ด์ œ๋Š” CocInstall๋„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๊ณ  ๋•Œ๋กœ๋Š” ๊ฒน์น˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ๋ถ„๊ธฐ๋œ vscode ์• ๋“œ์˜จ์—๋งŒ CocInstall์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์ง€๋งŒ ๋น„๋™๊ธฐ ์™„๋ฃŒ์™€ ์•„๋ฌด ๊ด€๋ จ์ด ์—†๋Š” ๋ณด๋‹ค ์ผ๋ฐ˜์ ์ธ ๋ชฉ์ ์˜ ํ”Œ๋Ÿฌ๊ทธ์ธ์ธ coc-pairs(์˜ˆ๋ฅผ ๋“ค์–ด)๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ vim ๋‚ด์—์„œ ๋™์‹œ์— ๋‘ ๊ฐœ์˜ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. vim-plug๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ coc.nvim ํ™•์žฅ์„ ์„ ์–ธํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์—†๋‚˜์š”?

๊ทธ๋Ÿฌ๋ฉด CocInstall์„ ์™„์ „ํžˆ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์ด ๋‘ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๊ฐ€ ํ•จ๊ป˜ ํ”Œ๋ ˆ์ดํ•˜๋Š” ๋ฐฉ์‹๊ณผ ์ƒํƒœ๊ณ„๊ฐ€ ์–ด๋–ป๊ฒŒ ๋ฐœ์ „ํ• ์ง€์— ๋Œ€ํ•ด ์ •๋ง ์•ฝ๊ฐ„ ํ˜ผ๋ž€์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‹จ์ง€ ํ•˜๋‚˜์˜ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๊ฐ€ ์žˆ๋Š” ๊ฒƒ์„ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค(๊ทธ๋ฆฌ๊ณ  vim-plug๋Š” ๊ฝค ์ข‹์Šต๋‹ˆ๋‹ค).

์–ด์จŒ๋“  ์ด๊ฒƒ๋“ค์€ ์ œ ์ƒ๊ฐ์ผ ๋ฟ์ž…๋‹ˆ๋‹ค. ๋ฉ‹์ง„ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ณ„์†ํ•˜์‹ญ์‹œ์˜ค!

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

&rtp ์—์„œ coc.nvim ๋กœ๋“œ ํ™•์žฅ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ vim-plug์™€ ๊ฐ™์€ ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ง๊ฐ€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ coc ํ™•์žฅ์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ตฌํ˜„ํ•˜๊ธฐ ์‰ฌ์›Œ์•ผ ํ•˜์ง€๋งŒ ๋‚ด๊ฐ€ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด coc.nvim์ด ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋Š” ๋ช‡ ๊ฐ€์ง€ ๋ฉ‹์ง„ ๊ธฐ๋Šฅ์„ ๋†“์น˜๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ž๋™ ์™„์„ฑ ๋ฐ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ์™€ ๊ฐ™์€ ๊ธฐ๋Šฅ์— ๊ด€์‹ฌ์ด ์—†๋‹ค๋ฉด ๊ตฌ์„ฑ์— coc-settings.json g:coc_user_config ๋Œ€์‹ 

"์ผ๋ฐ˜" vim ํ”Œ๋Ÿฌ๊ทธ์ธ๊ณผ CoC vim ํ”Œ๋Ÿฌ๊ทธ์ธ ์‚ฌ์ด์— ์ผ๋ถ€ ์ค‘๋ณต๋˜๋Š” ๋ถ€๋ถ„์ด ์žˆ๋Š”๋ฐ ์ด๋Š” ์ €์—๊ฒŒ ์ž˜๋ชป๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์Šค์Šค๋กœ ๊ฒฐ์ •ํ•˜์‹ญ์‹œ์˜ค. ๋‚˜๋Š” ๊ทธ๋“ค์ด ์กด์žฌํ•˜๋Š” ์ด์œ ๋ฅผ ์„ค๋ช…ํ–ˆ์Šต๋‹ˆ๋‹ค.
IMO๋Š” coc ํ™•์žฅ์ด ์ œ๊ณตํ•˜๋Š” ์ด์ ๊ณผ ๋น„๊ตํ•˜์—ฌ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ๋ฌด์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  4 ๋Œ“๊ธ€

vim ํ”Œ๋Ÿฌ๊ทธ์ธ๊ณผ ๋‹ฌ๋ฆฌ coc ํ™•์žฅ์€ coc.nvim์—์„œ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋Š” ๋…ธ๋“œ ๋ชจ๋“ˆ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด ์™œ coc ํ™•์žฅ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๊นŒ?

๋‹ค์Œ์€ ๋ช‡ ๊ฐ€์ง€ ์ด์œ ์ž…๋‹ˆ๋‹ค.

  • coc ํ™•์žฅ์„ ์„ค์น˜ํ•˜๋ ค๋ฉด :CocInstall ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์™„๋ฃŒ๋˜๋ฉด ๋กœ๋“œ๋˜๊ณ  ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
  • coc-json์˜ ์™„๋ฃŒ ๋ฐ ์ง„๋‹จ ์ง€์›์œผ๋กœ coc-settings.json์—์„œ coc ํ™•์žฅ์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • toggle reload ๋ฐ uninstall ์™€ ๊ฐ™์€ ์ž‘์—…์œผ๋กœ :CocList extensions ์—์„œ ๋” ์‰ฝ๊ฒŒ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ธฐ๋ณธ์ ์œผ๋กœ coc.nvim ์„œ๋น„์Šค๋ฅผ ์ฒ˜์Œ ์‹œ์ž‘ํ•  ๋•Œ ๋งค์ผ ์ž๋™์œผ๋กœ ์—…๋ฐ์ดํŠธ๋ฉ๋‹ˆ๋‹ค.

coc.nvim์ด ์ž‘๋™ํ•˜๋Š” ๋ฐ coc ํ™•์žฅ์ž๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์œผ๋ฉฐ ๋‹ค๋ฅธ vim ํ”Œ๋Ÿฌ๊ทธ์ธ๊ณผ ํ•จ๊ป˜ ์ž‘๋™ํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์œผ๋ฏ€๋กœ ์–ด๋–ค ์ด์œ ๋กœ๋“  coc ํ™•์žฅ์ž๊ฐ€ ๋งˆ์Œ์— ๋“ค์ง€ ์•Š์„ ๋•Œ coc ํ™•์žฅ์ž๋ฅผ ๋ฌด์‹œํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

vimrc์—์„œ g:coc_global_extensions ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์„ ์ฐพ์„ ์ˆ˜ ์—†์„ ๋•Œ coc.nvim ์„ค์น˜ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋‹น์‹ ์˜ ์ถ”๋ก ์„ ๋ณด์•˜๊ณ  ์—ฌ๊ธฐ ๋‚ด ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ด€๋ฆฌ์ž๊ฐ€ ํ•˜๋‚˜๋งŒ ์žˆ์œผ๋ฉด ์ •์‹ ์  ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์ค„์–ด๋“ญ๋‹ˆ๋‹ค.
  • vimrc๋งŒ ์žˆ์œผ๋ฉด( coc-settings.json ๊ฐ€ ์ถ”๊ฐ€๋กœ ์žˆ๋Š” ๊ฒƒ๊ณผ ๋Œ€์กฐ์ ์œผ๋กœ ์ •์‹ ์  ์˜ค๋ฒ„ํ—ค๋“œ๋„ ์ ์Šต๋‹ˆ๋‹ค.
  • "์ •์ƒ์ ์ธ" vim ํ”Œ๋Ÿฌ๊ทธ์ธ๊ณผ CoC vim ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ฐ„์—๋Š” _์ž˜๋ชป๋œ_๋Š๋‚Œ_์žˆ๋Š” ๋ถ€๋ถ„์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, coc-pairs ๋Š” "์ผ๋ฐ˜" vim ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ํ•  ์ˆ˜ ์—†๋Š” ์ผ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค(์ •์งํ•œ ์งˆ๋ฌธ์— ๋‹ต๋ณ€์„ ์›ํ•ฉ๋‹ˆ๋‹ค).

&rtp ์—์„œ coc.nvim ๋กœ๋“œ ํ™•์žฅ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ vim-plug์™€ ๊ฐ™์€ ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ง๊ฐ€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ coc ํ™•์žฅ์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ตฌํ˜„ํ•˜๊ธฐ ์‰ฌ์›Œ์•ผ ํ•˜์ง€๋งŒ ๋‚ด๊ฐ€ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด coc.nvim์ด ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋Š” ๋ช‡ ๊ฐ€์ง€ ๋ฉ‹์ง„ ๊ธฐ๋Šฅ์„ ๋†“์น˜๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ž๋™ ์™„์„ฑ ๋ฐ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ์™€ ๊ฐ™์€ ๊ธฐ๋Šฅ์— ๊ด€์‹ฌ์ด ์—†๋‹ค๋ฉด ๊ตฌ์„ฑ์— coc-settings.json g:coc_user_config ๋Œ€์‹ 

"์ผ๋ฐ˜" vim ํ”Œ๋Ÿฌ๊ทธ์ธ๊ณผ CoC vim ํ”Œ๋Ÿฌ๊ทธ์ธ ์‚ฌ์ด์— ์ผ๋ถ€ ์ค‘๋ณต๋˜๋Š” ๋ถ€๋ถ„์ด ์žˆ๋Š”๋ฐ ์ด๋Š” ์ €์—๊ฒŒ ์ž˜๋ชป๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์Šค์Šค๋กœ ๊ฒฐ์ •ํ•˜์‹ญ์‹œ์˜ค. ๋‚˜๋Š” ๊ทธ๋“ค์ด ์กด์žฌํ•˜๋Š” ์ด์œ ๋ฅผ ์„ค๋ช…ํ–ˆ์Šต๋‹ˆ๋‹ค.
IMO๋Š” coc ํ™•์žฅ์ด ์ œ๊ณตํ•˜๋Š” ์ด์ ๊ณผ ๋น„๊ตํ•˜์—ฌ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ๋ฌด์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

coc.nvim์„ ๊ฐœ๋ฐœํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
coc ๊ตฌ์„ฑ์„ ์ด์‹ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ์— coc ํŒจํ‚ค์ง€๋ฅผ ๋‹ค์‹œ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์˜๋ฏธํ•ฉ๋‹ˆ๊นŒ? vim์˜ ๊ฒฝ์šฐ .vimrc๋งŒ ์ด๋™ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰