ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ Vim 8.2 ์ถœ์‹œ

XNUMX๋…„ ๋ฐ˜์˜ ๊ฐœ๋ฐœ ๋์— ์ผ์–ด๋‚ฌ๋‹ค ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ ์ถœ์‹œ ๋น” 8.2๋Š” ๋งˆ์ด๋„ˆ ๋ฆด๋ฆฌ์Šค๋กœ ๋ถ„๋ฅ˜๋˜์–ด ๋ˆ„์ ๋œ ์˜ค๋ฅ˜๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๊ฒฉ๋ฆฌ๋œ ํ˜์‹ ์„ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค.

๋น” ์ฝ”๋“œ ๋ฐฐํฌ์ž ๋‹น์‹ ์˜ ์นดํ”ผ๋ ˆํ”„ํŠธ ์•„๋ž˜์—์„œ ํŠนํ—ˆ, GPL์„ ์ค€์ˆ˜ํ•˜๋ฉฐ ์ œํ•œ ์—†์ด ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉ, ๋ฐฐํฌ ๋ฐ ์žฌ์ž‘์—…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Vim ๋ผ์ด์„ผ์Šค์˜ ์ฃผ์š” ๊ธฐ๋Šฅ์€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ ๋˜๋Œ๋ฆฌ๊ธฐ์™€ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค. Vim ๊ด€๋ฆฌ์ž๊ฐ€ ์ด๋Ÿฌํ•œ ๊ฐœ์„  ์‚ฌํ•ญ์„ ์ฃผ๋ชฉํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ณ  ํ•ด๋‹น ์š”์ฒญ์„ ์ œ์ถœํ•˜๋Š” ๊ฒฝ์šฐ ํƒ€์‚ฌ ์ œํ’ˆ์— ๊ตฌํ˜„๋œ ๊ฐœ์„  ์‚ฌํ•ญ์„ ์›๋ž˜ ํ”„๋กœ์ ํŠธ๋กœ ์ด์ „ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฐฐํฌ ์œ ํ˜•์— ๋”ฐ๋ผ Vim์€ Charityware๋กœ ๋ถ„๋ฅ˜๋ฉ๋‹ˆ๋‹ค. Vim ์ž‘์„ฑ์ž๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ํŒ๋งคํ•˜๊ฑฐ๋‚˜ ํ”„๋กœ์ ํŠธ ํ•„์š”์— ๋Œ€ํ•œ ๊ธฐ๋ถ€๊ธˆ์„ ๋ชจ์œผ๋Š” ๋Œ€์‹  ์‚ฌ์šฉ์ž๊ฐ€ ํ”„๋กœ๊ทธ๋žจ์„ ์ข‹์•„ํ•˜๋ฉด ์ž์„  ๋‹จ์ฒด์— ๊ธˆ์•ก์„ ๊ธฐ๋ถ€ํ•˜๋„๋ก ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.

