Upgrade to PRO for Only $50/Yearโ€”Limited-Time Offer! ๐Ÿ”ฅ

VIMRC 2022

VIMRCย 2022

My vim usage history and several tips

Avatar for Joongi Kim

Joongi Kim

July 23, 2022
Tweet

More Decks by Joongi Kim

Other Decks in Programming

Transcript

  1. ๋‚˜์˜ Vim ์—ญ์‚ฌ โ€ข ํ•™๋ถ€ 2005๋…„ 2009๋…„ โ€“ ์›น์„œ๋น„์Šค ๋ฐฑ์—”๋“œ

    ๊ฐœ๋ฐœ otl.kaist.ac.kr / ํƒœํ„ฐํˆด์ฆˆ ํ…์ŠคํŠธํ๋ธŒ โ€“ BBS์— ๋Œ€ํ•œ ํ–ฅ์ˆ˜๊ฐ€ ๋‚จ์•„์žˆ๋Š” ์„ ๋ฐฐ๋“ค๊ณผ PC ์›น์— ์ต์ˆ™ํ•œ ํ›„๋ฐฐ๋“ค์˜ ์ค‘๊ฐ„ ์–ด๋”˜๊ฐ€... โ€“ ๋™์•„๋ฆฌ ํšŒ์›๋ช…๋ถ€์— ์ž๊ธฐ ์ž์‹ ์„ ๋“ฑ๋กํ•˜๋ ค๋ฉด vim์„ ๋ฐฐ์›Œ์•ผ ํ–ˆ์Œ โ€ข ๋Œ€ํ•™์› 2010๋…„ 2016๋…„ โ€“ GPU ๊ฐ€์† ํŒจํ‚ท ์ฒ˜๋ฆฌ ํ”„๋ ˆ์ž„์›Œํฌ ์—ฐ๊ตฌ โ€“ GPU์™€ ํŠน์ • NIC ๋ชจ๋ธ์ด ์žˆ๋Š” ์„œ๋ฒ„์—์„œ ์ปค๋„ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์ง์ ‘ ์ปค์Šคํ…€ํ•ด์„œ ๊ฐœ๋ฐœํ•˜๋Š” ํ™˜๊ฒฝ โ€“ ๋‹น์‹œ์—๋Š” IDE๋“ค์˜ ์›๊ฒฉ ๊ฐœ๋ฐœ ๊ธฐ๋Šฅ์ด ๋งค์šฐ ๊ตฌ๋ ธ์Œ vim.... โ€ข ์ฐฝ์—… 2017๋…„ ํ˜„์žฌ โ€“ Backend.AI ๊ฐœ๋ฐœ๋„ ์ฒซ 5๋…„ ๊ฐ„์€ ๋ชจ๋‘ vim์œผ๋กœ...
  2. PyCharm? VSCode โ€ข CUDA GPU๋ฅผ ํ™œ์šฉํ•ด์•ผ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์›๊ฒฉ ๊ฐœ๋ฐœ์ด

    ํ•„์ˆ˜ โ€ข PyCharm๋„ ์›๊ฒฉ ๊ฐœ๋ฐœ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๊ธด ํ–ˆ์ง€๋งŒ... โ€ข VSCode๋Š” ๊ทผ๋ณธ์ ์œผ๋กœ ์„œ๋ฒ„ ํด๋ผ์ด์–ธํŠธ ๊ตฌ์กฐ๋ฅผ ์ฑ„ํƒํ•˜์—ฌ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ง€์› โ€“ ๊ทธ๋ฆฌ๊ณ  ๊ทธ๋Ÿญ์ €๋Ÿญ ์“ธ ๋งŒํ•œ Vim ํ”Œ๋Ÿฌ๊ทธ์ธ!
  3. NeoVim โ€ข Vim์„ ๋ฐ‘๋ฐ”๋‹ฅ๋ถ€ํ„ฐ ์ƒˆ๋กœ ๊ตฌํ˜„! โ€“ async subprocess ์ง€์›์œผ๋กœ

    ํ”Œ๋Ÿฌ๊ทธ์ธ์˜ ์‹ ์„ธ๊ณ„๋ฅผ ์—ด์—ˆ์Œ โ€“ ์˜ค๋žœ ๊ธฐ๊ฐ„ 6.x, 7.x์— ๋จธ๋ฌด๋ฅด๋˜ Vim์˜ ๊ฐœ๋ฐœ์„ ์ž๊ทนํ•˜์—ฌ 8.x, 9.x์—์„œ NeoVim์˜ ๊ธฐ๋Šฅ๋“ค์„ ๋Œ€๊ฑฐ ํก์ˆ˜ํ•จ โ€ข Lua ๊ธฐ๋ฐ˜ ํ”Œ๋Ÿฌ๊ทธ์ธ ์‹œ์Šคํ…œ ์ง€์› โ€“ async subprocess LuaJIT์œผ๋กœ ๋งค์šฐ ๋น ๋ฅธ ํ”Œ๋Ÿฌ๊ทธ์ธ ์‹คํ–‰ โ€ข 17๋…„ ๊ฐ„ Vim๋งŒ ์“ฐ๋‹ค๊ฐ€ ํ•œ ๋‹ฌ ์ „์— ๋“œ๋””์–ด NeoVim์œผ๋กœ ๊ฐˆ์•„ํƒ! โ€“ ์ฒซ์ธ์ƒ : ์ปค์„œ ๋ชจ์–‘์ด ์˜ˆ๋ป์š”!
  4. NeoVim์œผ๋กœ ๊ฐˆ์•„ํƒ„ ์‚ฌ์†Œํ•œ ๊ณ„๊ธฐ โ€ข https://github.com/vim python/python syntax โ€“ ์—ฌ๊ธฐ์—

    Python 3.6 f string literal ๋ฌธ๋ฒ• ๊ฐ•์กฐ ๊ธฐ์—ฌํ•จ fork ์ „ ์ €์žฅ์†Œ โ€“ Python 3.10 structural pattern matching ๋ฌธ๋ฒ•์„ ์ถ”๊ฐ€ํ•˜๋ ค๊ณ  ๋ณด๋‹ˆ, match๊ฐ€ strong keyword๊ฐ€ ์•„๋‹˜ ๋ฌธ๋งฅ์— ๋”ฐ๋ผ ํ‚ค์›Œ๋“œ์ผ ์ˆ˜๋„ ์žˆ๊ณ  ์•„๋‹ ์ˆ˜๋„ ์žˆ์Œ โ€“ ๊ท€์ฐฎ์€๋ฐ... โ€ข NeoVim์—๋Š” treesitter๋ผ๋Š” ๊ฒŒ ์ง€์›๋œ๋‹ค๊ณ  ํ•จ โ€“ https://tree sitter.github.io/tree sitter/ โ€“ https://github.com/nvim treesitter/nvim treesitter โ€“ ํŽธ์ง‘๊ธฐ๋ฅผ ์œ„ํ•œ efficient incremental parser generator ํ”„๋กœ์ ํŠธ โ€“ ํ…Œ์ŠคํŠธํ•ด๋ณด๋‹ˆ match ๋ฌธ๋ฒ•๋„ ์ž˜ ์ง€์›ํ•จ!
  5. ๋‚˜์˜ vim ์„ค์ • โ€ข https://github.com/achimnol/dotfiles โ€“ vim, nvim ์„ค์ • ๋ชจ๋‘

    ํฌํ•จ โ€“ README: vim ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์น˜ ๋ฐฉ๋ฒ• โ€ข ๊ฐ€์žฅ ์ข‹์•„ํ•˜๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ โ€“ airline / nvim lualine โ€“ nvim telescope โ€“ ALE โ€“ vinegar / nvim tree โ€“ ...์˜ค๋Š˜๋ถ€ํ„ฐ CoC?? โ€ข wezterm๊ณผ ํ•จ๊ป˜ ์กฐํ•ฉํ•˜๋ฉด ์—„์ฒญ ๋น ๋ฆ…๋‹ˆ๋‹ค! Rust ๊ธฐ๋ฐ˜ GPU ๊ฐ€์† ํ„ฐ๋ฏธ๋„ โ€“ https://wezfurlong.org/wezterm
  6. VSCode Vim Tip โ€ข VSCode Vim์—์„œ ๋ช…๋ น/๊ฒ€์ƒ‰์–ด ์ž…๋ ฅ ์‹œ Backspace๊ฐ€

    ๋ณธ๋ฌธ์— ์ ์šฉ๋˜์–ด์š”! โ€“ Shift Backspace๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋˜๋Š”๋ฐ, ์•„์˜ˆ ๊ทธ ํƒ€๊ฒŸ ๋ช…๋ น์„ ์กฐ๊ฑด์— ๋”ฐ๋ผ ๋ฆฌ๋งคํ•‘
  7. NeoVim Tip โ€ข ์ตœ์‹  ๋ฒ„์ „ 0.7 ์„ ๊ธฐ์ค€์œผ๋กœ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์—…๋ฐ์ดํŠธ๋œ

    ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•„ ์ตœ์‹  ๋ฒ„์ „ ์‚ฌ์šฉ ๊ถŒ์žฅ โ€ข ์ฃผ์˜ : Ubuntu ๋“ฑ์—์„œ Snap์œผ๋กœ ์„ค์น˜ ์‹œ Lua 5.1๊ณผ ํ•จ๊ป˜ ๋นŒ๋“œ๋œ ๋ฒ„์ „์ด ๋ฐ›์•„์ง โ€“ ๋Œ€๋ถ€๋ถ„์˜ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด LuaJIT์„ ๊ธฐ์ค€์œผ๋กœ ํ˜ธํ™˜์„ฑ์ด ๋งž์ถฐ์ ธ์žˆ์–ด ์ง์ ‘ ๋นŒ๋“œํ•˜๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•จ telescope์—์„œ ๊ฒ€์ƒ‰์ด ์•ˆ ๋œ๋‹ค๊ฑฐ๋‚˜ ํ•˜๋Š” ์ฆ์ƒ ๋ฐœ์ƒ โ€“ ์ง์ ‘ ๋นŒ๋“œ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ : Linux aarch64 ํ™˜๊ฒฝ