๐ง VS Code์์ tmux๋ฅผ ์๋์ผ๋ก ํตํฉํ๊ณ ์ง์ ์ธ์ ์ ์ง
Source: Dev.to
๐ข ๊ธฐ๋ณธ ์๋ฃจ์ (๋ช ๋ฐฑํ ๋ฐฉ๋ฒ)
VS Code์์๋ ํฐ๋ฏธ๋ ํ๋กํ์ ๋ค์๊ณผ ๊ฐ์ด ์ค์ ํ ์ ์์ต๋๋ค:
// "terminal.integrated.profiles.osx": {
// "tmux-shell": {
// "path": "tmux",
// "args": ["new-session", "-A", "-s", "${workspaceFolderBasename}"]
// }
// },
// "terminal.integrated.defaultProfile.osx": "tmux-shell"
์ด ๋ฐฉ๋ฒ์ ์ฅ์
- ํ๋์ ์ํฌ์คํ์ด์ค โ ํ๋์ tmux ์ธ์
(
-A๋ก ์๋ ์ง์) - ๊ฐ๋จํ๊ณ ๊น๋ํ ์ค์
- ์คํฌ๋ฆฝํธ๊ฐ ํ์ ์์
๋ง์ ํ๊ฒฝ์์ ์ถฉ๋ถํ ์ข๊ณ ์ฐ์ํฉ๋๋ค.
๐ด ์ค์ ์ ํ์
settings.json์ ์กฐ๊ฑด ๋ก์ง์ ์ง์ํ์ง ์์ต๋๋ค. ${workspaceFolderBasename} ๊ฐ์ ๋ณ์๋:
- โ ํ์ฅ๋จ
- โ ๋ณํํ ์ ์์
- โ ์ ๊ท์ ์ฌ์ฉ ๋ถ๊ฐ
- โ ๊ทธ๋ฃนํํ๊ฑฐ๋ ์ ๊ทํํ ์ ์์
์ฌ๋ฌ ํด๋๋ฅผ ํ๋์ ์ธ์ ์ผ๋ก ๋ฌถ๊ธฐ
์ฌ๋ฌ ๊ด๋ จ ํ๋ก์ ํธ๊ฐ ์๊ณ , ์ปจํ ์คํธ, ํฌ, ๋ ์ด์์์ ์ ์งํ๊ธฐ ์ํด ํ๋์ ๊ณต์ tmux ์ธ์ ์์ ๋ชจ๋ ์์ ํ๊ณ ์ถ๋ค๊ณ ๊ฐ์ ํด ๋ณด์ธ์:
fe-dashboard, fe-admin, be-api, be-auth
๊ธฐ๋ณธ ์ค์ ์์๋ ๊ฐ ํด๋๊ฐ ์์ฒด tmux ์ธ์ ์ ๊ฐ์ ํ๋ฏ๋ก, ๊ฐ๋ ์ ์ผ๋ก ๋ชจ๋ ๊ฐ์ โ์์ ์ปจํ ์คํธโ์ ์ํ๋๋ผ๋ ๋ณ๋ ์ธ์ ์ด ์์ฑ๋ฉ๋๋ค. ๋ค์๊ณผ ๊ฐ์ ๊ท์น์ ํํํ ์ ์์ต๋๋ค:
โํด๋๊ฐ
fe-๋๋be-๋ก ์์ํ๋ฉดwork์ธ์ ์ ์ฌ์ฉํ๋คโ
์ด๋ VS Code ํฐ๋ฏธ๋ ์ค์ ์ผ๋ก๋ ํํํ ์ ์์ต๋๋ค.
๐ง ๊ฒฌ๊ณ ํ ์๋ฃจ์ : ๋ก์ง์ ์ ธ๋ก ์ด๋
VS Code๋ VSCODE_PID์ TERM_PROGRAM=vscode ๊ฐ์ ํ๊ฒฝ ๋ณ์๋ฅผ ์ฃผ์
ํฉ๋๋ค. ์ด๋ฅผ ํตํด ํฐ๋ฏธ๋์ด VS Code์์ ์คํ๋ ๊ฒ์ธ์ง ์ ๋ขฐ์ฑ ์๊ฒ ๊ฐ์งํ ์ ์์ต๋๋ค. ์ดํ ์
ธ์ด ํ๋จ์ ์ํํฉ๋๋ค.
fish ์์:
if set -q VSCODE_PID; or test "$TERM_PROGRAM" = "vscode"
if not set -q TMUX
set -l folder_name (basename (pwd))
if string match -qr "^fe-.*" -- $folder_name
set folder_name "work"
else if string match -qr "^be-.*" -- $folder_name
set folder_name "work"
else
set folder_name "projects"
end
# tmux new-session -A -s $folder_name &>/dev/null
end
end
VS Code๋ ๋จ์ํ ์คํ๊ธฐ ์ญํ ์ ํ ๋ฟ์ด๋ฉฐ, ์์ฌ๊ฒฐ์ ๋ก์ง์ ์ ธ์ ์์นํฉ๋๋ค.
๐ ์ค์ฉ์ ์ธ ์ฅ์
- ํด๋ ์ด๋ฆ์ด ์๋๋ผ ์๋ฏธ์ ๋ฐ๋ผ ํ๋ก์ ํธ๋ฅผ ๊ทธ๋ฃนํ
- VS Code๋ฅผ ๋ซ์๋ tmux ์ธ์ ์ฌ์ฌ์ฉ ๊ฐ๋ฅ
- ์ธ์ ์ค๋ณต ๋ฐฉ์ง
- ํฌ๊ณผ ๋ ์ด์์ ์ง์
- ํ๋ฌ๊ทธ์ธยทํ์ฅ ํ๋ก๊ทธ๋จ ํ์ ์์ โ tmux์ ํ์ค ํ๊ฒฝ ๋ณ์๋ง ์ฌ์ฉ
โ ๏ธ ์ฐธ๊ณ ์ฌํญ
- ํตํฉ ํฐ๋ฏธ๋์๋ง ์ ์ฉ๋๋ฉฐ ์ธ๋ถ ํฐ๋ฏธ๋์๋ ์ ์ฉ๋์ง ์์
VSCODE_PID๋ ๊ณต์ API๋ ์๋์ง๋ง ์๋ ๊ฐ ์์ ์ ์ผ๋ก ์ฌ์ฉ๋์ด ์์- ๋์ผํ ํจํด์ bash๋ zsh์์๋ ์ฌ์ฉํ ์ ์์
VS Code๋ฅผ ํธ์ง๊ธฐ๋ก, tmux๋ฅผ ์ธ์ ๊ด๋ฆฌ์๋ก ์ฌ์ฉํ๋ ๊ฒฝ์ฐ, ์ด ํตํฉ์ ๋ง์ฐฐ์ ์์ ๊ณ ์ผ์์ ์ธ ์์ ํ๋ฆ์ ํฌ๊ฒ ๊ฐ์ ํฉ๋๋ค.
ํ๋ก์ ํธ๋ณ ํฐ๋ฏธ๋ ์ธ์ ์ ์ด๋ป๊ฒ ๊ด๋ฆฌํ๊ณ ๊ณ์ ๊ฐ์?