CLI ์์ ์ ์ฒ์ ํ๋ ์ฌ๋์ผ๋ก์ ๋๋ ๋๋ถ๋ถ์ ๋ค๋ฅธ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ถ๋๋ฌ์ด ์คํฌ๋กค๊ณผ ๋ฌ๋ฆฌ ํฐ๋ฏธ๋์์ ์ฌ์ฉ๋๋ ์ค ์คํฌ๋กค์ ๋ณด๋ ๊ฒ์ด ์ธ์ง์ ์ผ๋ก ๋ ์ด๋ ต๋ค๋ ๊ฒ์ ์์์ต๋๋ค. ํฐ๋ฏธ๋์์ ํฝ์ ์ด ์๋ ๋ฌธ์๊ฐ ๊ฐ์ฅ ์์ ํ์ ๋จ์์ด๊ธฐ ๋๋ฌธ์ด๋ผ๋ ๊ฒ์ ์๊ฒ ๋์์ต๋๋ค.
xterm.js๊ฐ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ๋ถ๋๋ฌ์ด ํฝ์ ๊ธฐ๋ฐ ์คํฌ๋กค ์ต์ ์ ํตํฉํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๊ณ ๋ฐ๋์งํฉ๋๊น?
์ ๋ ์๋ @albinekb ์๊ฒ Hyper(https://github.com/zeit/hyper)์ ๋ํด ๊ฐ์ ์ง๋ฌธ์
ํ์คํ ํ ์๋ ์์ง๋ง ์์์ ์ฌ๋๋ค์ด ์ฌ์ฉํ ์ ์๋ ์์ ์๋ ๋ง์ ์์ (+๋ณต์ก์ฑ ์ถ๊ฐ)์ด ํ์ํฉ๋๋ค. ๋๋ ์ด๊ฒ์ ๊ฐ์ธ์ ์ผ๋ก ์ถ๊ฐํ์ง ์๋ ๊ฒ์ด ์ข์ต๋๋ค.
๊ทธ๊ฒ์ ์ดํดํ ์ ์๊ณ ๊ณต์ ํฉ๋๋ค. ์์ ํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!
์ฐธ๊ณ : VTE(GNOME ํฐ๋ฏธ๋ ๋ฐ ์น๊ตฌ๋ค) ๋ ๋ฒ์ 0.44๋ถํฐ
์์ฃผ ์์์ ์ฌ๋๋ค์ด ์ฌ์ฉํ๋ ๊ฒ
ํฐ์นํจ๋๋ก ์คํฌ๋กคํ๋ ๋ถ๋ค์ ์ข๋ ์ซ๋ VTE์์ ์ฌ์ฉํฉ๋๋ค. :D
@egmontkob ์ฌ๊ธฐ์ gnome ํฐ๋ฏธ๋ 3.18.3์ด ์๋๋ฐ ์๋ํ์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ํ๋กํ ์ค์ ์ ์คํฌ๋กค ์น์ ์๋ ์ค์ ์ด ์๋ ๊ฒ
gt 3.18.3์ vte 0.42๊ฐ ์์์ ์๋ฏธํ๋ ๋ฐ๋ฉด ์ด ๊ธฐ๋ฅ์ 0.44์ ์๋ก์ด ๊ธฐ๋ฅ์ ๋๋ค.
์๋ก์ด ์ค์ ์ด ์์ผ๋ฉฐ(ํ๋๋ฅผ ์ถ๊ฐํ๊ธฐ ์ํด ๋ณด๋ฅ ์ค์ธ ๋ฎ์ ์ฐ์ ์์ ์์ฒญ ์ด ์์) ์ด์ ๊ณผ ๋ค๋ฅด๊ฒ ์๋ํฉ๋๋ค.
๋๊ตฐ๊ฐ ์ด๋ฏธ VTE์์ ๊ตฌ์ฑํ ์ ์๋ ๊ฒ์ ๋ํด ๋ถ๋ง์ ํ๋ช ํ์ต๋๋ค. ๋ฌผ๋ก xtermjs์์ ์ด ๊ธฐ๋ฅ์ ๊ตฌํํ ์ง ์ฌ๋ถ์ ๊ตฌํํ๋ ๊ฒฝ์ฐ ๊ตฌ์ฑํ ์ ์๋์ง ์ฌ๋ถ๋ ์ ์ ์ผ๋ก ๊ทํ์ ์ ํ์ ๋๋ค.
์ด ๊ธฐ๋ฅ์ด VTE์ 1.5๋ ์ด์ ์กด์ฌํ์ผ๋ฉฐ ํธ๋ํจ๋๋ฅผ ์ฌ์ฉํ๋ ๋ชจ๋ VTE ์ฌ์ฉ์์๊ฒ (๋ง์ฐ์ค ํ ์ด ์คํฌ๋กค์ "๋จ์"๋ฅผ ๋ณด๋ด๋ ๋์ ์) "๊ฐ์ ์ ์ผ๋ก" ์กด์ฌํ๋ค๋ ๊ฒ์ด ๊ทํ์๊ฒ ๊ท์คํ ๋ฐ์ดํฐ ํฌ์ธํธ๊ฐ ๋ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ฐ๋ฆฌ๋ ์ฌ์ ํ ์ ์ฒด ์ค์ ์คํฌ๋กคํฉ๋๋ค), ๊ทธ๋ฆฌ๊ณ ์ด ์๊ฐ ๋์ ๋๋ ์ด์ ํ๋์ ๋์ด๋ฆฌ๊ธฐ ์ํด ์ด 2~3๊ฐ์ ๋ถ๋ง์ ๋ค์์ต๋๋ค. ์ด ๊ธฐ๋ฅ์ด ํํธ์์๋ค๋ฉด ๋ถ๋ง์ด ํจ์ฌ ๋ ๋ง์์ ๊ฒ์ ๋๋ค.
VTE์ ๋ํ ์ฌ์ฉ ํ์๋ ๋น์จ์ด ์์ต๋๋ค. ๊ฐ์ฅ ๊ฐ๊น์ด ๊ฒ์ ์ด ์ค๋ฌธ ์กฐ์ฌ ์ ๊ฒฐ๊ณผ์ ๋๋ค(๊ธฐ์ฌ ๋ ์ง๋ ์ฃผ์์ ํ์์คํฌํ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ์ฌ ์์ ๋จ, 2๋ ๋ ํฌํ์). ์ด๋ VTE๊ฐ Linux ํฐ๋ฏธ๋ ์๋ฎฌ๋ ์ดํฐ ์ฌ์ด์ ์์ฅ ์ ์ ์จ์ 50%, ์ฆ ๊ฝค ํฝ๋๋ค. ๊ทธ๋์ ๋ง์ ์ฌ๋๋ค์ด ์ด๋ฏธ ๋ถ๋๋ฌ์ด ์คํฌ๋กค๋ง์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
์ ๋ xtermjs
๋ฐ ์น๊ตฌ๊ฐ ์ฒ์์ด๊ณ ์์ง ์๋ํ์ง ์์์ต๋๋ค. ์ฌ๊ธฐ์ ๋ฉ์ง ์ผ์ด ์ผ์ด๋๊ณ ์๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค. ๋ด ๋ง์์ ์ฌ๋ฐ๋ฅธ ์ํคํ
์ฒ๊ฐ ์๋์ง ํ์ ํ ์ ์์ง๋ง ๊ทธ๋ ๊ฒ ํ๋ค๋ฉด GNOME ํฐ๋ฏธ๋์ VTE์ ๋ํ hterm์ด xtermjs์ ๋ํ ๊ฒ์
๋๋ค. VTE๋ ํฐ๋ฏธ๋ ์๋ฎฌ๋ ์ด์
์ ์ํํ๋ GTK+ ์์ ฏ์
๋๋ค. GNOME Terminal, Xfce4 Terminal, Terminator, Tilix๋ฅผ ํฌํจํ์ฌ VTE๋ฅผ ์ฌ์ฉํ๋ 12๊ฐ ์ ๋์ ์ธ๊ธฐ ์๋ ํฐ๋ฏธ๋ ์๋ฎฌ๋ ์ดํฐ ์ฑ์ด ์์ต๋๋ค.
๋์์ ์๋ํ๋ ค๋ ๊ฒฝ์ฐ ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ(๋ฐ GNOME ํฐ๋ฏธ๋์ ํ๋ ฅ์ด ํ์ํ์ง ์์ VTE ๊ธฐ๋ฅ ํฌํจ)์ VTE๋ง ์ปดํ์ผํ๊ณ ํ ์คํธ ์ฑ์ ์์ํ๋ ๊ฒ์ ๋๋ค.
๋๋ ๋ง์ฐ์ค ํ ์ ์ฌ์ฉํ๊ณ ์์๋๋ฐ ๊ทธ๊ฒ์ด ๋ด ๋ฌธ์ ์ ๋๋ค :sweat_smile:
์ด๊ธฐ ๊ฒ์๋ฌผ์์ ๋๋ ์ค์ ๋ก ํธ๋ํจ๋๋ฅผ ์ฌ์ฉํ๋ค๋ ์์ฃผ ์ค์ํ ์ธ๋ถ ์ฌํญ์ ์ธ๊ธํ๋ ๊ฒ์ ์์์ต๋๋ค. ํธ๋ํจ๋ ์ฌ์ฉ์๋ ๋ค๋ฅธ ํฐ์น ๊ธฐ๋ฐ ์ ๋ ฅ ๋ฐฉ์์ ์ฌ์ฉํ๋ ์ฌ์ฉ์๋ฅผ ๋ฌด์ํ๊ณ ํฝ์ ๊ธฐ๋ฐ ์คํฌ๋กค์ ์ ํธํ๋ ์ฌ๋์ ๊ฑฐ์ ์๋ค๋ ๊ฒ์ ์ดํดํฉ๋๋ค.
IMO ์ด ์์ ์์ ์ฌ์ฉ์๊ฐ ์์ํ ๊ฒ์ด๋ผ๊ณ ๋งํ๋ ๊ฒ์ด ์์ ํฉ๋๋ค. ๋ด ๋ง์, ์ฌ์ง์ด hterm์๋ ์์ต๋๋ค.
์บ๋ฒ์ค ๋ ๋๋ฌ์์๋ ์ค์ ๋ก ๋ถ๊ฐ๋ฅํ์ง๋ง ์บ๋ฒ์ค ๋ ๋๋ฌ๋ฅผ ๋์ฒดํด์ผ ํ๋ webgl ๋ ๋๋ฌ https://github.com/xtermjs/xterm.js/pull/1790 ์ ์ฌ์ฉํ๋ฉด ์๋นํ ์ฝ๊ฒ ๋ฌ์ฑํ ์ ์์ต๋๋ค. DOM ๋ ๋๋ฌ์ ๊ฒฝ์ฐ ์๋จ๊ณผ ํ๋จ์ ๋ถ๋ถ์ ์ผ๋ก ๋ณด์ด๋ ์ ์ ๊ฐ์ง์ผ๋ก์จ ์ด๋ฅผ ๋ฌ์ฑํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ #1790์์ ์ฐจ๋จ๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผํฉ๋๋ค.
๊ณ ๋ คํด์ผ ํ ๋ค๋ฅธ ์ฌํญ: ydisp
์ด ์ ์๊ฐ ์๋๊ณ ํ์๋๋ ํ์ด Terminal.rows
๋ณด๋ค ๋ง์ผ๋ฉด ์ฝ๋์์ ์ผ๋ถ ๊ฐ์ ์ด ๊นจ์ง๋๋ค. ์๋ฅผ ๋ค์ด ์คํฌ๋ฆฐ ๋ฆฌ๋ ์ง์์ ์ด๋ค ์ํฅ์ ์ค๋๊น?
์บ๋ฒ์ค ๋ ๋๋ฌ๋ก๋ ๋ถ๊ฐ๋ฅํฉ๋๋ค.
์ ์ ๋ผ? viewportHeight + 2
ํ ์๋ฅผ ๊ทธ๋ฆฌ๊ณ ํ์ฌ ์คํฌ๋กค ์์น์ ํฝ์
์คํ์
์ ๊ธฐ๋ฐ์ผ๋ก ์ฒซ ๋ฒ์งธ ํ๊ณผ ๋ ๋ฒ์งธ ํ ์ฌ์ด ์ด๋๊ฐ์์ ์คํ์
ํ๋ ๊ฒ์ฒ๋ผ ๊ฐ๋จํด์ผ ํฉ๋๋ค.
ํ์คํ ํ ์๋ ์์ง๋ง ์์์ ์ฌ๋๋ค์ด ์ฌ์ฉํ ์ ์๋ ์์ ์๋ ๋ง์ ์์ (+๋ณต์ก์ฑ ์ถ๊ฐ)์ด ํ์ํฉ๋๋ค. ๋๋ ์ด๊ฒ์ ๊ฐ์ธ์ ์ผ๋ก ์ถ๊ฐํ์ง ์๋ ๊ฒ์ด ์ข์ต๋๋ค.
Fwiw ๋๋ ๊ฐ์ ๊ธฐ๋ฅ์ ์์ฒญํ๋ ค๊ณ ํ์ต๋๋ค. ๊ฐ์ธ์ ์ผ๋ก ์ฌ์ฉ์ฑ์ ๋์ด๋ ์ค์ํ ๋จ๊ณ๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋ ๊ด๋ฒ์ํ๊ฒ ์ง์๋์ง ์๋๋ค๋ ์ฌ์ค์ ์๋์ ์ผ๋ก ์๋ก์ด ์์ด๋์ด์ด๊ณ ์ฐ๋ฆฌ ํ๋ก๊ทธ๋๋จธ๋ ์์ ํด์ผ ํ๋ ์ ํ ์ฌํญ์ ์ต์ํด์ง๋ ๊ฒฝํฅ์ด ์๋ค๋ ์ฌ์ค๋ก ์ค๋ช ํ ์ ์์ต๋๋ค.
์ ์ ๋ผ?
@sdegutis ๋ค, ๊ฐ๋ฅํฉ๋๋ค. ๊ทธ ๋น์์๋ ์บ๋ฒ์ค ๋ ๋๋ฌ๊ฐ ํ์ํ ์ฝํ ์ธ ์น์ ๋ง ๋ฌดํจํํ๋ ํน์ ๋ก์ง์ ์ฌ์ฉํ์ฌ ๊ณ ๋๋ก ์ต์ ํ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ต๋๋ค. ์ด์ ์บ๋ฒ์ค ๋ ๋๋ฌ๋ก ํฐ๋ฏธ๋์ ์คํฌ๋กคํ๋ฉด ์ด์จ๋ ๋ชจ๋ ํ์ด ๋ค์ ๋ ๋๋ง๋๋ฉฐ ๊ธฐ๋ณธ ๊ณํ์ ์ด์จ๋ ์บ๋ฒ์ค ๋ ๋๋ฌ๋ฅผ ๋จ๊ณ์ ์ผ๋ก ์ ๊ฑฐํ๋ ๊ฒ์ ๋๋ค.
์ด ์์ ์ ์ํํ๋ ๊ฒ์ ๊ฝค ์ฌ์ธ ๊ฒ์ ๋๋ค. 3๊ฐ์ ๋ ๋๋ฌ์ ๋ํด ์ํํด์ผ ํ๋ฉฐ ํนํ webgl์๋ ๋ช ๊ฐ์ง ํน๋ณํ ์กฐ์ ์ด ํ์ํฉ๋๋ค(ํ * ์ด๋ณด๋ค ๋ ๋ง์ ์ ์ด ๊ทธ๋ ค์ง๊ธฐ ๋๋ฌธ์ ์์ฑ ๋ฒํผ์ ํฌ๊ธฐ ์ฆ๊ฐ).
๋๋ ๋ํ ์ด ๊ธฐ๋ฅ์ ์ข์ํฉ๋๋ค. ์ ๋ฌธ์ ๋ ์ค์ ๋ก ๋จ์ํ ๋ฏธํ์ด ์๋๋ผ ์ฌ์ฉ์ฑ ๋ฌธ์ ์ ๋๋ค. ๋ฌธ์ ๋ ํ ๊ฐ์ง ์์ ์ผ๋ก ์ธํด ํฐ๋ฏธ๋์์ ๋๋ฌด ๋ง์ ๊ฑด๋๋ฐ๊ธฐ๊ฐ ๋ฐ์ํ๊ณ ๋ถ๋๋ฌ์ด ์คํฌ๋กค์ด ์๋ค๋ ์ฌ์ค๋ก ์ธํด ๊ฑด๋๋ด ์ค์ ์ดํดํ๋ ๊ฒ์ด ๊ฑฐ์ ๋ถ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ ๋๋ค. ์ ๋ง ํฐ๋ฏธ๋์ ์ฌ์ฉํ๊ธฐ ์ด๋ ต๊ฒ ๋ง๋ญ๋๋ค.
Visual Studio Code์์ ํฐ๋ฏธ๋์ ์คํฌ๋กคํ ๋๋ง๋ค ๋ด๊ฐ ์ด๋์ ์์๋์ง ์ถ์ ํ์ง ๋ชปํฉ๋๋ค. ๋ถ๋๋ฌ์ด ์คํฌ๋กค์ ๊ธฐ๋ณธ ๊ธฐ๋ฅ์ด๋ฉฐ ์ฐ๋ฆฌ์๊ฒ ํ์ํฉ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
ํฐ์นํจ๋๋ก ์คํฌ๋กคํ๋ ๋ถ๋ค์ ์ข๋ ์ซ๋ VTE์์ ์ฌ์ฉํฉ๋๋ค. :D