ะ’ ์ƒˆ๋กœ์šด ๋ฒ„์ „:

  • ํŒ์—… ์ฐฝ์— ๋Œ€ํ•œ ์ง€์›์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ…์ŠคํŠธ ์†์„ฑ๊ณผ ํ•จ๊ป˜ ์ด ๊ธฐ๋Šฅ์€ VimConf 2018 ์ปจํผ๋Ÿฐ์Šค ์„ค๋ฌธ ์กฐ์‚ฌ์—์„œ ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ฐœ๋ฐœ์ž๊ฐ€ Vim์— ๋ถ€์กฑํ•œ ๊ธฐ๋Šฅ์œผ๋กœ ๊ฐ€์žฅ ๋งŽ์ด ์š”์ฒญํ•œ ๊ธฐ๋Šฅ์œผ๋กœ ์–ธ๊ธ‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํŒ์—…์„ ์‚ฌ์šฉํ•˜๋ฉด ํŽธ์ง‘ ๊ฐ€๋Šฅํ•œ ํ…์ŠคํŠธ ์œ„์— ๋ฉ”์‹œ์ง€, ์ฝ”๋“œ ์กฐ๊ฐ ๋ฐ ๊ธฐํƒ€ ์ •๋ณด๋ฅผ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ฐฝ์€ ๋‹ค์–‘ํ•œ ๋ฐฉ์‹์œผ๋กœ ์กฐ๋ช…์„ ๋น„์ถœ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์‹ ์†ํ•˜๊ฒŒ ์—ด๊ณ  ๋‹ซ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋ ค๋ฉด ์ด์ „์— ์‚ฌ์šฉ๋œ ํ™”๋ฉด ํ‘œ์‹œ ๋ฉ”์ปค๋‹ˆ์ฆ˜์— ๋Œ€ํ•œ ์ƒ๋‹นํ•œ ๊ฐœ์„ ๊ณผ ํ”Œ๋Ÿฌ๊ทธ์ธ์˜ ํŒ์—… ์ฐฝ ์ž‘์—…์„ ๋ณด์žฅํ•˜๋Š” API ํ™•์žฅ์ด ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ํ…์ŠคํŠธ ๋ถ€๋ถ„์„ ๊ฐ•์กฐ ํ‘œ์‹œํ•˜๊ฑฐ๋‚˜ ์ž„์˜ ์˜์—ญ์„ ๊ฐ•์กฐ ํ‘œ์‹œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ…์ŠคํŠธ ์†์„ฑ์„ ์ •์˜ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ…์ŠคํŠธ ์†์„ฑ์€ ์ด์ „์— ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ…œํ”Œ๋ฆฟ ๊ธฐ๋ฐ˜ ๊ตฌ๋ฌธ ๊ฐ•์กฐ ๊ธฐ๋Šฅ์˜ ๋Œ€์•ˆ์ธ ๋น„๋™๊ธฐ ํ…์ŠคํŠธ ๊ฐ•์กฐ ์—”์ง„์˜ ํ˜•ํƒœ๋กœ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ…์ŠคํŠธ ์†์„ฑ์˜ ๋˜ ๋‹ค๋ฅธ ํŠน๋ณ„ํ•œ ํŠน์ง•์€ ํ…์ŠคํŠธ ์†์„ฑ๊ณผ ์—ฐ๊ฒฐ๋œ ํ…์ŠคํŠธ์™€ ํ•จ๊ป˜ ์ฒจ๋ถ€๋˜๊ณ  ์„ ํƒํ•œ ํ…์ŠคํŠธ ์•ž์— ์ƒˆ ๋‹จ์–ด๊ฐ€ ์‚ฝ์ž…๋˜๋Š” ๊ฒฝ์šฐ์—๋„ ๋ณด์กด๋œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • Vim 8.2์˜ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ๋ช…ํ™•ํ•˜๊ฒŒ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด ์ค€๋น„ ํ™”๋ฉด์„ ๊ฐ€๋กœ์งˆ๋Ÿฌ ๋‹ฌ๋ฆฌ๋Š” ์–‘์„ ์  ์ˆ˜ ์žˆ๋Š” ๊ฒŒ์ž„์ด ํฌํ•จ๋œ ํ”Œ๋Ÿฌ๊ทธ์ธ์ž…๋‹ˆ๋‹ค. ๋‹ฌ๋ฆฌ๋Š” ์–‘์€ ํŒ์—…์„ ํ†ตํ•ด ํ‘œ์‹œ๋˜๋ฉฐ, ํ…์ŠคํŠธ ์†์„ฑ์„ ํ†ตํ•ด ์ปฌ๋Ÿฌ๋ง์ด ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค.

    ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ Vim 8.2 ์ถœ์‹œ

  • ํ…์ŠคํŠธ ์†์„ฑ์„ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์ถ”๊ฐ€๋กœ ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ณ ๋น”, Go ํ”„๋กœ๊ทธ๋žจ์˜ ๊ตฌ๋ฌธ ๊ฐ•์กฐ์— ์‚ฌ์šฉ๋˜๋ฉฐ ์™ธ๋ถ€ LSP ์„œ๋ฒ„์—์„œ ์–ธ์–ด์˜ ์˜๋ฏธ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ˆ˜์‹ ํ•ฉ๋‹ˆ๋‹ค(์–ธ์–ด ์„œ๋ฒ„ ํ”„๋กœํ† ์ฝœ). govim์˜ ํŒ์—…์€ ์ด๋ฆ„ ์™„์„ฑ์— ๋Œ€ํ•œ ์ƒํ™ฉ๋ณ„ ํžŒํŠธ๋ฅผ ํ‘œ์‹œํ•˜๊ณ  ๊ธฐ๋Šฅ ์„ค๋ช…์„ ํ‘œ์‹œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
    ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ Vim 8.2 ์ถœ์‹œ

  • ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋Š” ๋ณ€์ˆ˜๋ฅผ ์ •์˜ํ•˜๊ธฐ ์œ„ํ•ด ์ƒˆ๋กœ์šด ":const" ๋ช…๋ น์ด ์ œ์•ˆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค:

    const TIMER_DELAY = 400

  • ๋”ฐ์˜ดํ‘œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๋ฆฌํ„ฐ๋Ÿด ํ‚ค๋กœ ์‚ฌ์ „์„ ์ •์˜ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

    let ์˜ต์…˜ = #{๋„ˆ๋น„: 30, ๋†’์ด: 24}

  • ํ• ๋‹น์„ ์ฐจ๋‹จํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์—ฌ๋Ÿฌ ์ค„์˜ ํ…์ŠคํŠธ๋ฅผ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•˜๊ธฐ๊ฐ€ ๋” ์‰ฌ์›Œ์กŒ์Šต๋‹ˆ๋‹ค.

    ์ค„์„ ๋†”๋‘๋‹ค =<< ๋‹ค๋“ฌ๊ธฐ END
    ์ฒซ ๋ฒˆ์งธ ์ค„
    ๋‘ ๋ฒˆ์งธ ์ค„
    END

  • ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ ์‹œ ํ•จ์ˆ˜ ์ฒด์ธ์„ ๊ตฌ์ถ•ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

    mylist->ํ•„ํ„ฐ(filterexpr)->map(mapexpr)->sort()->join()

  • ์ฃผ์š” ๊ตฌ์กฐ์—๋Š” xdiff ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์–ด ์„œ๋กœ ๋‹ค๋ฅธ ํ…์ŠคํŠธ ๋ฒ„์ „ ๊ฐ„์˜ ์ฐจ์ด์  ํ‘œํ˜„์ด ํฌ๊ฒŒ ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ํ™•์žฅ๋œ ํ‚ค ์กฐํ•ฉ์„ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•ด "modifyOtherKeys" ์„ค์ •์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ConPTY ์ฝ˜์†”์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์–ด Windows 10 ์ฝ˜์†”์—์„œ ๋ชจ๋“  ์ƒ‰์ƒ์„ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Windows์šฉ ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ์ด ํ˜„๋Œ€ํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ถ”๊ฐ€์ ์œผ๋กœ ์ฃผ๋ชฉํ•  ์ˆ˜ ์žˆ๋Š” ์ ์€ ์ค€๋น„ ์‹คํ—˜์  ํŽธ์ง‘๊ธฐ ๋ถ„๊ธฐ ๋„ค์˜ค๋น” 0.5. Neovim์€ ํ™•์žฅ์„ฑ๊ณผ ์œ ์—ฐ์„ฑ์„ ๋†’์ด๋Š” ๋ฐ ์ดˆ์ ์„ ๋งž์ถ˜ Vim์˜ ํฌํฌ์ž…๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์ ํŠธ๋Š” XNUMX๋…„ ๋„˜๊ฒŒ ์ง„ํ–‰๋˜์–ด ์™”์Šต๋‹ˆ๋‹ค. ๊ฐœ์ตœ ์ฝ”๋“œ๋ฅผ ๋” ์‰ฝ๊ฒŒ ์œ ์ง€ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํฌํ•จํ•˜๋Š” Vim ์ฝ”๋“œ๋ฒ ์ด์Šค์˜ ๊ณต๊ฒฉ์ ์ธ ์ ๊ฒ€, ์—ฌ๋Ÿฌ ์œ ์ง€ ๊ด€๋ฆฌ์ž ๊ฐ„์˜ ์ž‘์—… ๋ถ„ํ•  ์ˆ˜๋‹จ ์ œ๊ณต, ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ•ต์‹ฌ์—์„œ ๋ถ„๋ฆฌ(์ธํ„ฐํŽ˜์ด์Šค๋Š” ๋‚ด๋ถ€๋ฅผ ๊ฑด๋“œ๋ฆฌ์ง€ ์•Š๊ณ ๋„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Œ), ์ƒˆ๋กœ์šด ๊ตฌํ˜„ ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ธฐ๋ฐ˜์˜ ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์•„ํ‚คํ…์ฒ˜. Neovim์šฉ ํ”Œ๋Ÿฌ๊ทธ์ธ์€ MessagePack ํ˜•์‹์ด ์‚ฌ์šฉ๋˜๋Š” ์ƒํ˜ธ ์ž‘์šฉ์„ ์œ„ํ•ด ๋ณ„๋„์˜ ํ”„๋กœ์„ธ์Šค๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€